Frage

Wenn ich eine YouTube-Video-URL habe, ist es eine Möglichkeit, PHP und cURL verwendet die zugehörige Miniatur aus der YouTube-API zu bekommen?

War es hilfreich?

Lösung

Jedes YouTube-Video hat vier Bilder erzeugt. Sie sind vorhersagbar wie folgt 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

Die erste in der Liste ist ein Bild in voller Größe und andere Miniaturbilder. Die Standarddarstellung des Bildes (das heißt, einer von 1.jpg, 2.jpg, 3.jpg) ist:

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

Für die hohe Qualität Version des Thumbnail eine URL ähnlich wie diese verwendet:

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

Es gibt auch eine mittlere Qualität Version des Thumbnail, eine URL ähnlich den HQ mit:

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

Für die Standard-Definition-Version des Thumbnail, eine URL ähnlich wie diese verwendet:

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

Für die maximale Auflösung der URL Thumbnail verwenden ähnlich wie folgt aus:

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

Alle oben genannten URLs sind über HTTP zu Verfügung. Darüber hinaus arbeitet die etwas kürzer Hostnamen i3.ytimg.com anstelle von img.youtube.com in dem Beispiel-URLs oben.

Alternativ können Sie die YouTube Data API (v3) Thumbnail-Bilder zu bekommen.

Andere Tipps

Sie können mit YouTube Data API Video-Thumbnails abrufen , Titel, Beschreibung, Bewertung, Statistiken und vieles mehr. API-Version 3 erfordert einen Schlüssel *. Besorgen Sie sich die Schlüssel und erstellen Sie eine Videos: list Anfrage:

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

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

* Nicht nur, dass Sie einen Schlüssel benötigen, könnten Sie für Abrechnungsinformationen gebeten, auf die Anzahl der API-Anforderungen ab, die Sie planen zu machen. Doch nur wenige Millionen Anfragen pro Tag sind kostenlos.

Quelle Artikel .

sagte Was Asaph richtig ist. Doch nicht jedes YouTube-Video enthält alle neun Thumbnails. Auch die Bildgrößen abhängig Thumbnails auf dem Video (die unten Zahlen basieren auf einer).

Es gibt sieben Thumbnails garantiert sind:

| Thumbnail Name      | Size (px) | URL                                              |
|---------------------|-----------|--------------------------------------------------|
| Player Background   | 480x360   | https://i1.ytimg.com/vi/<VIDEO ID>/0.jpg         |
| Start               | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/1.jpg         |
| Middle              | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/2.jpg         |
| End                 | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/3.jpg         |
| High Quality        | 480x360   | https://i1.ytimg.com/vi/<VIDEO ID>/hqdefault.jpg |
| Medium Quality      | 320x180   | https://i1.ytimg.com/vi/<VIDEO ID>/mqdefault.jpg |
| Normal Quality      | 120x90    | https://i1.ytimg.com/vi/<VIDEO ID>/default.jpg   |

Darüber hinaus sind die beiden anderen Miniaturen bestehen können oder auch nicht. Ihre Anwesenheit ist wahrscheinlich basierend darauf, ob das Video mit hohen Qualität.

| Thumbnail Name      | Size (px) | URL                                                  |
|---------------------|-----------|------------------------------------------------------|
| Standard Definition | 640x480   | https://i1.ytimg.com/vi/<VIDEO ID>/sddefault.jpg     |
| Maximum Resolution  | 1920x1080 | https://i1.ytimg.com/vi/<VIDEO ID>/maxresdefault.jpg |

Sie können JavaScript und PHP-Skripte finden, um Thumbnails abrufen und andere YouTube Informationen auf:

können Sie auch die YouTube Video Information Generator Tool alle bekommen die Informationen über ein YouTube-Video von einer URL oder Video-ID eingeben.

In YouTube API V3 wir können auch diese URLs für Thumbnails zu erhalten ... Sie werden auf ihre Qualität eingestuft basierend.

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

Für die maximale Auflösung ..

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

Ein Vorteil dieser URLs über die URLs in der ersten Antwort ist, dass dieser URLs nicht durch Firewalls blockiert werden.

Wenn Sie das größte Bild von YouTube für eine bestimmte Video-ID wollen, dann sollte die URL so etwas wie diese:

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

