Hvordan får jeg et miniatyrbilde av en YouTube-video fra YouTube API?

Hvis jeg har en YouTube-video URL, er det noen måte å bruke PHP og cURL for å få det tilhørende miniatyrbildet fra YouTube API?

Løsning

Hver YouTube-video har fire genererte bilder. De er forutsigbart formatert som følger:

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

Det første i listen er et bilde i full størrelse, og de andre er miniatyrbilder. Standard miniatyrbilde (dvs. ett av 1.jpg, 2.jpg, 3.jpg) er:

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

For høykvalitetsversjonen av miniatyrbildet bruker du en URL som denne:

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

Det finnes også en versjon av miniatyrbildet i middels kvalitet, med en nettadresse som ligner på hovedadressen:

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

For standardversjonen av miniatyrbildet, bruk en nettadresse som ligner på denne:

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

For versjonen med maksimal oppløsning av miniatyrbildet, bruk en nettadresse som denne:

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

Alle nettadressene ovenfor er også tilgjengelige via HTTP. I tillegg fungerer det litt kortere vertsnavnet i3.ytimg.com i stedet for img.youtube.com i eksempel-URL-ene ovenfor.

Alternativt kan du bruke YouTube Data API (v3) for å få miniatyrbilder.

Kommentarer (27)

Du kan bruke YouTube Data API for å hente miniatyrbilder, bildetekst, beskrivelse, vurdering, statistikk og mer. API versjon 3 krever en nøkkel*. Skaff nøkkelen og opprett en videos: list-forespørsel:

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)
  }
}
  • I tillegg til at du trenger en nøkkel, kan du bli bedt om faktureringsinformasjon avhengig av antall API-forespørsler du planlegger å gjøre. Noen få millioner forespørsler per dag er imidlertid gratis.

Kildeartikkel.

Kommentarer (6)

Du kan få Video Entry som inneholder nettadressen til videoens miniatyrbilde. Det er eksempelkode i lenken. Eller, hvis du vil analysere XML, finnes det informasjon her. XML-filen som returneres, har et "media:thumbnail"-element som inneholder miniatyrbildens nettadresse.

Kommentarer (1)