2016-05-23 3 views
0

Ich habe die YouTube-API-Dokumentation durchgesehen, aber soweit ich feststellen kann, gibt es keine Möglichkeit, Informationen (z. B. eine Liste kürzlich hochgeladener Videos) von mehreren YouTube-Kanälen effizient anzufordern.Wie können Sie aktuelle Videos von mehreren YouTube-Kanälen in einem API-Aufruf anfordern?

Von meinem Verständnis die erste Sache, die man tun muss, ist die Wiedergabelisten-ID für die "Uploads" Playlist pro YouTube-Kanal.

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=OneDirectionVEVO&key={YOUR_API_KEY} 

Und dann erhalten Sie die hochgeladenen Videos mit der zuvor abgerufenen Playlist-ID.

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UUbW18JZRgko_mOGm5er8Yzg&key={YOUR_API_KEY} 

Das sind zwei Anfragen pro Kanal, was in Ordnung wäre, wenn es nur ein oder zwei Kanäle wären, aber nicht für Hunderte von Kanälen.

Wie kann ich alle diese Anfragen effizient zu einem API-Aufruf zusammenfassen?

Antwort

1

Sie können mehrere YouTube-Kanäle in einem API-Aufruf anfordern, indem Sie Batch ProcessingYouTube Data API Batch-Verarbeitung unterstützt, enablign Sie mit einem single API request-50 Operationen auszuführen, anstatt eine separate Anfrage für jede einzelne Tätigkeit. Eine Stapelverarbeitungsanforderung kann mehrere Abfragen (GET) kombinieren, (POST) einfügen, (PUT) aktualisieren und (DELETE) löschen. Jede Operation ist in einem Tag in der Anfrage enthalten.

Um eine Batch-Verarbeitungsanforderung zu senden, senden Sie eine POST Anfrage an eine Batch-URL. Jeder Feed hat seine eigene Batch-URL, und wenn Sie eine Anfrage an diese Adresse senden, können Sie API-Vorgänge für jeden Eintrag in diesem Feed ausführen. Die Stapel-URL für einen Feed wird in einem <link>-Tag mit einem rel-Attributwert von http://schemas.google.com/g/2005#batch angezeigt. Das Tag ist ein Untertag des Tags für diesen Feed.

<feed xmlns='http://www.w3.org/2005/Atom' ...> 
<id>https://gdata.youtube.com/feeds/users/USER_ID/playlists</id> 
... 
<link rel='http://schemas.google.com/g/2005#batch' 
type='application/atom+xml' 
href='https://gdata.youtube.com/feeds/api/users/USER_ID/playlists/batch?v=2'/>