YouTube-embed-checker

Video

Video-informatie
Titel
Kanaal
Duur
Video-ID
Controlegegevens
Totaal
Embed-controle
Player-API
Afspeeltest
Foutcode

Inleiding

De Toollect YouTube-embedchecker beantwoordt een vraag die elke keer opkomt wanneer iemand video aan een website toevoegt: wordt deze video hier, op mijn pagina, echt afgespeeld? Plak een link en de tool controleert de video tegen twee openbare, sleutelloze YouTube-oppervlakken – het oEmbed-eindpunt en de ingebedde player – en vertelt je dan of de video inbedbaar, afspeelbaar, verwijderd of beperkt is. Geen account, geen API-sleutel en geen upload.

De valkuil die hij wegneemt is bekend. Je kopieert een embedcode, zet hem op je pagina en ontdekt later dat de video een grijze player, een "Video niet beschikbaar"-melding of een "Bekijk op YouTube"-aanwijzing toont omdat de eigenaar inbedden heeft uitgeschakeld. Tegen de tijd dat de embed live is, is dat een supportvraag. Eerst controleren verandert dezelfde taak in een stap van twee seconden.

De controle draait volledig in jouw browser. De URL wordt lokaal geparsed, de inbedstatus wordt gelezen van YouTube's openbare oEmbed-eindpunt en er laadt een live embed op de pagina, gepauzeerd op het eerste frame – nooit automatisch afgespeeld, nooit gedempt voor jou. Er wordt niets geüpload, opgeslagen of bijgehouden. Het resultaat verschijnt naast de titel, het kanaal en de duur van de video, die het embed zelf teruggeeft – geen aparte pagina, geen scraper, geen dienst van derden.

Hoe het werkt

De tool splitst de vraag "kan dit worden ingebed en afgespeeld" op in drie onafhankelijke controles. Elk gebruikt een openbaar, sleutelloos oppervlak van YouTube, en alle drie draaien lokaal in jouw browser.

  1. Video-ID-extractie – de URL wordt geparsed met hetzelfde patroon dat YouTube zelf gebruikt, waarmee watch-links, youtu.be, Shorts, embed- en live-URL's plus een kale ID van 11 tekens worden herkend.
  2. Inbedcontrole – de tool vraagt het oEmbed-eindpunt van YouTube op voor de video. Een inbedbare video geeft een klein JSON-object terug; een video waarvan de eigenaar inbedden verbiedt, geeft een fout terug. Dit is hetzelfde eindpunt dat diensten gebruiken om automatisch kaarten te genereren.
  3. Playercheck – de tool laadt de ingebedde player, gepauzeerd op het eerste frame, en luistert naar zijn status. Als de video is verwijderd of beperkt, vuurt de player een foutcode af; als hij schoon laadt, komen titel, kanaal en duur terug van de player zelf, en bevestigt het indrukken van play het afspelen live in hetzelfde frame.

Geen van deze stappen vereist de officiële YouTube Data API. Het player-JavaScript laadt op aanvraag, verbruikt geen quotum en draait volledig in jouw browser – jouw geplakte link bereikt nooit een server die door deze site wordt beheerd.

De twee openbare oppervlakken in detail

Het oEmbed-eindpunt is een openbare, sleutelloze API van YouTube. Eén enkele aanvraag zoals https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ&format=json geeft je de titel van de video, de kanaalnaam en de URL van de thumbnail – of een duidelijke weigering als de video niet kan worden ingebed. Omdat het een lichtgewicht statuscontrole is, antwoordt het in één enkele round trip.

Het playeroppervlak is hetzelfde dat je gebruikt wanneer je een iframe plakt: YouTube laadt een kleine IFrame-player op de pagina, en de statuscodes van de player vertellen de rest van het verhaal. Een player die zijn eerste frame bereikt zonder foutcode is het bewijs dat de embed de video heeft geaccepteerd, terwijl een player die een fout afvuurt de reden noemt – niet gevonden, verwijderd of beperkt voor inbedding. Het voorbeeld blijft gepauzeerd op dat eerste frame, precies zoals een normale embed: niets speelt automatisch en het volume is wat jij hebt ingesteld.

