YouTube-inbäddningskontroll
Inledning
Toollects YouTube-inbäddningskontroll svarar på en fråga som dyker upp varje gång någon lägger till video på en webbplats: kommer den här videon verkligen att spelas upp här, på min sida? Klistra in en länk så kontrollerar verktyget videon mot två offentliga, nyckelfria YouTube-ytor – oEmbed-slutpunkten och den inbäddade playern – och talar sedan om för dig om videon är inbäddbar, spelbar, borttagen eller begränsad. Inget konto, ingen API-nyckel och ingen uppladdning.
Fällan det åtgärdar är den välkända. Du kopierar en inbäddningskod, lägger in den på din sida och upptäcker senare att videon visar en grå player, ett meddelande om "Videon är inte tillgänglig" eller en uppmaning att "Titta på YouTube" eftersom ägaren har inaktiverat inbäddning. När inbäddningen väl är live är det en supportfråga. Att kontrollera först gör om samma uppgift till ett tvåsekunderssteg.
Kontrollen körs helt i din webbläsare. URL:en analyseras lokalt, inbäddningsstatusen läses från YouTubes offentliga oEmbed-slutpunkt och en live-inbäddning laddas på sidan, pausad på sin första bildruta – aldrig automatiskt spelad, aldrig tystad åt dig. Ingenting laddas upp, sparas eller spåras. Resultatet visas tillsammans med videons titel, kanal och längd, som inbäddningen själv returnerar – ingen separat sida, ingen skrapare, ingen tredjepartstjänst.
Så här fungerar det
Verktyget delar upp frågan "kan den här bäddas in och spelas upp" i tre oberoende kontroller. Var och en använder en offentlig, nyckelfri yta hos YouTube, och alla tre körs lokalt i din webbläsare.
- Extrahering av video-ID – URL:en analyseras med samma mönster som YouTube själv använder och känner igen watch-länkar, youtu.be, Shorts, embed- och live-URL:er samt ett enbart 11-teckens-ID.
- Inbäddningskontroll – verktyget begär YouTubes oEmbed-slutpunkt för videon. En inbäddbar video returnerar ett litet JSON-objekt; en video vars ägare förbjuder inbäddning returnerar ett fel. Det är samma slutpunkt som tjänster använder för att automatiskt generera kort.
- Playerkontroll – verktyget laddar den inbäddade playern, pausad på första bildrutan, och lyssnar på dess status. Om videon har tagits bort eller begränsats avfyrar playern en felkod; om den laddas rent kommer titeln, kanalen och längden tillbaka från playern själv, och att trycka på play bekräftar uppspelningen live i samma ram.
Inget av detta kräver den officiella YouTube Data API:n. Player-JavaScript:et laddas vid behov, förbrukar ingen kvot och körs helt i din webbläsare – din inklistrade länk når aldrig en server som kontrolleras av den här webbplatsen.
De två offentliga ytorna i detalj
oEmbed-slutpunkten är ett offentligt, nyckelfritt API hos YouTube. En enda förfrågan som https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ&format=json ger dig videons titel, kanalnamnet och miniatyrbildens URL – eller ett tydligt avslag om videon inte kan bäddas in. Eftersom det är en lättviktig statuskontroll svarar den i en enda rundtur.
Playerytan är samma som du använder när du klistrar in en iframe: YouTube laddar en liten IFrame-player på sidan, och playerns statuskoder berättar resten av historien. En player som når sin första bildruta utan felkod är beviset på att inbäddningen accepterade videon, medan en player som avfyrar ett fel namnger orsaken – inte hittad, borttagen eller begränsad för inbäddning. Förhandsvisningen ligger pausad på den första bildrutan, precis som en vanlig inbäddning: inget spelas automatiskt och volymen är den du har ställt in.
Användningsfall
Utöver det uppenbara – "är den här länken säker att klistra in?" – passar verktyget in i riktiga arbetsflöden.
Webb- och apputveckling
Utvecklare som bäddar in YouTube-video i instrumentpaneler, landningssidor eller appar ser ofta trasiga inbäddningar en dag efter lanseringen. Att lägga till en förkontroll vid innehållsimport – sitemap-generering, CMS-import eller videorekommendation – fångar icke-inbäddbara och borttagna videor innan de når användarna. Samma oEmbed-kontroll är dessutom lätt att återanvända som en rad i ett build-skript.
Innehållsproduktion och marknadsföring
Redaktörer som bygger reklamsidor, nyhetsbrev eller kunskapsbasartiklar vill länka många videor utan att bevaka varje inbäddning. En snabb serie kontroller i verktyget, en URL i taget, flaggar de videor som skulle renderas som trasiga platshållare, så att listan publiceras ren.
Forskning och arkivtriage
Journalister, arkivarier och forskare som följer en videos tillgänglighet över tid kan köra kontrollen igen och arkivera resultatet. Mönstret "var inbäddbar, nu fel 100" är en tidig varning om att videon har raderats – ett faktum som är värdefullt i sig.
Resultat och felkoder
Varje resultat verktyget visar är playerns eget svar, översatt. Resultatet du läser och felkoden under kommer från samma källa, så de två lagren motsäger aldrig varandra.
Resultaten:
| Resultat | Vad det betyder | Typisk orsak |
|---|---|---|
| Spelbar | Inbäddningen accepterades och nådde sin första bildruta | En frisk, inbäddbar uppladdning |
| Kan inte bäddas in | Ägaren förbjuder inbäddning | Fel 101 eller 150 från playern |
| Videon hittades inte | Playern kan inte ladda videon | Borttagen eller gjord privat, fel 100 |
| Videon är inte tillgänglig | Playern avvisade förfrågan | En föråldrad eller felaktig länk, eller ett generellt playerfel |
| Tidsgräns överskriden | Inget svar från playern inom väntefönstret | Ett blockerat skript eller ett nätverksproblem |
Felkoderna:
| Kod | Betydelse | Vad den talar om för dig |
|---|---|---|
| 100 | Videon hittades inte | Videon har tagits bort eller gjorts privat, eller så är ID:t giltigt men playern kan inte nå den |
| 101 | Inbäddning inte tillåten | Ägaren har inaktiverat inbäddning för den här videon |
| 150 | Inbäddning inte tillåten | Samma begränsning, rapporterad som 150 på vissa ytor |
| 2 | Ogiltig förfrågan | Videon är inte tillgänglig för playern, vanligen en föråldrad eller felaktig videolänk |
| 5 | Player kunde inte skapas | Ett generellt HTML5-playerfel, ibland ett tecken på ett uppspelningsfel utanför inbäddningen |
Kod 101 och 150 leder till samma resultat, Kan inte bäddas in – "ägaren tillåter inte inbäddning". En 100:a betyder att videon inte längre är offentligt tillgänglig och leder till Videon hittades inte. Kod 2 och 5 leder båda till Videon är inte tillgänglig. Och en player som förblir tyst efter väntefönstret leder till Tidsgräns överskriden – det resultat du möter när ett skript eller en nätverksregel blockerar själva playern. Det är de svar du stöter på oftast när du granskar ett galleri med inbäddningar.
Vad den kan och inte kan upptäcka
Ärlighet om begränsningarna är en del av det som gör verktyget användbart. Tabellen visar vad inbäddningspipelinen avslöjar – och vad den tiger om.
| Fråga | Kan verktyget upptäcka det? |
|---|---|
| Inbäddbar (ägaren tillät inbäddning) | Ja, via oEmbed-kontrollen |
| Spelas verkligen upp när den är inbäddad | Ja – tryck på play i förhandsvisningen så bekräftar verktyget uppspelningen |
| Video borttagen eller gjord privat | Ja, fel 100 |
| Åldersbegränsade videor | Vanligtvis – playern försöker igen med ett samtyckessteg i vissa regioner |
| Regionala (lands-)begränsningar | Bara den region du befinner dig i, och bara för player-API-ytan |
| Länder där videon är tillgänglig | Nej |
| Visningar, gillanden, kommentarer | Nej |
| Taggar, licens, uppladdningsdatum | Nej |
| Tillgänglighet för undertexter | Nej |
| Standardljud / videospråk | Nej |
Varje fråga som avgör kärnresultatet – inbäddningskontrollen, uppspelningsbeviset, signalen borttagen eller privat – besvaras fullt ut utan nyckel. Berikningslagret – visningsantal, regionslistor, taggar, undertexter, uppladdningsdatum – är en annan historia, behandlad under "Jämfört med den officiella API:n".
Användning
Arbetsflödet är en interaktiv uppsättning med två fält:
- Klistra in en YouTube-länk – från adressfältet, delningsmenyn eller videons inbäddningsblad.
- Tryck på Retur eller klicka på knappen Kontrollera.
- Läs resultatet – en badge beskriver utgången som Spelbar, Kan inte bäddas in, Videon hittades inte, Videon är inte tillgänglig eller Tidsgräns överskriden.
- Läs detaljerna – playerpanelen listar videons titel, kanal, längd och ID under badgen; de tre kontrollraderna nedanför förklarar hur varje kontroll gick.
Att klistra in utlöser inte kontrollen av sig själv; den körs när du trycker på Kontrollera eller Retur. Det gör verktyget förutsägbart – att redigera fältet slänger aldrig plötsligt bort ett resultat du tittar på. Om inmatningen inte är en giltig YouTube-URL visas ett fel och fältet töms.
Stödda länkformat
Inmatningen accepterar samma format som YouTube själv använder – klistra in någon av dessa:
| Format | Exempel |
|---|---|
| Vanlig watch | youtube.com/watch?v=VIDEO_ID |
| Kortlänk | youtu.be/VIDEO_ID |
| Shorts | youtube.com/shorts/VIDEO_ID |
| Inbäddad | youtube.com/embed/VIDEO_ID |
| Live | youtube.com/live/VIDEO_ID |
| Äldre videoväg | youtube.com/v/VIDEO_ID |
| Enbart ID | VIDEO_ID (11 tecken) |
Extra parametrar som spellistor och tidsstämplar ignoreras automatiskt.
Handledning
Gå igenom en video från länk till resultat.
Steg 1 – Skaffa en länk. Öppna valfri YouTube-video och kopiera dess URL, till exempel https://www.youtube.com/watch?v=dQw4w9WgXcQ.
Steg 2 – Klistra in och kontrollera. Klicka på inmatningsfältet, klistra in (Ctrl+V eller Cmd+V) och tryck på Retur. Badgen växlar till Kontrollerar….
Steg 3 – Läs badgen. Inom ungefär två sekunder dyker ett resultat upp. För en vanlig inbäddbar uppladdning står det Spelbar, stött av kontrollraderna.
Steg 4 – Jämför med en begränsad video. Klistra nu in en länk till en musikvideo som skivbolaget håller borta från inbäddning – de flesta stora bolags musikvideor är blockerade. Resultatet står Kan inte bäddas in och felraden visar 101. Det är exakt felet som återskapas som en tom grå ruta när du klistrar in inbäddningskoden manuellt.
Steg 5 – Granska bevisen. Kontrollraderna stämmer med badgen: inbäddningsraden visar Blockerad och uppspelningsraden visar ingen bekräftelse eftersom playern misslyckades innan du hann trycka på play. Den kombinationen – inbäddning avvisad, ingen uppspelning – är exakt signalen "inget inbäddningspaneler" som du skulle se på YouTubes egen sida för en sådan video.
Det är hela slingan: klistra in, kontrollera, läs badgen – och om resultatet inte stämmer med en riktig inbäddning, använd kontrollraderna för att förstå varför.
Proffstips
- Klistra in ett enbart video-ID. Inmatningen accepterar ett ID med 11 tecken för sig, utan URL – användbart när du arbetar från ett API-svar, en databasexport eller en förkortad länk som bara avslöjar ID:t.
- Kör om med Retur. Att redigera länken i fältet rensar aldrig det aktuella resultatet; tryck på Retur när du har den URL du verkligen vill ha.
- Automatisera inbäddningsgrinden. Om du genererar sidor från flöden kan du curl:a samma oEmbed-kontroll som verktyget använder (
https://www.youtube.com/oembed?url=…&format=json) och behandla en icke-200-status som "avvisa den här videon" i din pipeline. - Testa regionskänsligt innehåll från målregionen. Om din publik sitter i ett visst land, kör kontrollen ansluten till det nätverket; playern återspeglar den region den levereras till.
- Behandla
fel 100som en förändringssignal. En video som kontrollerades fint och plötsligt rapporterar 100 har med största sannolikhet tagits bort eller gjorts privat. Om du för ett register över inbäddade videor, kontrollera dem på nytt med jämna mellanrum – statusändringen är värd att känna till innan en besökare stöter på den grå playern.
Bädda in videon själv
Ett Spelbar-resultat är grönt ljus för att använda exakt den inbäddning som verktyget har kontrollerat:
<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>
- Föredra
nocookie-domänen.youtube-nocookie.comlevererar samma player utan YouTubes icke-nödvändiga cookies – det integritetsvänliga standardvalet för de flesta webbplatser. loading="lazy"finns redan i kodsnutten. Det skjuter upp inbäddningen tills videon rullas in i bild; ta bort det för en hero ovanför vikningen vars laddning spelar roll.- Tänk på din Content-Security-Policy. Om din webbplats levererar en CSP, lägg till
frame-src https://www.youtube-nocookie.com(ellerhttps://www.youtube.comom du behåller den vanliga domänen), annars blockeras inbäddningen innan den laddas.
Alternativ
Hur tar utvecklare normalt reda på att en inbäddning är trasig? Tabellen fyller ut alternativen.
| Metod | Vad den talar om för dig | Nyckel krävs | Uppspelningsbevis |
|---|---|---|---|
| Klistra in inbäddningen, ladda om sidan | Den trasiga platshållaren, i efterhand | Nej | Indirekt när sidan väl körs |
| oEmbed-rad | Bara inbäddningsstatusen, ingen felkod | Nej | Nej |
| Officiella Data API:n | Allt, med kvotbaserad kostnad och servernyckel | Ja | Nej |
| Det här verktyget | Resultat + felkod + live-inbäddning du kan spela | Ingen | Ja – tryck på play i förhandsvisningen |
Den officiella Data API:n är mest komplett, men kräver en nyckel, körs server-side för att undvika exponering och kostar kvot per förfrågan. En enkel inbäddningskontroll med enbart kod ger dig varken playermeddelandena eller uppspelningsbeviset. En rå iframe-inklistring talar bara om efter utrullningen vad det här verktyget visar omedelbart före publicering.
Jämfört med den officiella API:n
Tabellen nedan jämför de två ärliga vägarna för samma fråga: den officiella YouTube Data API:n (en server, en nyckel, en kvot) mot det här verktyget (bara webbläsaren, ingen nyckel, ingen server). Jämförelsen är varför "ingen nyckel" är en funktion och inte en begränsning – bytet ligger på de kolumner som spelar roll för inbäddningar.
| Förmåga | Officiella Data API:n | Det här verktyget |
|---|---|---|
| Inbäddbarhetsstatus | via status.embeddable |
oEmbed + playerkod |
| Uppspelningsbevis | Indirekt (bara metadata) | Direkt – tryck på play i förhandsvisningen |
| Betydelse av felkoder | Råkod, utan förklaring | Översatt till ett resultat |
| Region-/landslista | contentDetails.regionRestriction |
Bara den region du befinner dig i |
| Visningar, gillanden, kommentarer | statistics |
Inte tillgängligt |
| Taggar | snippet.tags |
Inte tillgängligt |
| Licens | status.license |
Inte tillgängligt |
| Åldersbegränsning | contentDetails.contentRating |
Implicit via playern, inte exakt |
| Uppladdningsdatum | snippet.publishedAt |
Inte tillgängligt |
| Data som krävs | API-nyckel + serverproxy | Ingen – 100% webbläsare |
De två ytorna överlappar exakt på det mått som avgör en inbäddning: kommer den att spelas upp i en sida? Den officiella API:n vinner på allt som räknas för analys – metadata, statistik, regionslistor. Verktyget vinner på det slutliga svaret: en live-inbäddning som laddas i webbläsaren, pausad på första bildrutan, där du kan trycka på play och titta själv.
Felsökning
| Problem | Orsak | Lösning |
|---|---|---|
| Svaret fastnar på "Kontrollerar…" | Anropet till playern eller oEmbed blockerades (annonsblockerare, lokalt nätverk) | Tillåt playerskriptet för youtube.com eller kör kontrollen igen |
| Inbäddningen ligger kvar på första bildrutan | Det är avsiktligt – förhandsvisningen spelas aldrig automatiskt och förladdar inte strömmen | Tryck på play; en pausad inbäddning med tillgänglig ljudikon är en frisk inbäddning |
| Resultatet säger "Kan inte bäddas in" men videosidan spelas fint | Ägaren har förbjudit inbäddningar; uppspelning på sajten skiljer sig från inbäddning | Bekräfta det: öppna Dela ▸ Bädda in på videosidan – avslaget syns där också |
| Resultatet säger "Videon hittades inte" | Video borttagen, privat listad eller regionalt vitlistad | Verifiera först att videon spelas i din egen webbläsare |
| Inmatningen accepteras inte | URL:en är inte något YouTube-format alls | Använd en länk från watch-sidan eller delningsmenyn |
Integritet och datahantering
Verktyget följer samma integritetsmodell som de andra Toollect-verktygen: allt körs lokalt.
- Ingenting laddas upp. URL:en analyseras i din webbläsare. Ingen förfrågan som innehåller den skickas till en server du inte kontrollerar.
- Inget konto, ingen spårning. Det finns ingen inloggning, ingen analys och ingen historik över de videor du kontrollerar.
- Bara playertrafik. De enda nätverksförfrågningarna är playerns egna – samma förfrågningar som alla webbplatser gör när de bäddar in en video. Ingenting sparas, skärmdumpas eller lagras.
- Ingen video hämtas i förväg. Förhandsvisningen pausas på första bildrutan med en vanlig spelknapp; strömmen börjar bara laddas när du trycker på play, precis som vid alla inbäddningar, och ingenting sparas.
Om du är integritetsmedveten kring vilka videor du inspekterar: den här sidan beter sig exakt som att titta på en vanlig videosida i din webbläsare – din länk går ingen annanstans än till din egen player.
Tekniska specifikationer
Detaljer:
- Inbäddningskontroll:
https://www.youtube.com/oembed?url={watch_url}&format=json– HTTP 200 = inbäddbar, icke-200 = begränsad - Player: YouTube IFrame Player API, laddad vid behov som en
playsinline-inbäddning pausad på första bildrutan (inget påtvingat autoplay, ingen påtvingad tystnad) - Resultatkällor: oEmbed-status, playerfelkoder (2, 5, 100, 101, 150) och live-uppspelningshändelser när du trycker på play
- Metadata: titel, kanal, längd och video-ID som returneras av playern själv
- Bearbetning: 100% client-side JavaScript utan API-nyckel, utan uppladdningar, utan server
- Webbläsarstöd: alla moderna webbläsare med Promise- och ES5-stöd (Chrome, Edge, Firefox, Safari)
Funktioner
- Omedelbar kontroll av inbäddbarheten för vilken YouTube-länk du än klistrar in
- Liveförhandsvisning av inbäddningen, pausad på första bildrutan, med bekräftelse av uppspelning i samma ögonblick som du trycker på play
- Resultat baserade på YouTubes egna felkoder, med förklaringar i klartext
- Titel, kanal och längd visas utan att en separat sida öppnas
- 100% bearbetning i webbläsaren utan datauppladdning, ingen API-nyckel krävs
- Accepterar watch-, Shorts-, embed-, live- och youtu.be-länkar samt enbart video-ID