Frage Wie erhalte ich eine YouTube-Video-Miniaturansicht von der YouTube-API?


Wenn ich eine YouTube-Video-URL habe, gibt es eine Möglichkeit, PHP und cURL zu verwenden, um die zugehörige Miniatur von der YouTube-API abzurufen?


2023
2018-01-14 23:34


Ursprung


Antworten:


Jedes YouTube-Video enthält 4 generierte Bilder. Sie sind wie folgt vorhersehbar formatiert:

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

Der erste in der Liste ist ein Vollbild und andere sind Miniaturbilder. Das Standard-Thumbnail-Bild (z. B. eines von 1.jpg, 2.jpg, 3.jpg) ist:

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

Verwenden Sie für die hochwertige Version des Thumbnails eine ähnliche URL:

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

Es gibt auch eine Version in mittlerer Qualität des Thumbnails, die eine URL ähnlich dem HQ verwendet:

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

Verwenden Sie für die Standarddefinitionsversion der Miniaturansicht eine URL, die der folgenden ähnelt:

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

Verwenden Sie für die Version mit maximaler Auflösung des Thumbnails eine URL ähnlich der folgenden:

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

Alle oben genannten URLs sind auch über HTTP verfügbar. Zusätzlich der etwas kürzere Hostname i3.ytimg.com arbeitet anstelle von img.youtube.com in den obigen Beispiel-URLs.

Alternativ können Sie die YouTube-Daten-API (v3) um Miniaturbilder zu erhalten.


3875
2018-01-14 23:40



Sie können verwenden YouTube-Daten-API um Video-Thumbnails, Titel, Beschreibung, Bewertung, Statistiken und mehr abzurufen. API Version 3 benötigt einen Schlüssel *. Besorgen Sie sich den Schlüssel und erstellen Sie einen Videos: Liste anfordern:

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

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

Ausgabe

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

* Nicht nur, dass Sie einen Schlüssel benötigen, Sie werden möglicherweise auch nach Zahlungsinformationen gefragt, abhängig von der Anzahl der API-Anfragen, die Sie durchführen möchten. Allerdings sind wenige Millionen Anfragen pro Tag kostenlos.

Quellartikel.


357
2018-01-21 09:58



Was Asaph gesagt hat, ist richtig. Allerdings enthält nicht jedes YouTube-Video alle neun Miniaturansichten, aber für jedes Video gibt es sieben Miniaturansichten. Sie sind:

(Die Bildgröße hängt vom Video ab.)

  • Hintergrundbild des Players (480x360 Pixel)
    https://i1.ytimg.com/vi/G0wGs3useV8/0.jpg

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

  • Mittleres Thumbnail (120 x 90 Pixel)
    https://i1.ytimg.com/vi/G0wGs3useV8/2.jpg

  • End Thumbnail (120 x 90 Pixel)
    https://i1.ytimg.com/vi/G0wGs3useV8/3.jpg

  • Hochwertiges Thumbnail (480x360 Pixel)
    https://i1.ytimg.com/vi/G0wGs3useV8/hqdefault.jpg

  • Mittlere Qualität Thumbnail (320x180 Pixel)
    https://i1.ytimg.com/vi/G0wGs3useV8/mqdefault.jpg

  • Normale Qualität Thumbnail (120x90 Pixel)
    https://i1.ytimg.com/vi/G0wGs3useV8/default.jpg

Außerdem können oder können die nächsten zwei Miniaturansichten nicht vorhanden sein. Für HQ-Videos Sie existieren.

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

  • Maximale Auflösung Thumbnail (1920 x 1080 Pixel)
    https://i1.ytimg.com/vi/G0wGs3useV8/maxresdefault.jpg

Sie können die JavaScript- und PHP-Skripts zum Abrufen von Miniaturansichten und anderem abrufen YouTube-Informationen in

Benutze auch das Werkzeug YouTube Video-Informationsgenerator um all das zu bekommen Informationen zu einem YouTube-Video durch Einreichen eines URL oder Video-ID.


199
2017-12-12 11:17



In YouTube API V3 können wir diese URLs auch zum Abrufen von Miniaturansichten verwenden. Sie werden anhand ihrer Qualität klassifiziert.

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

Und für die maximale Auflösung ..

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

Ein Vorteil dieser URLs gegenüber den URLs in der ersten Antwort besteht darin, dass diese URLs nicht durch Firewalls blockiert werden.


66
2017-08-23 10:23



Wenn du das größte Bild von YouTube für eine bestimmte Video-ID haben möchtest, sollte die URL etwa so aussehen:

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

Mit der API können Sie das Standard-Miniaturbild übernehmen. Einfacher Code sollte etwa so aussehen:

//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



Wenn du die "schwarzen Balken" loswerden willst und es wie YouTube machen willst, kannst du folgendes verwenden:

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

Und wenn Sie nicht verwenden können .webp Erweiterung können Sie es so machen:

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

Auch wenn Sie die unskalierte Version verwenden möchten maxresdefault Anstatt von mqdefault.

Hinweis: Ich bin mir nicht sicher über das Seitenverhältnis, wenn Sie es verwenden möchten maxresdefault.


39
2018-06-08 11:59



Ich habe eine Funktion gemacht, nur vorhandene Bilder von YouTube zu holen

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



Im YouTube-Daten-API Version 3, können Sie die Miniaturansichten des Videos mit der Videos-> Liste Funktion. Von snippet.thumbnails. (Schlüssel)Sie können die Standardvorschau, die mittlere oder die hohe Auflösung sowie die Breite, Höhe und URL der Miniaturansicht auswählen.

Sie können Thumbnails auch mit dem aktualisieren Vorschaubilder-> einstellen Funktionalität.

Zum Beispiel können Sie die YouTube-API-Beispiele Projekt. (PHP-Einsen.)


26
2018-05-28 17:45



Du kannst das bekommen Videoeintrag enthält die URL zur Miniaturansicht des Videos. Es gibt Beispielcode in der Verbindung. Oder, wenn Sie XML analysieren möchten, gibt es Informationen Hier. Der zurückgegebene XML-Code hat a media:thumbnail Element, das die URL des Thumbnails enthält.


25
2018-01-14 23:40



// Get image form video URL
$url = $video['video_url'];

$urls = parse_url($url);

//Expect the URL to be http://youtu.be/abcd, where abcd is the video ID
if ($urls['host'] == 'youtu.be') :

    $imgPath = ltrim($urls['path'],'/');

//Expect the URL to be http://www.youtube.com/embed/abcd
elseif (strpos($urls['path'],'embed') == 1) :

    $imgPath = end(explode('/',$urls['path']));

//Expect the URL to be abcd only
elseif (strpos($url,'/') === false):

    $imgPath = $url;

//Expect the URL to be http://www.youtube.com/watch?v=abcd
else :

    parse_str($urls['query']);

    $imgPath = $v;

endif;

20
2017-07-04 05:10