Hvis jeg har en YouTube-video-URL, er der så en måde at bruge PHP og cURL til at hente den tilhørende miniaturebillede fra YouTube API'et?
Hver YouTube-video har fire genererede billeder. De er som forventeligt formateret som følger:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/1.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/2.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/3.jpg
Det første på listen er et billede i fuld størrelse, og de andre er miniaturebilleder. Standard miniaturebilledet (dvs. et af 1.jpg
, 2.jpg
, 3.jpg
) er:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg
For at få en højkvalitetsversion af miniaturebilledet skal du bruge en URL, der ligner denne:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg
Der findes også en version af miniaturebilledet i medium kvalitet, hvor du bruger en URL, der ligner HQ:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg
For standarddefinitionsversionen af miniaturebilledet skal du bruge en URL svarende til denne:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/sddefault.jpg
For den maksimale opløsningsversion af miniaturebilledet skal du bruge en URL, der ligner denne:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg
Alle ovenstående URL'er er også tilgængelige over HTTP. Desuden fungerer det lidt kortere værtsnavn i3.ytimg.com
i stedet for img.youtube.com
i ovenstående eksempel-URL'er.
Alternativt kan du bruge YouTube Data API (v3) til at få thumbnail-billeder.
Du kan bruge YouTube Data API til at hente miniaturebilleder af videoer, billedtekst, beskrivelse, bedømmelse, statistik og meget mere. API version 3 kræver en nøgle*. Få nøglen, og opret en videos: list anmodning:
https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID
Eksempel på PHP-kode
$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)
}
}
* Ikke nok med at du har brug for en nøgle, du kan blive bedt om faktureringsoplysninger afhængigt af antallet af API-forespørgsler, du planlægger at foretage. Få millioner anmodninger om dagen er dog gratis.
Du kan få Video Entry, som indeholder URL'en til videoens miniaturebillede. Der er eksempelkode i linket. Eller hvis du vil analysere XML, er der oplysninger her. Den XML, der returneres, har et media:thumbnail
-element, som indeholder thumbnailets URL.