Gebruikssituaties

Naast het voor de hand liggende – "is deze link veilig om te plakken?" – past de tool in echte workflows.

Web- en app-ontwikkeling

Ontwikkelaars die YouTube-video's inbedden in dashboards, landingspagina's of apps zien vaak een dag na de lancering kapotte embeds. Een pre-flight-controle toevoegen tijdens contentimport – sitemapgeneratie, CMS-import of video-aanbeveling – vangt niet-inbedbare en verwijderde video's op voordat ze gebruikers bereiken. Dezelfde oEmbed-controle is bovendien makkelijk te hergebruiken als one-liner in een buildscript.

Contentproductie en marketing

Redacteuren die promotiepagina's, nieuwsbrieven of knowledge base-artikelen samenstellen, willen veel video's linken zonder elke embed te bewaken. Een snelle reeks controles van de tool, één URL per keer, markeert de video's die als kapotte placeholders zouden renderen, zodat de lijst schoon wordt gepubliceerd.

Onderzoek en archieftriage

Journalisten, archivarissen en onderzoekers die de beschikbaarheid van een video in de tijd volgen, kunnen de controle opnieuw uitvoeren en het resultaat archiveren. Het patroon "was inbedbaar, nu fout 100" is een vroeg signaal dat de video is verwijderd – op zichzelf al een nuttig feit.

Resultaten en foutcodes

Elk resultaat dat de tool toont is het antwoord van de player zelf, vertaald. Het resultaat dat je leest en de foutcode eronder komen uit dezelfde bron, dus de twee lagen spreken elkaar nooit tegen.

De resultaten:

Resultaat Wat het betekent Typische oorzaak
Afspeelbaar De embed is geaccepteerd en heeft zijn eerste frame bereikt Een gezonde, inbedbare upload
Niet inbedbaar De eigenaar verbiedt inbedden Fout 101 of 150 van de player
Video niet gevonden De player kan de video niet laden Verwijderd of privé gemaakt, fout 100
Video niet beschikbaar De player heeft de aanvraag geweigerd Een verouderde of verkeerde link, of een algemene playerfout
Time-out Geen reactie van de player binnen het wachtvenster Een geblokkeerd script of een netwerkprobleem

De foutcodes:

Code Betekenis Wat het je vertelt
100 Video niet gevonden De video is verwijderd of privé gemaakt, of de ID is geldig maar de player kan hem niet laden
101 Inbedden niet toegestaan De eigenaar heeft inbedden voor deze video uitgeschakeld
150 Inbedden niet toegestaan Dezelfde beperking, op sommige oppervlakken gemeld als 150
2 Ongeldige aanvraag De video is niet beschikbaar voor de player, meestal een verouderde of verkeerde videolink
5 Player maken mislukt Een algemene HTML5-playerfout, soms een teken van een afspeelfout buiten de embed

Codes 101 en 150 leiden naar hetzelfde resultaat, Niet inbedbaar – "de eigenaar staat inbedden niet toe". Een 100 betekent dat de video niet meer openbaar beschikbaar is en leidt naar Video niet gevonden. Codes 2 en 5 leiden allebei naar Video niet beschikbaar. En een player die stil blijft na het wachtvenster leidt naar Time-out – het resultaat dat je ziet wanneer een script of een netwerkregel de player zelf blokkeert. Dit zijn de antwoorden die je het vaakst tegenkomt bij het controleren van een embedgalerij.

Wat het kan detecteren en wat niet

Eerlijk zijn over de grenzen is een deel van wat deze tool nuttig maakt. De tabel toont wat de embed-pipeline onthult en waar hij over zwijgt.

