web-dev-qa-db-fra.com

Forcer les miniatures de haute qualité pour YouTube

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.

21
SparrwHawk

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.

22
Johan Dettmar

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]);
                                    }
                                }
                            }
                        }
                    });
4
Evalds Urtans

Exemple:

http://img.youtube.com/vi/xjFouf6j81g/hqdefault.jpg

où xjFouf6j81g, videoid

4
Dmitriy Yusupov

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.

0
Martti Laine

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.

0
Anentropic