2010-08-26 3 views
5

Une idée?
J'ai vérifié l'API Youtube qui ne supporte pas cette fonctionnalité.
Est-ce possible?
Comment obtenir l'image de la chaîne Youtube via le nom d'utilisateur?

J'ai besoin d'obtenir l'image miniature directement via le nom d'utilisateur.
par exemple:

J'ai reçu un nom d'utilisateur nommé: communitychannel
et je veux obtenir l'image des vignettes ci-dessous:
http://i2.ytimg.com/vi/YVrqydZz3e4/default.jpg


Merci de votre réponse !!
Je sais que je peux récupérer des données de vignettes en faisant cela. Mais le cas est, je vais obtenir une liste des éléments d'abonnement membre Youtube d'abord par l'adresse suivante:

http://gdata.youtube.com/feeds/api/users/[USER_NAME]/subscriptions

D'après le document officiel Youtube, il indique que les données de réponse comprennent étiquette. Mais je ne le vois jamais ...

Si la liste est de 100, je dois envoyer au total 101 demandes pour obtenir les données de miniatures pour chaque article. Mais il va consommer trop de bande passante réseau pour le faire.

Alors, y a-t-il un autre moyen d'accomplir cette exigence? Merci!! ;-)

Répondre

5

Vous pouvez obtenir les utilisateurs image en utilisant une URL comme ceci:

Vous pouvez obtenir juste le nom d'utilisateur et l'image en miniature annexant une chaîne de requête comme décrit dans le partial responses api: ?champs = yt: nom d'utilisateur, médias: thumbnail

  • Vous pouvez obtenir la réponse au format JSON utiliser facilement en javascript par annexant: & alt = JSON-in script & format = 5

  • Vous pouvez également spécifier un rappel à exécuter lorsque la réponse a été chargé par annexant: & rappel = showImage

Votre URL ressemble maintenant à ceci:

http://gdata.youtube.com/feeds/api/users/communitychannel?fields=yt:username,media:thumbnail&alt=json-in-script&format=5&callback=showImage

Pour utiliser dans une page mettre dans une balise de script comme ceci:

<script type='text/javascript' src="your_url"/> 

et le rappel devrait ressembler à ceci:

function showImage(data) 
{ 
    var name= data.entry.yt$username.$t; 
    var url = data.entry.media$thumbnail.url; 
    $(document).append("<img src='"+ url +"'/>"); 
} 

Vous devez vous assurer que la fonction de rappel showImage est définie avant de charger les données.

J'ai créé un échantillon de chargement d'une alimentation et les images de l'utilisateur here (Assurez-vous que vous changez communitychannel à votre propre nom d'utilisateur ou il ne fonctionnera pas)

Je ne vois pas un meilleur façon de réduire votre bande passante que d'utiliser les réponses partielles api;

+0

Un moyen d'obtenir une version plus grande de l'image? –

Questions connexes