Vraag Kan de tool dit detecteren?
Inbedbaar (eigenaar stond inbedden toe) Ja, via de oEmbed-controle
Speelt na inbedding echt af Ja – druk op play in het voorbeeld en de tool bevestigt het afspelen
Video verwijderd of privé gemaakt Ja, fout 100
Leeftijdsbeperkte video's Meestal – de player probeert het opnieuw met een toestemmingsstap in sommige regio's
Regionale (land)beperkingen Alleen de regio waar jij bent, en alleen voor het player-API-oppervlak
Landen waar de video beschikbaar is Nee
Weergaven, likes, reacties Nee
Tags, licentie, uploaddatum Nee
Beschikbaarheid van ondertitels Nee
Standaard audio-/videotaal Nee

Elke vraag die het kernresultaat beslist – de inbedcontrole, het afspeelbewijs, het verwijderd-of-privé-signaal – wordt volledig beantwoord zonder sleutel. De verrijkingslaag – weergaveaantallen, regiolijsten, tags, ondertitels, uploaddata – is een ander verhaal, behandeld in "Vergeleken met de officiële API".

Gebruik

De workflow is een interactieve twee-velden-opstelling:

  1. Plak een YouTube-link – uit de adresbalk, het deelmenu of het embedblad van de video.
  2. Druk op Enter of klik op de knop Controleren.
  3. Lees het resultaat – een badge beschrijft de uitkomst als Afspeelbaar, Niet inbedbaar, Video niet gevonden, Video niet beschikbaar of Time-out.
  4. Lees de details – het playerpaneel vermeldt titel, kanaal, duur en ID van de video onder de badge; de drie controle-regels eronder leggen uit hoe elke check is verlopen.

Plakken alleen start de controle niet; die draait pas wanneer je op Controleren of Enter drukt. Dat houdt de tool voorspelbaar – het bewerken van het veld gooit nooit zomaar een resultaat weg dat je bekijkt. Als de invoer geen geldige YouTube-URL is, verschijnt er een fout en wordt het veld leeggemaakt.

Ondersteunde linkformaten

De invoer accepteert dezelfde formaten die YouTube zelf gebruikt – plak een van deze:

Formaat Voorbeeld
Standaard watch youtube.com/watch?v=VIDEO_ID
Korte link youtu.be/VIDEO_ID
Shorts youtube.com/shorts/VIDEO_ID
Ingebed youtube.com/embed/VIDEO_ID
Live youtube.com/live/VIDEO_ID
Legacy videopad youtube.com/v/VIDEO_ID
Kale ID VIDEO_ID (11 tekens)

Extra parameters zoals afspeellijsten en tijdstempels worden automatisch genegeerd.

Stap voor stap

Doorloop één video van link tot resultaat.

Stap 1 – Haal een link op. Open een willekeurige YouTube-video en kopieer de URL, bijvoorbeeld https://www.youtube.com/watch?v=dQw4w9WgXcQ.

Stap 2 – Plak en controleer. Klik op het invoerveld, plak (Ctrl+V of Cmd+V) en druk op Enter. De badge schakelt naar Bezig met controleren….

Stap 3 – Lees de badge. Binnen ongeveer twee seconden verschijnt een resultaat. Bij een gewone inbedbare upload staat er Afspeelbaar, gesteund door de controle-regels.

Stap 4 – Vergelijk met een beperkte video. Plak nu een link naar een muziekvideo die het label aan inbedding onttrekt – de meeste clips van grote labels zijn geblokkeerd. Het resultaat luidt Niet inbedbaar en de foutregel toont 101. Dit is precies de fout die zich herhaalt als een lege grijze box wanneer je de embedcode handmatig plakt.

Stap 5 – Bekijk het bewijs. De controle-regels komen overeen met de badge: de embedregel toont Geblokkeerd en de afspeelregel toont geen bevestiging omdat de player faalde voordat je op play kon drukken. Die combinatie – embed geweigerd, geen afspelen – is precies het "geen embedpaneel"-signaal dat je op YouTube's eigen pagina voor zo'n video zou zien.