Mit der API können Sie die Standarddarstellung des Bildes abholen. Einfacher Code soll wie folgt sein:

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

Wenn Sie die Beseitigung der „schwarzen Balken“ bekommen wollen und tun es wie YouTube dies der Fall, können Sie:

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

Und wenn Sie nicht die .webp Dateierweiterung verwenden, können Sie es wie folgt tun:

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

Auch wenn Sie die nicht skalierte Version, verwendet maxresdefault statt mqdefault.

. Hinweis: Ich bin nicht sicher über das Seitenverhältnis, wenn Sie planen zu verwenden maxresdefault

ich eine Funktion gemacht nur für bestehende 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;
}

YouTube Data API v3 , können Sie Videos Thumbnails mit der Videos-> Liste Funktion. Aus snippet.thumbnails. (Key) , können Sie die Standard, mittlere oder hohe Auflösung Thumbnail wählen, und seine Breite, Höhe und URL erhalten.

Sie können auch Thumbnails aktualisieren mit der thumbnails-> set Funktionalität .

Für Beispiele, können Sie Besuche die YouTube API Samples Projekt. ( PHP diejenigen .)

können Sie erhalten die Video Eintrag , die die URL enthält auf die Miniaturansicht des Videos. Es gibt Beispielcode in dem Link. Oder, wenn Sie zu parsen XML wollen, gibt es Informationen rel="noreferrer">. Die XML zurückgegeben hat ein media:thumbnail Element, das die Miniaturansicht der URL enthält.

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

ist YouTube im Besitz von Google und Google mag eine angemessene Anzahl von Bildern für verschiedene Bildschirmgrößen haben, damit ihre Bilder in verschiedenen Größen gespeichert sind. Hier ist ein Beispiel dafür, wie Ihr Thumbnail aussehen wird:

Niedrige Qualität Thumbnail:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/sddefault.jpg

Mittlere Qualität Thumbnail:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/mqdefault.jpg

Hohe Qualität Thumbnail:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/hqdefault.jpg

Maximale Qualität Thumbnail:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/maxresdefault.jpg

YouTube API-Version 3 und in 2 Minuten läuft

Wenn alles, was Sie tun möchten, ist YouTube suchen und damit verbundene Eigenschaften erhalten:

  1. Get a öffentliche API - Dieser Link gibt eine gute Richtung

  2. Verwenden Sie die folgende Abfrage-String. Die Suchabfrage (bezeichnet mit q = ) in der URL-Zeichenfolge ist Stackoverflow zum Beispiel Zwecken. YouTube wird dann senden Sie eine JSON-Antwort zurück, wo Sie für Thumbnail dann analysieren kann, Snippet, Autor, etc.

    https: //www.googleapis .com / youtube / v3 / search? part = id% 2Csnippet & maxResults = 50 & q = & Stackoverflow key = YOUR_API_KEY_HERE

Verwendung:

https://www.googleapis.com/youtube/v3/videoCategories?part=snippet,id&maxResults=100&regionCode=us&key=**Your YouTube ID**

Oben ist der Link. Mit dem können Sie die YouTube-Eigenschaften von Videos. Nach dem Auffinden Merkmalen können Sie Videos von der gewählten Kategorie erhalten. Danach können Sie Videobilder mit Asaph Antwort .

Versuchen Sie, den oben beschriebenen Ansatz und Sie können alles von der YouTube analysieren API .

Ich habe YouTube Thumbnails auf diese Weise verwendet:

$url = 'http://img.youtube.com/vi/' . $youtubeId . '/0.jpg';
$img = dirname(__FILE__) . '/youtubeThumbnail_'  . $youtubeId . '.jpg';
file_put_contents($img, file_get_contents($url));

Denken Sie daran hindert YouTube Bilder von ihrem Server direkt aufzunehmen.

Ich fand dieses nette Tool, das Sie das Bild mit der YouTube Play-Taste auf das Bild platziert erstellen kann:

Just hinzufügen / erweitern auf den angegebenen Lösungen, halte ich es für notwendig ist zu beachten, dass, wie ich dieses Problem selbst hatte, kann man tatsächlich mehrere YouTube-Videos Inhalte greifen, in diesem Fall, Thumbnails, mit einer HTTP-Anforderung:

