Wie erhalte ich ein YouTube-Video-Thumbnail aus der YouTube-API?
-
20-09-2019 - |
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?
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.
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:
- Wie YouTube Video Info mit PHP erhalten
- abrufen YouTube Video Details mit Hilfe von JavaScript - JSON & API v2
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:
-
Get a öffentliche API - Dieser Link gibt eine gute Richtung
-
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.
Verwendung:
https://www.googleapis.com/youtube/v3/videoCategories?part=snippet,id&maxResults=100®ionCode=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:
- Installiert auf dem Server für Scripting: https://github.com/halgatewood/youtube-thumbnail -enhancer
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> Unlisted';
}
elseif($video_status == 'public'){
$video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
$video_status = '<i class="fa fa-eye"></i> Public';
}
elseif($video_status == 'private'){
$video_thumbnail = $playlistItem['snippet']['thumbnails']['maxres']['url'];
$video_status = '<i class="fa fa-lock"></i> Private';
}
YouTube Data API
YouTube bietet uns die vier erzeugten Bilder für jedes Video über das Data API (v3), zum Beispiel:
Erster Zugriff auf die Bilder über die API
- Zuerst sollten Sie Ihren öffentlichen API-Schlüssel unter Google API Console .
- Wie pro YouTube Thumbnail-Referenz in der API-Dokumentation , müssen Sie Zugriff auf die Ressourcen auf snippet.thumbnails.
-
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);