Hur får jag fram en miniatyrbild av en YouTube-video från YouTube API?

Om jag har en URL till en YouTube-video, finns det något sätt att använda PHP och cURL för att hämta den tillhörande miniatyrbilden från YouTube API?

Lösning

Varje YouTube-video har fyra genererade bilder. De är som förväntat formaterade på följande sätt:

https://img.youtube.com/vi//0.jpg
https://img.youtube.com/vi//1.jpg
https://img.youtube.com/vi//2.jpg
https://img.youtube.com/vi//3.jpg

Den första i listan är en bild i full storlek och de andra är miniatyrbilder. Standardbilden för miniatyrbilder (dvs. en av 1.jpg, 2.jpg, 3.jpg) är:

https://img.youtube.com/vi//default.jpg

För den högkvalitativa versionen av miniatyrbilden använder du en URL som liknar denna:

https://img.youtube.com/vi//hqdefault.jpg

Det finns också en version av miniatyrbilden i medelhög kvalitet, med en URL som liknar HQ:

https://img.youtube.com/vi//mqdefault.jpg

För en version av miniatyrbilden med standarddefinition använder du en URL som liknar denna:

https://img.youtube.com/vi//sddefault.jpg

För den högsta upplösningsversionen av miniatyrbilden använder du en URL som liknar denna:

https://img.youtube.com/vi//maxresdefault.jpg

Alla ovanstående webbadresser är också tillgängliga via HTTP. Dessutom fungerar det något kortare värdnamnet i3.ytimg.com i stället för img.youtube.com i ovanstående exempel-URL:er.

Alternativt kan du använda YouTube Data API (v3) för att få fram miniatyrbilder.

Kommentarer (27)

Du kan använda YouTube Data API för att hämta miniatyrbilder, bildtext, beskrivning, betyg, statistik med mera. API version 3 kräver en nyckel*. Skaffa nyckeln och skapa en videos: list-begäran:

https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID

Exempel på PHP-kod

$data = file_get_contents("https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=T0Jqdjbed40");
$json = json_decode($data);
var_dump($json->items[0]->snippet->thumbnails);

Output

object(stdClass)#5 (5) {
  ["default"]=>
  object(stdClass)#6 (3) {
    ["url"]=>
    string(46) "https://i.ytimg.com/vi/T0Jqdjbed40/default.jpg"
    ["width"]=>
    int(120)
    ["height"]=>
    int(90)
  }
  ["medium"]=>
  object(stdClass)#7 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/mqdefault.jpg"
    ["width"]=>
    int(320)
    ["height"]=>
    int(180)
  }
  ["high"]=>
  object(stdClass)#8 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/hqdefault.jpg"
    ["width"]=>
    int(480)
    ["height"]=>
    int(360)
  }
  ["standard"]=>
  object(stdClass)#9 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/sddefault.jpg"
    ["width"]=>
    int(640)
    ["height"]=>
    int(480)
  }
  ["maxres"]=>
  object(stdClass)#10 (3) {
    ["url"]=>
    string(52) "https://i.ytimg.com/vi/T0Jqdjbed40/maxresdefault.jpg"
    ["width"]=>
    int(1280)
    ["height"]=>
    int(720)
  }
}
  • Du behöver inte bara en nyckel, du kan också bli ombedd att ange faktureringsuppgifter beroende på hur många API-förfrågningar du planerar att göra. Några få miljoner förfrågningar per dag är dock gratis.

Källartikel.

Kommentarer (6)

Du kan få Video Entry som innehåller URL:en till videons miniatyrbild. Det finns exempelkod i länken. Om du vill analysera XML finns det information här. Den XML som returneras har ett element media:thumbnail som innehåller miniatyrbildens URL.

Kommentarer (1)