Dat is de volledige kringloop: plakken, controleren, badge lezen – en als het resultaat niet klopt met een echte embed, gebruik dan de controle-regels om te begrijpen waarom.

Tips

  • Plak een kale video-ID. De invoer accepteert een ID van 11 tekens op zichzelf, zonder URL – handig wanneer je werkt vanuit een API-antwoord, een database-export of een verkorte link die alleen de ID prijsgeeft.
  • Controleer opnieuw met Enter. Het bewerken van de link in het veld wist nooit het huidige resultaat; druk op Enter wanneer je de URL hebt die je echt wilt.
  • Automatiseer de embedpoort. Als je pagina's uit feeds genereert, kun je dezelfde oEmbed-controle die de tool gebruikt met curl opvragen (https://www.youtube.com/oembed?url=…&format=json) en een niet-200-status behandelen als "wijs deze video af" in je pipeline.
  • Test regio-gevoelige content vanuit de doelregio. Als je publiek in een specifiek land zit, voer de controle dan uit verbonden met dat netwerk; de player weerspiegelt de regio waaraan hij wordt geleverd.
  • Behandel fout 100 als een veranderingssignaal. Een video die prima controleerde en plotseling 100 meldt, is hoogstwaarschijnlijk verwijderd of privé gemaakt. Als je een register van ingebedde video's bijhoudt, controleer ze dan periodiek opnieuw – de statuswissel is de moeite waard om te weten voordat een bezoeker op de grijze player stuit.

Bed de video zelf in

Een Afspeelbaar-resultaat is het groene licht om exact de embed te gebruiken die de tool heeft gecontroleerd:

<div style="aspect-ratio: 16 / 9;">
  <iframe
    src="https://www.youtube-nocookie.com/embed/VIDEO_ID"
    width="100%"
    height="100%"
    frameborder="0"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
    allowfullscreen
    loading="lazy"
  ></iframe>
</div>
  • Geef de voorkeur aan het nocookie-domein. youtube-nocookie.com levert dezelfde player zonder de niet-essentiële cookies van YouTube – de privacyvriendelijke standaardkeuze voor de meeste sites.
  • loading="lazy" zit al in het snippet. Het stelt de embed uit totdat de video in beeld scrollt; verwijder het voor een hero boven de vouw waarvan het laden ertoe doet.
  • Let op je Content-Security-Policy. Als je site een CSP uitlevert, voeg dan frame-src https://www.youtube-nocookie.com toe (of https://www.youtube.com als je het gewone domein houdt), anders wordt de embed geblokkeerd voordat hij laadt.

Alternatieven

Hoe komen ontwikkelaars er normaal achter dat een embed kapot is? De tabel vult de opties aan.

Methode Wat het je vertelt Sleutel nodig Afspeelbewijs
Embed plakken, pagina verversen De kapotte placeholder, achteraf Nee Indirect zodra de pagina draait
oEmbed-one-liner Alleen de inbedstatus, geen foutcode Nee Nee
Officiële Data API Alles, met op quotum gebaseerde kosten en serversleutel Ja Nee
Deze tool Resultaat + foutcode + live embed dat je kunt afspelen Geen Ja – druk op play in het voorbeeld

De officiële Data API is het meest compleet, maar vereist een sleutel, draait server-side om blootstelling te voorkomen en kost quotum per aanvraag. Een eenvoudige inbedcontrole met alleen code geeft je de playermeldingen of het afspeelbewijs niet. Een rauw iframe plakken vertelt je pas na de uitrol wat deze tool onmiddellijk vóór publicatie toont.

Vergeleken met de officiële API

