2010-01-16 17 views
11

Mi chiedo se esiste un modo per interrogare YouTube per più video casuali (gli ID dei video sono noti) in una singola query? Sto memorizzando gli ID video nel db locale e devo mostrare più dettagli (elenco con pollici, voto, nome dell'autore, ecc.) Nella pagina web.API di dati di YouTube: recupero di più voci video per ID in una singola richiesta

sto guardando la YouTube Data API e vedere che posso un singolo dati dell'entità come questo:

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

Ripetendo questo nel circuito sembra essere una cattiva idea, a causa delle quote.

È disponibile anche "elaborazione batch" - http://code.google.com/apis/youtube/2.0/developers_guide_dotnet.html#Batch_processing. Sembra che io possa generare fino a 50 richieste casuali, ma si aspetta un po 'di feed che non ho come parametro, quando eseguo il batch. C'è un sovraccarico con qualche Uri, ma non è documentato bene - google-gdata.googlecode.com/svn/docs/folder59/M_Google_GData_Client_FeedRequest_1_Batch__1_2.htm

Qualcuno ha qualche idea su come recuperare più voci di video di id's? Qualsiasi aiuto sarebbe apprezzato.

+0

Hai mai trovato una risposta a questo? Devo fare qualcosa di simile ma aggiungere video a una playlist. Qualsiasi informazione che hai sarebbe apprezzata :) – mdm

risposta

1

È possibile inviare più richieste su YouTube api dati avvolto in una singola richiesta. YouTube ti consente di inviare al massimo 50 richieste multiple in una singola richiesta. Questo tipo di richiesta è noto come richiesta di elaborazione batch. Ho sviluppato un pezzo di codice funzionante appositamente per questo problema. Ho dovuto fare lo stesso genere di cose per un sito web su cui stavo lavorando. Comunque puoi vedere come farlo da qui (il codice di esempio è anche presente per il download): http://www.ovaistariq.net/2010/06/youtube-batch-processing-requests-made-less-costly/

8

Anch'io ho avuto esattamente lo stesso problema, avevo bisogno di un elenco di oggetti video relativi a un elenco arbitrario di ID video, vale a dire non conforme a nessuno dei feed.

L'opzione di elaborazione batch è molto allettante, ma l'implementazione sembra abbastanza pesante per quella che dovrebbe essere una funzionalità piuttosto semplice.

Alla fine della giornata, eseguire una ricerca video di base per gli ID separati da pipe "|" ottiene il risultato richiesto:

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

Spero che questo aiuti

+1

+1 per la soluzione semplice. sembra che ci sia un massimo di 10 in una query. – johnhunter

+2

Sfortunatamente questa soluzione non funziona quando l'ID inizia con un trattino/trattino "-". Ho riscontrato questo problema e Google mi ha confermato: http://groups.google.com/group/youtube-api-gdata/browse_thread/thread/bc513fd965bcb5ec?pli=1 – Damien

+1

Per risolvere il problema con gli ID che iniziano con un trattino, ho scoperto che puoi semplicemente rimuoverlo! Il resto dell'ID corrisponderà. (Questo è un trucco, non consigliato e probabilmente soggetto a errori ...) –

6

In Youtube Data API versione 3.0 Puoi farlo in un modo semplice come questo.

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

Basta aggiungere i tuoi ID video separati da virgola. Ti scaricherà i dati per tutti i video in JSON

Non so quale sia il limite, aggiornerò la risposta una volta trovata.

+0

Ehi, grazie per il tuo grande aiuto. Apparentemente ho scoperto che il limite dei video che è possibile interrogare è 50. –

Problemi correlati