Mit einem REST-Client, in diesem Fall HTTPFUL, können Sie etwas tun:

<?php
header("Content-type", "application/json");

//download the httpfull.phar file from http://phphttpclient.com
include("httpful.phar");

$youtubeVidIds= array("nL-rk4bgJWU", "__kupr7KQos", "UCSynl4WbLQ", "joPjqEGJGqU", "PBwEBjX3D3Q");


$response = \Httpful\Request::get("https://www.googleapis.com/youtube/v3/videos?key=YourAPIKey4&part=snippet&id=".implode (",",$youtubeVidIds)."")

->send();

print ($response);

?>

Eine weitere gute Alternative wäre die Verwendung des oEmbed API, die von YouTube unterstützt wird.

Sie fügen Sie einfach Ihre YouTube-URL an die oEmbed URL und Sie erhalten eine JSON mit einem Thumbnail und dem HTML-Code zum Einbetten erhalten.

Beispiel:

http://www.youtube.com/oembed?format=json&url=http%3A//youtube.com/watch%3Fv%3DDLzxrzFCyOs

würden Sie:

{
  thumbnail_url: "https://i.ytimg.com/vi/DLzxrzFCyOs/hqdefault.jpg",
  width: 459,
  author_name: "AllKindsOfStuff",
  version: "1.0",
  author_url: "https://www.youtube.com/channel/UCLNd5EtH77IyN1frExzwPRQ",
  thumbnail_width: 480,
  type: "video",
  provider_url: "https://www.youtube.com/",
  html: "<iframe width="459" height="344" src="https://www.youtube.com/embed/DLzxrzFCyOs?feature=oembed" frameborder="0" allowfullscreen></iframe>",
  title: "Some title bla bla foo bar",
  thumbnail_height: 360,
  provider_name: "YouTube",
  height: 344
}

Lesen Sie die Dokumentation für weitere Informationen .

Eine einfache PHP-Funktion, die ich für den YouTube erstellt Miniaturansicht und die Typen sind

  • default
  • hqdefault
  • mqdefault
  • sddefault
  • maxresdefault

function get_youtube_thumb($link,$type){

    $video_id = explode("?v=", $link);

    if (empty($video_id[1])){
        $video_id = explode("/v/", $link);
        $video_id = explode("&", $video_id[1]);
        $video_id = $video_id[0];
    }
    $thumb_link = "";

    if($type == 'default'   || $type == 'hqdefault' ||
       $type == 'mqdefault' || $type == 'sddefault' ||
       $type == 'maxresdefault'){

        $thumb_link = 'http://img.youtube.com/vi/'.$video_id.'/'.$type.'.jpg';

    }elseif($type == "id"){
        $thumb_link = $video_id;
    }
    return $thumb_link;}

Wenn Sie die öffentliche API verwenden, ist der beste Weg, es zu tun ist if Anweisungen.

Wenn das Video öffentlich oder nicht gelistet ist, setzen Sie das entsprechende Vorschaubild URL-Methode. Wenn das Video ist privat verwenden Sie die API die Miniaturansicht zu erhalten.

<?php
    if($video_status == 'unlisted'){
        $video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
        $video_status = '<i class="fa fa-lock"></i>&nbsp;Unlisted';
    }
    elseif($video_status == 'public'){
        $video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
        $video_status = '<i class="fa fa-eye"></i>&nbsp;Public';
    }
    elseif($video_status == 'private'){
        $video_thumbnail = $playlistItem['snippet']['thumbnails']['maxres']['url'];
        $video_status = '<i class="fa fa-lock"></i>&nbsp;Private';
    }

YouTube Data API

YouTube bietet uns die vier erzeugten Bilder für jedes Video über das Data API (v3), zum Beispiel:

  1. https://i.ytimg.com/vi/V_zwalcR8DU/ maxresdefault.jpg

  2. https://i.ytimg.com/vi/V_zwalcR8DU/ sddefault.jpg

  3. https://i.ytimg.com/vi/V_zwalcR8DU/ hqdefault.jpg

  4. https://i.ytimg.com/vi/V_zwalcR8DU/ mqdefault.jpg