De onderstaande tabel vergelijkt de twee eerlijke wegen voor dezelfde vraag: de officiële YouTube Data API (een server, een sleutel, een quotum) versus deze tool (alleen de browser, geen sleutel, geen server). De vergelijking is waarom "geen sleutel" een functie is en geen beperking – de ruil zit op de kolommen die voor embeds tellen.

Mogelijkheid Officiële Data API Deze tool
Inbedbaarheidstatus via status.embeddable oEmbed + playercode
Afspeelbewijs Indirect (alleen metadata) Direct – druk op play in het voorbeeld
Betekenis van foutcodes Rauwe code, zonder uitleg Vertaald naar een resultaat
Regio-/landenlijst contentDetails.regionRestriction Alleen de regio waar jij bent
Weergaven, likes, reacties statistics Niet beschikbaar
Tags snippet.tags Niet beschikbaar
Licentie status.license Niet beschikbaar
Leeftijdsbeperking contentDetails.contentRating Impliciet via de player, niet exact
Uploaddatum snippet.publishedAt Niet beschikbaar
Benodigde gegevens API-sleutel + serverproxy Geen – 100% browser

De twee oppervlakken overlappen precies op de metriek die een embed beslist: wordt het afgespeeld in een pagina? De officiële API wint op alles wat telt voor analyse – metadata, statistieken, regiolijsten. De tool wint op het definitieve antwoord: een live embed dat in de browser laadt, gepauzeerd op het eerste frame, waar je op play kunt drukken en zelf kunt kijken.

Problemen oplossen

Probleem Oorzaak Oplossing
Het antwoord blijft op "Bezig met controleren…" De player- of oEmbed-aanroep is geblokkeerd (adblocker, lokaal netwerk) Sta het playerscript toe voor youtube.com of probeer de controle opnieuw
De embed blijft op het eerste frame staan Dat is bewust – het voorbeeld speelt nooit automatisch en laadt de stream niet vooraf Druk op play; een gepauzeerde embed met een beschikbaar geluidsicoon is een gezonde embed
Het resultaat zegt "Niet inbedbaar" maar de videopagina speelt prima De eigenaar staat embeds niet toe; afspelen op de site verschilt van inbedden Bevestig het: open Delen ▸ Inbedden op de videopagina – daar verschijnt de weigering ook
Het resultaat zegt "Video niet gevonden" Video verwijderd, privé vermeld of regionaal op de witte lijst Controleer eerst of de video in je eigen browser afspeelt
Invoer wordt niet geaccepteerd De URL is helemaal geen YouTube-formaat Gebruik een link van de watchpagina of het deelmenu

Privacy en gegevensverwerking

De tool volgt hetzelfde privacymodel als de andere Toollect-tools: alles draait lokaal.

  • Er wordt niets geüpload. De URL wordt in jouw browser geparsed. Geen enkele aanvraag die hem bevat, wordt naar een server gestuurd die jij niet beheert.
  • Geen account, geen tracking. Er is geen login, geen analytics en geen geschiedenis van de video's die je controleert.
  • Alleen playerverkeer. De enige netwerkaanvragen zijn die van de player zelf – dezelfde aanvragen die elke website doet wanneer hij een video inbedt. Er wordt niets opgeslagen, vastgelegd of bewaard.
  • Geen video wordt vooraf opgehaald. Het voorbeeld pauzeert op het eerste frame met een normale playknop; de stream begint pas te laden wanneer je op play drukt, net als bij elke embed, en er wordt niets opgeslagen.

Als je privacybewust bent over welke video's je inspecteert: deze pagina gedraagt zich precies als het bekijken van een normale videopagina in je browser – je link gaat nergens heen behalve naar je eigen player.

Technische specificaties

