Existe-t-il un moyen de forcer un THUMBNAIL de haute qualité pour YouTube?
Mes vidéos sont de très haute qualité et une fois qu'elles commencent à diffuser, elles fonctionnent bien en 720p, mais la miniature de la vidéo est de qualité variable - parfois elle est élevée, parfois elle est vraiment floue.
Existe-t-il un moyen de forcer une miniature de haute qualité? J'ai trouvé cela dans les documents de l'API - http://code.google.com/apis/youtube/2.0/reference.html#youtube%5Fdata%5Fapi%5Ftag%5Fmedia:thumbnail mais il ne détaille pas comment utiliser la balise multimédia.
Il existe également une version "maxres", qui est une image "full hd" au cas où la résolution vidéo serait suffisamment élevée.
http://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg
Cependant, si la résolution vidéo n'est pas suffisamment élevée, cette image ne semble pas avoir été créée. Donc, vous voudrez peut-être avoir une fonction qui affiche une version de qualité inférieure au cas où la version "maxres" n'existe pas.
Consultez Comment puis-je obtenir une miniature de vidéo YouTube à partir de l'API YouTube? pour plus d'informations.
Merci, Johan pour la réponse.
http://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg
Si vous souhaitez également définir la lecture sur HQ, utilisez l'API Javascript https://developers.google.com/youtube/js_api_reference?hl=fi-FI#Playback_quality
var qualityLevels = self.players[iframeID].getAvailableQualityLevels();
/* Set highest quality */
self.players[iframeID].setPlaybackQuality(qualityLevels[0]);
Pour que cela fonctionne, nous devons d'abord appeler:
self.players[iframeID].playVideo();
Ensuite, il se déclenchera
self.players[iframeID] = new YT.Player(iframeID, {
events: {
'onReady': function(event) {
var iframe = $(event.target.getIframe());
self.players[iframe.attr('id')].loaded = true;
},
'onStateChange': function(event) {
var iframe = $(event.target.getIframe());
var iframeID = iframe.attr('id');
if(event.data == 1) /* playing */
{
var qualityLevels = self.players[iframeID].getAvailableQualityLevels();
if(self.players[iframeID].getPlaybackQuality() != qualityLevels[0])
{
/* Set highest quality */
self.players[iframeID].setPlaybackQuality(qualityLevels[0]);
}
}
}
}
});
Exemple:
http://img.youtube.com/vi/xjFouf6j81g/hqdefault.jpg
où xjFouf6j81g, videoid
Pour autant que je sache, YouTube ne propose que 4 miniatures:
http://i.ytimg.com/vi/VIDEO_ID/default.jpg
http://i.ytimg.com/vi/VIDEO_ID/1.jpg
http://i.ytimg.com/vi/VIDEO_ID/2.jpg
http://i.ytimg.com/vi/VIDEO_ID/3.jpg
Les miniatures sont générées une fois après le téléchargement, vous ne pouvez donc pas en modifier la taille.
Modifier:
L'API YouTube JS vous permet de forcer la qualité de la vidéo, mais je ne sais pas si cela affectera l'aperçu de la vidéo. Voir la documentation pour plus d'informations.
Le problème a été signalé ici:
https://code.google.com/p/gdata-issues/issues/detail?can=2&start=0&num=100&q=&colspec=API%20ID%20Type%20Status%20Priority%20Stars % 20Résumé & groupby = & sort = & id = 459
Pas un correctif ou une solution de contournement, mais si vous souhaitez éviter d'obtenir la miniature basse résolution, votre lecteur doit être plus grand que 430px
large.
Donc, une taille minimale suggérée pour un aspect 16: 9 parfait serait 432 x 243 pixels
et cela devrait obtenir une miniature agréable.