Erster Zugriff auf die Bilder über die API

  1. Zuerst sollten Sie Ihren öffentlichen API-Schlüssel unter Google API Console .
  2. Wie pro YouTube Thumbnail-Referenz in der API-Dokumentation , müssen Sie Zugriff auf die Ressourcen auf snippet.thumbnails.
  3. Wie pro diese, müssen Sie Ihre URL Begriff wie dieser -

    www.googleapis.com/youtube/v3/videos?part=snippet&id=`yourVideoId`&key=`yourApiKey`
    

Jetzt ist Ihre Video-ID ändern und Ihren API-Schlüssel an dem Ihrem jeweiligen Video-ID und api-Schlüssel und deren Antwort wird eine JSON Ausgabe liefert Ihnen die vier Links in dem Thumbnails des Schnipsel variabel sein (wenn alle zur Verfügung stehen).

Sie können die Video-ID aus der Video-URL YouTube erhalten mit parse_url parse_str und dann Einsatz in den prädiktiven Urls für Bilder . Dank YouTube für die prädiktive URLs

$videoUrl = "https://www.youtube.com/watch?v=8zy7wGbQgfw";
parse_str( parse_url( $videoUrl, PHP_URL_QUERY ), $my_array_of_vars );
$ytID = $my_array_of_vars['v']; //gets video ID

print "https://img.youtube.com/vi/<?php print $ytID?>/maxresdefault.jpg";
print "https://img.youtube.com/vi/<?php print $ytID?>/mqdefault.jpg";
print "https://img.youtube.com/vi/<?php print $ytID?>/hqdefault.jpg";
print "https://img.youtube.com/vi/<?php print $ytID?>/sddefault.jpg";
print "https://img.youtube.com/vi/<?php print $ytID?>/default.jpg";

Sie können dieses Tool verwenden, um YouTube Thumbnails zu erzeugen

https://tools.tutsplanet.com/index.php / get-youtube-Video-Thumbnails

Ich denke, ihr gibt viele Antwort für Thumbnail, aber ich möchte einige andere URLs hinzufügen Thumbnail sehr leicht zu bekommen YouTube. Ich bin nur einen Text von Asaph Antwort nehmen. Hier sind einige URLs YouTube Thumbnails zu bekommen:

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

Für die hohe Qualität Version des Thumbnail eine URL ähnlich wie diese verwendet:

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

Es gibt auch eine mittlere Qualität Version des Thumbnail, eine URL ähnlich wie die hohe Qualität mit:

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

Für die Standard-Definition-Version des Thumbnail, eine URL ähnlich wie diese verwendet:

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

Für die maximale Auflösung der URL Thumbnail verwenden ähnlich wie folgt aus:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg
    function get_video_thumbnail( $src ) {
            $url_pieces = explode('/', $src);
            if( $url_pieces[2] == 'dai.ly'){
                $id = $url_pieces[3];
                $hash = json_decode(file_get_contents('https://api.dailymotion.com/video/'.$id.'?fields=thumbnail_large_url'), TRUE);
                $thumbnail = $hash['thumbnail_large_url'];
            }else if($url_pieces[2] == 'www.dailymotion.com'){
                $id = $url_pieces[4];
                $hash = json_decode(file_get_contents('https://api.dailymotion.com/video/'.$id.'?fields=thumbnail_large_url'), TRUE);
                $thumbnail = $hash['thumbnail_large_url'];
            }else if ( $url_pieces[2] == 'vimeo.com' ) { // If Vimeo
                $id = $url_pieces[3];
                $hash = unserialize(file_get_contents('http://vimeo.com/api/v2/video/' . $id . '.php'));
                $thumbnail = $hash[0]['thumbnail_large'];
            } elseif ( $url_pieces[2] == 'youtu.be' ) { // If Youtube
                $extract_id = explode('?', $url_pieces[3]);
                $id = $extract_id[0];
                $thumbnail = 'http://img.youtube.com/vi/' . $id . '/mqdefault.jpg';
            }else if ( $url_pieces[2] == 'player.vimeo.com' ) { // If Vimeo
                $id = $url_pieces[4];
                $hash = unserialize(file_get_contents('http://vimeo.com/api/v2/video/' . $id . '.php'));
                $thumbnail = $hash[0]['thumbnail_large'];
            } elseif ( $url_pieces[2] == 'www.youtube.com' ) { // If Youtube
                $extract_id = explode('=', $url_pieces[3]);
                $id = $extract_id[1];
                $thumbnail = 'http://img.youtube.com/vi/' . $id . '/mqdefault.jpg';
            } else{
                $thumbnail = tim_thumb_default_image('video-icon.png', null, 147, 252);
            }
            return $thumbnail;
        }

