Comment puis-je obtenir une vignette vidéo YouTube à partir de L'API YouTube?
30 réponses
chaque vidéo YouTube a 4 images générées. Ils sont formatés comme suit:
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
le premier dans la liste est une image pleine grandeur et d'autres sont des images miniatures. La valeur par défaut de vignette (ie. l'un des 1.jpg
, 2.jpg
, 3.jpg
) est:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg
pour la version de haute qualité de la vignette utiliser une url similaire à celle-ci:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg
il y a aussi un médium version de qualité de la vignette, en utilisant une url similaire au HQ:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg
pour la version définition standard de la vignette, utilisez une url similaire à celle-ci:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/sddefault.jpg
pour la version à résolution maximale de la vignette utiliser une url similaire à celle-ci:
https://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg
Toutes les url ci-dessus sont disponibles sur http. En outre ,le nom d'hôte légèrement plus court i3.ytimg.com
fonctionne à la place de img.youtube.com
dans l'exemple de l'url ci-dessus.
alternativement, vous pouvez utiliser L'API de données YouTube (v3) pour obtenir des images miniatures.
vous pouvez utiliser API données YouTube pour récupérer des vignettes vidéo, légende, description, évaluation, statistiques et plus. La version 3 de L'API nécessite une clé*. Obtenir la clé et créer un vidéos: liste demande:
https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID
exemple de code PHP
$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);
Sortie
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)
}
}
* non seulement que vous avez besoin d'une clé, on pourrait vous demander des informations de facturation en fonction du nombre de requêtes API que vous prévoyez de faire. Cependant, quelques millions de requêtes par jour sont gratuites.
ce qu'Asaph a dit est juste. Cependant, toutes les vidéos sur YouTube ne contiennent pas les neuf vignettes, mais il y en a sept pour chaque vidéo. Ce sont:
(la taille de L'Image dépend de la vidéo.)
-
lecteur Fond miniature (480x360 pixels)
https://i1.ytimg.com/vi/G0wGs3useV8/0.jpg
-
Démarrer Miniature (120x90 pixels)
https://i1.ytimg.com/vi/G0wGs3useV8/1.jpg
-
vignette du milieu (120x90 pixels)
https://i1.ytimg.com/vi/G0wGs3useV8/2.jpg
-
vignette D'extrémité (120x90 pixels)
https://i1.ytimg.com/vi/G0wGs3useV8/3.jpg
-
vignette de haute qualité (480x360 pixels)
https://i1.ytimg.com/vi/G0wGs3useV8/hqdefault.jpg
-
vignette de qualité moyenne (320x180 pixels)
https://i1.ytimg.com/vi/G0wGs3useV8/mqdefault.jpg
-
vignette de qualité normale (120x90 pixels)
https://i1.ytimg.com/vi/G0wGs3useV8/default.jpg
et en outre, les deux vignettes suivantes peuvent ou non exister. Pour les vidéos du QG ils existent.
-
définition standard vignette (640x480 pixels)
https://i1.ytimg.com/vi/G0wGs3useV8/sddefault.jpg
-
vignette de résolution maximale (1920x1080 pixels)
https://i1.ytimg.com/vi/G0wGs3useV8/maxresdefault.jpg
vous pouvez obtenir les scripts JavaScript et PHP pour récupérer des vignettes et d'autres Informations sur YouTube dans
- Comment obtenir une Vidéo de YouTube Info avec PHP
- récupérez les détails de la vidéo YouTube en utilisant JavaScript-JSON & API v2
Également utiliser l'outil Vidéo YouTube de l'Information Générateur pour obtenir tous les l'information D'une vidéo YouTube en soumettant un URL ou de la vidéo ID.
dans YouTube API V3 nous pouvons également utiliser ces URLs pour obtenir des vignettes... Ils sont classés en fonction de leur qualité.
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
Et pour la résolution maximale..
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg
un avantage de ces URLs par rapport aux URLs de la première réponse est que ces URLs ne sont pas bloquées par des pare-feu.
si vous voulez la plus grande image de YouTube pour un ID vidéo spécifique, alors L'URL devrait être quelque chose comme ceci:
http://i3.ytimg.com/vi/SomeVideoIDHere/0.jpg
avec L'API, vous pouvez récupérer l'image par défaut. Le code Simple devrait être quelque chose comme ceci:
//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);
Si vous voulez vous débarrasser de la "barres noires" et le faire comme YouTube ne, vous pouvez utiliser :
https://i.ytimg.com/vi_webp/<video id>/mqdefault.webp
et si vous ne pouvez pas utiliser .webp
extension vous pouvez le faire comme ceci:
https://i.ytimg.com/vi/<video id>/mqdefault.jpg
aussi, si vous avez besoin de la version non scellée, utilisez maxresdefault
au lieu de mqdefault
.
Note: Je ne suis pas sûr du rapport d'aspect si vous prévoyez d'utiliser maxresdefault
.
j'ai créé une fonction pour récupérer uniquement les images existantes sur YouTube
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;
}
dans API données YouTube v3 , vous pouvez obtenir les vignettes de la vidéo avec le vidéos->liste fonction. De extrait de.vignette.(key) , vous pouvez choisir la vignette par défaut, moyenne ou haute résolution, et obtenir sa largeur, hauteur et URL.
vous pouvez également mettre à jour les vignettes avec la fonctionnalité vignettes->définir .
Pour des exemples, vous pouvez consulter le API YouTube Échantillons du projet. ( PHP .)
vous pouvez obtenir la Entrée Vidéo qui contient l'URL de la vignette de la vidéo. Il y a un exemple de code dans le lien. Ou, si vous voulez analyser XML, Il ya des informations ici . Le XML retourné comporte un élément media:thumbnail
, qui contient l'URL de la vignette.
// 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;
YouTube est la propriété de Google et Google aime avoir un nombre raisonnable d'images pour différentes tailles d'écran donc ses images sont stockées dans des tailles différentes, voici un exemple de la façon dont votre vignette comme will il aime""
vignette de basse qualité:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/sddefault.jpg
vignette de qualité moyenne:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/mqdefault.jpg
vignette de haute qualité:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/hqdefault.jpg
vignette de qualité maximale:
http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/maxresdefault.jpg
YOUTUBE API VERSION 3 * * UP AND RUNNING IN 2 MINUTES * *
si tout ce que vous voulez faire est la recherche YouTube et obtenir des propriétés associées:
- Obtenir une API PUBLIQUE -- Ce Lien donne la bonne direction
2.Utilisez la chaîne de requête ci-dessous. La requête de recherche (dénotée par q= ) dans la chaîne d'url est stackoverflow par exemple. YouTube vous renverra alors une réponse json où vous pourrez ensuite analyser pour Thumbnail, Snippet, auteur, etc.
https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&maxResults=50&q=stackoverflow&key=YOUR_API_KEY_HERE
utiliser:
https://www.googleapis.com/youtube/v3/videoCategories?part=snippet,id&maxResults=100®ionCode=us&key=**Your YouTube ID**
ci-Dessus est le lien. En utilisant cela, vous pouvez trouver les caractéristiques YouTube des vidéos. Après avoir trouvé les caractéristiques, vous pouvez obtenir des vidéos de la catégorie choisie. Après cela, vous pouvez trouver des images vidéo sélectionnées en utilisant réponse D'Asaph .
essayez l'approche ci-dessus et vous pouvez tout analyser sur YouTube API .
j'ai utilisé des vignettes YouTube de cette façon:
$url = 'http://img.youtube.com/vi/' . $youtubeId . '/0.jpg';
$img = dirname(__FILE__) . '/youtubeThumbnail_' . $youtubeId . '.jpg';
file_put_contents($img, file_get_contents($url));
souvenez-vous YouTube empêche d'inclure des Images directement à partir de leur serveur
j'ai trouvé cet outil astucieux qui vous permet de créer l'image avec le YouTube jouer bouton placé sur l'image:
- installé sur le serveur pour le script: https://github.com/halgatewood/youtube-thumbnail-enhancer
juste pour ajouter/étendre sur les solutions données, je pense qu'il est nécessaire de noter que, comme j'ai eu ce problème moi-même, on peut effectivement saisir plusieurs vidéos YouTube contenu, dans ce cas, des vignettes, avec une demande HTTP:
en utilisant un client Rest, dans ce cas, HTTPFUL, vous pouvez faire quelque chose comme ceci:
<?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);
?>
une fonction php simple que j'ai créé pour la vignette youtube et les types sont
- par défaut
- 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;}
une autre bonne alternative serait d'utiliser L'API oEmbed qui est prise en charge par YouTube.
il vous suffit d'ajouter votre Url YouTube à l'url oEmbed et vous recevrez un JSON comprenant une vignette et le code html pour l'intégration.
exemple:
http://www.youtube.com/oembed?format=json&url=http%3A//youtube.com/watch%3Fv%3DDLzxrzFCyOs
vous donnerait:
{
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
}
Lire la Documentation pour plus "" Information .
Si vous utilisez l'api publique, la meilleure façon de le faire est d'utiliser des instructions if.
si la vidéo est publique ou non, vous définissez la vignette en utilisant la méthode url. Si la vidéo est privée vous utilisez l'api pour obtenir la vignette.
<?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';
}
API données YouTube
YouTube nous fournit les 4 images générées pour chaque vidéo à travers L'API de données( v3), Pour Ex -
-
https://i.ytimg.com/vi/V_zwalcR8DU/maxresdefault.jpg
-
https://i.ytimg.com/vi/V_zwalcR8DU/sddefault.jpg
-
https://i.ytimg.com/vi/V_zwalcR8DU/hqdefault.jpg
-
https://i.ytimg.com/vi/V_zwalcR8DU/mqdefault.jpg
accéder aux Images Via API
- obtenez D'abord votre clé API publique à Google API Console .
- selon la référence de la vignette de YouTube dans la documentation API , vous devez accéder aux ressources sur snippet.vignette.
-
comme suit, vous devez formuler votre URL comme ceci -
www.googleapis.com/youtube/v3/videos?part=snippet&id=
yourVideoId
& key=yourApiKey
changez maintenant votrevideoid et yourApiKey en votre id vidéo respectif et la clé api et sa réponse sera une sortie JSON vous fournissant les 4liens dans les vignettes de la variable snippet (si tous sont disponibles).
je pense que leur sont beaucoup de réponse pour vignette, mais je veux ajouter quelques autres urls pour obtenir vignette youtube très facilement. Je prends juste quelques textos de la réponse d'Asaph. Voici quelques url pour obtenir des vignettes youtube
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/default.jpg
pour la version de haute qualité de la vignette utiliser une url similaire à celle-ci:
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg
il y a aussi une version de qualité moyenne de la vignette, en utilisant une url similaire au HQ:
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg
pour la version définition standard de la vignette, utilisez une url similaire à celle-ci:
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/sddefault.jpg
pour la version à résolution maximale de la vignette utiliser une url similaire à celle-ci:
https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg
J'espère que ça aidera quelqu'un dans un futur proche.
vous pouvez obtenir l'ID de la vidéo à partir de L'url de la vidéo YouTube en utilisant parse_url , parse_str puis insérez dans les URL prédictives pour les images. Merci à YouTube pour les URLs prédictives
$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";
vous pouvez utiliser cet outil pour générer des vignettes YouTube""
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');
réponse Sommet optimisé pour une utilisation manuelle. Le jeton d'identification vidéo sans séparateurs permet de sélectionner avec un double clic.
chaque vidéo YouTube a 4 images générées. Ils sont formatés comme suit:
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
le premier dans la liste est une image pleine grandeur et d'autres sont des images miniatures. La valeur par défaut de vignette (ie. l'un des 1.jpg
, 2.jpg
, 3.jpg
) est:
https://img.youtube.com/vi/YOUTUBEVIDEOID/default.jpg
pour la version de haute qualité de la vignette utiliser une url similaire à celle-ci:
https://img.youtube.com/vi/YOUTUBEVIDEOID/hqdefault.jpg
il y a aussi une version de qualité moyenne de la vignette, en utilisant une url similaire au HQ:
https://img.youtube.com/vi/YOUTUBEVIDEOID/mqdefault.jpg
pour la version définition standard de la vignette, utilisez une url similaire à celle-ci:
https://img.youtube.com/vi/YOUTUBEVIDEOID/sddefault.jpg
pour la version à résolution maximale de la vignette utiliser une url similaire à celle-ci:
https://img.youtube.com/vi/YOUTUBEVIDEOID/maxresdefault.jpg
Toutes les url ci-dessus sont disponibles sur http. En outre, le nom d'hôte légèrement plus court i3.ytimg.com
fonctionne à la place de img.youtube.com
dans les urls de l'exemple ci-dessus.
alternativement, vous pouvez utiliser le API de données YouTube (v3) pour obtenir des images miniatures.
Méthode 1:
vous pouvez trouver la vidéo youtube toutes les informations avec la page json qui a même " thumbnail_url" http://www.youtube.com/oembed?format=json&url = {l'url de votre vidéo va ici}
, comme final url look + php un code de test 151950920"
$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);
sortie
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
pour plus de détails, vous pouvez aussi voir https://www.youtube.com/watch?v=mXde7q59BI8 tutoriel vidéo 1
Méthode 2: l'utilisation de youtube img lien https://img.youtube.com/vi/ "insérez-youtube-video-id-ici"/par défaut.jpg
Méthode 3: utiliser le code source du navigateur pour obtenir la vignette utiliser le lien url de la vidéo - aller au code source de la vidéo et rechercher thumbnailurl Vous pouvez maintenant utiliser cette url dans votre sorce Code: {img src="https://img.youtube.com/vi/"insérer-youtube-video-id-ici"/default.jpg"}
pour plus de détails, vous pouvez aussi voir http://hzonesp.com/php/get-youtube-video-thumbnail-using-id / ou https://www.youtube.com/watch?v=9f6E8MeM6PI tutoriel vidéo 2
voici une fonction simple que j'ai créée pour obtenir les vignettes, elle est facile à comprendre et à utiliser. $link est le lien youtube copié exactement comme il est sur le navigateur , par exemple 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;
}
utilisez ceci - img.youtube.com/vi/YouTubeID/ImageFormat.jpg ici les formats d'image sont différents comme par défaut, hqdefault, maxresdefault.
c'est ma solution sans clé API côté client.
YouTube.parse('https://www.youtube.com/watch?v=P3DGwyl0mJQ').then(_ => console.log(_))
le 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`
Utilitaire 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
})
}
Utilitaire 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
},
{})
}
public const string tubeThumb = "http://i.ytimg.com/vi/[id]/hqdefault.jpg";
vid.Thumbnail = tubeThumb.Replace("[id]", vid.VideoID);
Enregistrer le fichier sous .js
var maxVideos = 5;
$(document).ready(function(){
$.get(
"https://www.googleapis.com/youtube/v3/videos",{
part: 'snippet,contentDetails',
id:'your_video_id',
kind: 'youtube#videoListResponse',
maxResults: maxVideos,
regionCode: 'IN',
key: 'Your_API_KEY'},
function(data){
var output;
$.each(data.items, function(i, item){
console.log(item);
thumb = item.snippet.thumbnails.high.url;
output = '<div id="img"><img src="' + thumb + '"></div>';
$('#thumbnail').append(output);
})
}
);
});
.main{
width:1000px;
margin:auto;
}
#img{
float:left;
display:inline-block;
margin:5px;
}
<!DOCTYPE html>
<html>
<head>
<title>Thumbnails</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<div class="main">
<ul id="thumbnail"> </ul>
</div>
</body>
</html>