Vraag Hoe krijg ik een YouTube-videominiatuur van de YouTube API?


Als ik een YouTube-video-URL heb, is er dan een manier om PHP en cURL te gebruiken om de bijbehorende thumbnail uit de YouTube API te halen?


2023
2018-01-14 23:34


oorsprong


antwoorden:


Elke YouTube-video heeft 4 gegenereerde afbeeldingen. Ze zijn voorspelbaar opgemaakt als volgt:

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

De eerste in de lijst is een afbeelding op ware grootte en andere zijn miniatuurafbeeldingen. De standaard miniatuurafbeelding (dwz. Een van 1.jpg, 2.jpg, 3.jpg) is:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg

Gebruik voor de kwalitatief hoogwaardige versie van de miniatuur een soortgelijke URL:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg

Er is ook een miniatuurversie van gemiddelde kwaliteit, met behulp van een URL die lijkt op het hoofdkwartier:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg

Gebruik voor de standaarddefinitieversie van de miniatuur een soortgelijke URL:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/sddefault.jpg

Gebruik voor de maximale resolutieversie van de miniatuur een soortgelijke URL:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

Alle bovenstaande URL's zijn ook beschikbaar via http. Bovendien is de iets kortere hostnaam i3.ytimg.com werkt in plaats van img.youtube.com in de voorbeeld-URL's hierboven.

Als alternatief kunt u de YouTube Data API (v3) om miniatuurafbeeldingen te krijgen.


3875
2018-01-14 23:40



Je kunt gebruiken YouTube Data API om videominiaturen, bijschriften, beschrijvingen, beoordelingen, statistieken en meer op te halen. API-versie 3 vereist een sleutel *. Vraag de sleutel en maak een video's: lijst verzoek:

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

Voorbeeld PHP-code

$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);

uitgang

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)
  }
}

* Niet alleen dat u een sleutel nodig heeft, er kan ook naar factureringsinformatie worden gevraagd, afhankelijk van het aantal API-verzoeken dat u van plan bent te doen. Maar een paar miljoen verzoeken per dag zijn gratis.

Bron artikel.


357
2018-01-21 09:58



Wat Asaf zei, klopt. Niet elke YouTube-video bevat echter alle negen miniaturen, maar er zijn zeven miniaturen voor elke video. Zij zijn:

(Het beeldformaat is afhankelijk van de video.)

  • Achtergrondmuziekminiatuur (480x360 pixels)
    https://i1.ytimg.com/vi/G0wGs3useV8/0.jpg

  • Start Thumbnail (120x90 pixels)
    https://i1.ytimg.com/vi/G0wGs3useV8/1.jpg

  • Middelste miniatuur (120x90 pixels)
    https://i1.ytimg.com/vi/G0wGs3useV8/2.jpg

  • Einde Thumbnail (120x90 pixels)
    https://i1.ytimg.com/vi/G0wGs3useV8/3.jpg

  • Hoge kwaliteit Thumbnail (480x360 pixels)
    https://i1.ytimg.com/vi/G0wGs3useV8/hqdefault.jpg

  • Gemiddelde kwaliteit Thumbnail (320x180 pixels)
    https://i1.ytimg.com/vi/G0wGs3useV8/mqdefault.jpg

  • Normale kwaliteit Thumbnail (120x90 pixels)
    https://i1.ytimg.com/vi/G0wGs3useV8/default.jpg

En bovendien kunnen de volgende twee miniaturen al dan niet bestaan. Voor HQ-video's ze bestaan.

  • Standard Definition Thumbnail (640x480 pixels)
    https://i1.ytimg.com/vi/G0wGs3useV8/sddefault.jpg

  • Maximum resolutie thumbnail (1920x1080 pixels)
    https://i1.ytimg.com/vi/G0wGs3useV8/maxresdefault.jpg

Je kunt de JavaScript- en PHP-scripts gebruiken om miniaturen en andere op te halen YouTube-informatie in

Gebruik ook de tool YouTube Video Informatie Generator om alle te krijgen informatie over een YouTube-video door een URL of video-ID.


199
2017-12-12 11:17



In YouTube API V3 kunnen we deze URL's ook gebruiken voor het verkrijgen van miniaturen ... Ze zijn geclassificeerd op basis van hun kwaliteit.

https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/default.jpg -   default
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg - medium 
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg - high
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/sddefault.jpg - standard

En voor de maximale resolutie ..

https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

Een voordeel van deze URL's boven de URL's in het eerste antwoord is dat deze URL's niet worden geblokkeerd door firewalls.


66
2017-08-23 10:23



Als je de grootste afbeelding van YouTube wilt voor een specifieke video-ID, moet de URL er ongeveer zo uitzien:

http://i3.ytimg.com/vi/SomeVideoIDHere/0.jpg

Met behulp van de API kunt u de standaard miniatuurafbeelding ophalen. Eenvoudige code zou ongeveer zo moeten zijn:

//Grab the default thumbnail image
$attrs = $media->group->thumbnail[1]->attributes();
$thumbnail = $attrs['url'];
$thumbnail = substr($thumbnail, 0, -5);
$thumb1 = $thumbnail."default.jpg";

// Grab the third thumbnail image
$thumb2 = $thumbnail."2.jpg";

// Grab the fourth thumbnail image.
$thumb3 = $thumbnail."3.jpg";

// Using simple cURL to save it your server.
// You can extend the cURL below if you want it as fancy, just like
// the rest of the folks here.

$ch = curl_init ("$thumb1");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata = curl_exec($ch);
curl_close($ch);

// Using fwrite to save the above
$fp = fopen("SomeLocationInReferenceToYourScript/AnyNameYouWant.jpg", 'w');

// Write the file
fwrite($fp, $rawdata);

// And then close it.
fclose($fp);

46
2017-12-22 05:44



Als je de "zwarte balken" wilt verwijderen en het doet zoals YouTube doet, kun je het volgende gebruiken:

https://i.ytimg.com/vi_webp/<video id>/mqdefault.webp

En als je het niet kunt gebruiken .webp extensie kun je het als volgt doen:

https://i.ytimg.com/vi/<video id>/mqdefault.jpg

Ook als u de ongeschaalde versie van de versie wilt gebruiken maxresdefault in plaats van mqdefault.

Opmerking: ik ben niet zeker van de beeldverhouding als u van plan bent om te gebruiken maxresdefault.


39
2018-06-08 11:59



Ik heb een functie gemaakt om alleen bestaande afbeeldingen van YouTube op te halen

function youtube_image($id) {
    $resolution = array (
        'maxresdefault',
        'sddefault',
        'mqdefault',
        'hqdefault',
        'default'
    );

    for ($x = 0; $x < sizeof($resolution); $x++) {
        $url = '//img.youtube.com/vi/' . $id . '/' . $resolution[$x] . '.jpg';
        if (get_headers($url)[0] == 'HTTP/1.0 200 OK') {
            break;
        }
    }
    return $url;
}

27
2017-12-18 10:29