get_video_thumbnail('https://vimeo.com/154618727');
get_video_thumbnail('https://www.youtube.com/watch?v=SwU0I7_5Cmc');
get_video_thumbnail('https://youtu.be/pbzIfnekjtM');
get_video_thumbnail('http://www.dailymotion.com/video/x5thjyz');

Die Top-Antwort ist für den manuellen Einsatz optimiert. Die Video-ID-Token ohne Trenn ermöglicht mit einem Doppelklick ausgewählt wird.

Jedes YouTube-Video hat vier Bilder erzeugt. Sie sind vorhersagbar wie folgt formatiert:

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

Die erste in der Liste ist ein Bild in voller Größe und andere Miniaturbilder. Die Standard-Miniaturbild (. Dh ein von 1.jpg, 2.jpg, 3.jpg) ist:

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

Für die hohe Qualität Version des Thumbnail eine URL ähnlich wie diese verwendet:

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

Es gibt auch eine mittlere Qualität Version des Thumbnail, eine URL ähnlich den HQ mit:

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

Für die Standard-Definition-Version des Thumbnail, eine URL ähnlich wie diese verwendet:

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

Für die maximale Auflösung der URL Thumbnail verwenden ähnlich wie folgt aus:

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

Alle oben genannten URLs sind über HTTP zu Verfügung. Darüber hinaus arbeitet die etwas kürzer Hostnamen i3.ytimg.com anstelle von img.youtube.com in dem Beispiel-URLs oben.

Alternativ können Sie das verwenden YouTube Data API (v3) Thumbnail-Bilder zu erhalten .

Methode 1:

Sie können alle Informationen für ein YouTube-Video mit einer JSON Seite finden, die auch „thumbnail_url“ hat, http://www.youtube.com/oembed?format=json&url= { Ihre Video-URL geht hier}

Wie letzte URL look + PHP Test-Code

$data = file_get_contents("https://www.youtube.com/oembed?format=json&url=https://www.youtube.com/watch?v=_7s-6V_0nwA");
$json = json_decode($data);
var_dump($json);

Output

object(stdClass)[1]
  public 'width' => int 480
  public 'version' => string '1.0' (length=3)
  public 'thumbnail_width' => int 480
  public 'title' => string 'how to reminder in window as display message' (length=44)
  public 'provider_url' => string 'https://www.youtube.com/' (length=24)
  public 'thumbnail_url' => string 'https://i.ytimg.com/vi/_7s-6V_0nwA/hqdefault.jpg' (length=48)
  public 'author_name' => string 'H2 ZONE' (length=7)
  public 'type' => string 'video' (length=5)
  public 'author_url' => string 'https://www.youtube.com/channel/UC9M35YwDs8_PCWXd3qkiNzg' (length=56)
  public 'provider_name' => string 'YouTube' (length=7)
  public 'height' => int 270
  public 'html' => string '<iframe width="480" height="270" src="https://www.youtube.com/embed/_7s-6V_0nwA?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>' (length=171)
  public 'thumbnail_height' => int 360

Weitere Informationen können Sie auch sehen https://www.youtube.com/watch? v = mXde7q59BI8 Video-Tutorial 1

Methode 2:

Mit YouTube Bildlink, https://img.youtube.com/vi/ "Insert-youtube-video-ID- hier "/default.jpg

Methode 3:

Mit Browser-Quellcode für das Erhalten Video-URL-Link Thumbnail mit -go Video Quellcode und die Suche nach thumbnailURL. Jetzt können Sie diese URL in Ihr Quellcode:

{img src="https://img.youtube.com/vi/"insert-youtube-video-id-here"/default.jpg"}

Weitere Informationen können Sie auch sehen, Anfahrt ein YouTube-Video-Thumbnail-ID mit oder https://www.youtube.com/watch?v=9f6E8MeM6PI Video-Tutorial 2

Verwenden img.youtube.com/vi/YouTubeID/ImageFormat.jpg

Hier Bildformate sind unterschiedlich wie Standard, hqdefault, maxresdefault.

