2010-01-16 3 views
11

Je me demande s'il existe un moyen d'interroger YouTube pour plusieurs vidéos aléatoires (les identifiants vidéo sont connus) dans une seule requête? Je stocke des identifiants vidéo dans la base de données locale et j'ai besoin d'afficher plusieurs détails (liste avec les pouces, note, nom de l'auteur, etc.) Dans la page Web.Youtube Data API: Récupération de plusieurs entrées vidéo par ID dans une seule requête

Je suis à la recherche à l'API de données Youtube et voir que je peux une seule données d'entité comme celle-ci:

Uri videoEntryUrl = new Uri("http://gdata.youtube.com/feeds/api/videos/video_id"); 
Video video = request.Retrieve<Video>(videoEntryUrl); 

En répétant ce dans la boucle semble être une mauvaise idée, à cause des quotas. Il existe également un "traitement par lots" - http://code.google.com/apis/youtube/2.0/developers_guide_dotnet.html#Batch_processing. On dirait que je peux émettre jusqu'à 50 demandes aléatoires, mais il attend un certain flux que je n'ai pas comme paramètre, lors de l'exécution par lots. Il y a une surcharge avec un certain Uri, mais il est pas bien documenté - google-gdata.googlecode.com/svn/docs/folder59/M_Google_GData_Client_FeedRequest_1_Batch__1_2.htm

Est-ce que quelqu'un a des idées sur la façon de récupérer plusieurs entrées vidéo par id? Toute aide serait appréciée.

+0

Avez-vous déjà trouvé une réponse? J'ai besoin de faire quelque chose de similaire mais d'ajouter des vidéos à une playlist. Toute information que vous avez serait appréciée :) – mdm

Répondre

1

Vous pouvez envoyer plusieurs demandes à des données yi incluses dans une seule requête. YouTube vous permet d'envoyer au plus 50 demandes multiples dans une même requête. Ce type de demande est appelé demande de traitement par lots. J'ai développé un morceau de code de travail spécifiquement pour ce problème. Je devais faire la même chose pour un site web sur lequel je travaillais. De toute façon, vous pouvez voir comment le faire à partir d'ici (exemple de code est également présent pour le téléchargement): http://www.ovaistariq.net/2010/06/youtube-batch-processing-requests-made-less-costly/

8

J'ai aussi eu exactement le même problème, j'avais besoin d'une liste d'objets vidéo liés à une liste arbitraire d'id vidéo, à savoir ne se conformant à aucun des flux.

L'option de traitement par lots est très tentant, mais la mise en œuvre semble assez lourd pour ce qui devrait être assez simple fonctionnalité. À la fin de la journée, faire une recherche vidéo de base pour les identifiants séparés par le tube "|" d'obtenir le résultat nécessaire:

http://gdata.youtube.com/feeds/api/videos?q=h5jKcDH9s64|elzqvWXG1Y

Hope this helps

+1

+1 pour une solution simple. On dirait qu'il y a un maximum de 10 dans une requête. – johnhunter

+2

Malheureusement, cette solution ne fonctionne pas lorsque l'ID commence par un tiret/tiret "-". J'ai rencontré ce problème et Google m'a confirmé: http://groups.google.com/group/youtube-api-gdata/browse_thread/thread/bc513fd965bcb5ec?pli=1 – Damien

+1

Pour contourner le problème avec les ID qui commencent par un trait d'union, j'ai découvert que vous pouvez simplement l'enlever! Le reste de l'ID correspondra. (Ceci est un hack, non recommandé, et probablement sujette à l'erreur ...) –

4

réponse de RobD fonctionne bien. Vous pouvez ajouter quelque chose comme ceci à la fin de l'URL pour récupérer uniquement les données que vous avez réellement besoin, économiser de la bande passante:

& champs = entrée (id, titre)

par exemple:

http://gdata.youtube.com/feeds/api/videos?q=h5jKcDH9s64|elzqvWXG1Y&fields=entry(id,title)

+0

Est-il possible de restreindre les données pour obtenir seulement viewCount et note? J'ai essayé d'utiliser l'entrée (gd $ rating), mais cela ne fonctionne pas. –

6

Dans YouTube Data API version 3.0 Vous pouvez le faire d'une manière simple comme ceci.

https://www.googleapis.com/youtube/v3/videos?key=API_KEY&part=snippet&id=video_id1,video_id2 

Ajoutez simplement vos identifiants vidéo séparés par une virgule. Je vais vous chercher les données pour toutes les vidéos en JSON

Je ne sais pas quelle est la limite sur ce point, mettra à jour la réponse une fois que je l'ai trouvé.

+0

Salut, merci pour votre aide. Apparemment, j'ai découvert que la limite des vidéos qui peuvent être interrogées est de 50. –

Questions connexes