Details:

  • Inbedcontrole: https://www.youtube.com/oembed?url={watch_url}&format=json – HTTP 200 = inbedbaar, niet-200 = beperkt
  • Player: YouTube IFrame Player API, op aanvraag geladen als playsinline-embed, gepauzeerd op het eerste frame (geen gedwongen autoplay, geen gedempt geluid)
  • Resultaatbronnen: oEmbed-status, playerfoutcodes (2, 5, 100, 101, 150) en live afspeelgebeurtenissen wanneer je op play drukt
  • Metadata: titel, kanaal, duur en video-ID, teruggegeven door de player zelf
  • Verwerking: 100% client-side JavaScript zonder API-sleutel, zonder uploads, zonder server
  • Browserondersteuning: alle moderne browsers met Promise- en ES5-niveau-ondersteuning (Chrome, Edge, Firefox, Safari)

Functies

  • Directe controle van de inbedbaarheid voor elke YouTube-link die je plakt
  • Live inbed-voorbeeld, gepauzeerd op het eerste frame, met bevestiging van afspelen op het moment dat je op play drukt
  • Resultaten op basis van de foutcodes van YouTube's eigen player, met uitleg in gewone taal
  • Titel, kanaal en duur getoond zonder een aparte pagina te openen
  • 100% verwerking in de browser zonder gegevensverzending, geen API-sleutel nodig
  • Accepteert watch-, Shorts-, embed-, live- en youtu.be-links plus kale video-ID's

Veelgestelde vragen

Wat is een YouTube-embedchecker?
Een YouTube-embedchecker vertelt je of een video kan worden ingebed in een website en of deze na inbedding ook echt wordt afgespeeld. Hij is nuttig voor ontwikkelaars die video willen inbedden, voor contentteams die promotiepagina's samenstellen en voor iedereen die ooit een embedcode heeft geplakt en een YouTube-foutmelding zag in plaats van de video.
Werkt het zonder YouTube-API-sleutel?
Ja. De tool gebruikt twee openbare, sleutelloze eindpunten die geen registratie vereisen – de oEmbed-dienst van YouTube voor de inbedcontrole en de IFrame Player API van YouTube voor de playerchecks. Geen API-sleutel, geen OAuth, geen quotum en niets om te configureren.
Detecteert deze tool regio-gebonden video's?
Nee. Video's met privacybeperkingen of regioblokkades worden anders aangeleverd afhankelijk van waar de aanvraag vandaan komt. De controle weerspiegelt de regio en het netwerk waar jij je bevindt, dus voer hem uit vanaf dezelfde plaats als je kijkers voor een betekenisvol antwoord. Regiobeschikbaarheid is bovendien een van de velden die alleen de officiële Data API blootlegt.
Wat betekenen de foutcodes van de YouTube-player?
Fout 100 betekent dat de video is verwijderd of privé is gemaakt. Fout 101 en 150 betekenen allebei dat de eigenaar inbedden niet toestaat. Fout 2 betekent meestal dat de video niet beschikbaar is voor de player. Fout 5 is een algemene HTML5-playerfout. De tool vertaalt elke code naar een resultaat in gewone taal.
Welke YouTube-URL-formaten ondersteunt de tool?
De tool herkent standaard watch-links, youtu.be-korte links, Shorts-, embed- en live-URL's, plus kale video-ID's van 11 tekens. Extra parameters zoals afspeellijsten en tijdstempels worden automatisch genegeerd.
Downloadt de tool de video?
Nee. De tool laadt dezelfde inbedplayer die jij zelf zou gebruiken, gepauzeerd op het eerste frame totdat je op play drukt. Er wordt geen video vooraf opgehaald, er worden geen gegevens opgeslagen en er wordt niets verzonden buiten de standaard playerverzoeken die de browser sowieso aan YouTube doet.
Waarom speelt het voorbeeld niet automatisch af of met geluid?
Dat is bewust. Een embed dat vanzelf met geluid start, zou de pagina kapen, en een automatisch afgespeelde stream zou de controle vervalsen – de tool bevestigt afspelen alleen als jij zelf op play drukt. Het voorbeeld blijft gepauzeerd op het eerste frame met normaal volume, precies zoals een embed die je zelf op je pagina plaatst.
ESC