Das ist mein Client-Seite-only no-API-Key-Lösung erforderlich.

YouTube.parse('https://www.youtube.com/watch?v=P3DGwyl0mJQ').then(_ => console.log(_))

Der Code:

import { parseURL, parseQueryString } from './url'
import { getImageSize } from './image'

const PICTURE_SIZE_NAMES = [
    // 1280 x 720.
    // HD aspect ratio.
    'maxresdefault',
    // 629 x 472.
    // non-HD aspect ratio.
    'sddefault',
    // For really old videos not having `maxresdefault`/`sddefault`.
    'hqdefault'
]

// - Supported YouTube URL formats:
//   - http://www.youtube.com/watch?v=My2FRPA3Gf8
//   - http://youtu.be/My2FRPA3Gf8
export default
{
    parse: async function(url)
    {
        // Get video ID.
        let id
        const location = parseURL(url)
        if (location.hostname === 'www.youtube.com') {
            if (location.search) {
                const query = parseQueryString(location.search.slice('/'.length))
                id = query.v
            }
        } else if (location.hostname === 'youtu.be') {
            id = location.pathname.slice('/'.length)
        }

        if (id) {
            return {
                source: {
                    provider: 'YouTube',
                    id
                },
                picture: await this.getPicture(id)
            }
        }
    },

    getPicture: async (id) => {
        for (const sizeName of PICTURE_SIZE_NAMES) {
            try {
                const url = getPictureSizeURL(id, sizeName)
                return {
                    type: 'image/jpeg',
                    sizes: [{
                        url,
                        ...(await getImageSize(url))
                    }]
                }
            } catch (error) {
                console.error(error)
            }
        }
        throw new Error(`No picture found for YouTube video ${id}`)
    },

    getEmbeddedVideoURL(id, options = {}) {
        return `https://www.youtube.com/embed/${id}`
    }
}

const getPictureSizeURL = (id, sizeName) => `https://img.youtube.com/vi/${id}/${sizeName}.jpg`

Utility-image.js:

// Gets image size.
// Returns a `Promise`.
function getImageSize(url)
{
    return new Promise((resolve, reject) =>
    {
        const image = new Image()
        image.onload = () => resolve({ width: image.width, height: image.height })
        image.onerror = reject
        image.src = url
    })
}

Utility-url.js:

// Only on client side.
export function parseURL(url)
{
    const link = document.createElement('a')
    link.href = url
    return link
}

export function parseQueryString(queryString)
{
    return queryString.split('&').reduce((query, part) =>
    {
        const [key, value] = part.split('=')
        query[decodeURIComponent(key)] = decodeURIComponent(value)
        return query
    },
    {})
}

Hier ist eine einfache Funktion, die ich für immer die Thumbnails erstellt. Es ist leicht zu verstehen und zu verwenden.

$ Link ist der Link YouTube kopiert genau so, wie sie im Browser ist zum Beispiel https : //www.youtube.com/watch v = BQ0mxQXmLsk

function get_youtube_thumb($link){
    $new = str_replace('https://www.youtube.com/watch?v=', '', $link);
    $thumbnail = 'https://img.youtube.com/vi/' . $new . '/0.jpg';
    return $thumbnail;
}

Speichern Sie diesen Code in leeren Php-Datei und testen Sie es.

<img src="<?php echo youtube_img_src('9bZkp7q19f0', 'high');?>" />
<?php
// Get a YOUTUBE video thumb image's source url for IMG tag "src" attribute:
// $ID = YouYube video ID (string)
// $size = string (default, medium, high or standard)
function youtube_img_src ($ID = null, $size = 'default') {
    switch ($size) {
        case 'medium':
            $size = 'mqdefault';
            break;
        case 'high':
            $size = 'hqdefault';
            break;
        case 'standard':
            $size = 'sddefault';
            break;
        default:
            $size = 'default';
            break;
    }
    if ($ID) {
        return sprintf('https://img.youtube.com/vi/%s/%s.jpg', $ID, $size);
    }
    return 'https://img.youtube.com/vi/ERROR/1.jpg';
}

Danke.

public const string tubeThumb = "http://i.ytimg.com/vi/[id]/hqdefault.jpg";
vid.Thumbnail = tubeThumb.Replace("[id]", vid.VideoID);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top