Zugriff auf ein Element jenseits von start_index = 1000 in einem YouTube-Nutzer-Upload-Feed
Ich versuche derzeit, Daten zu Videos aus einem YouTube-Nutzer-Upload-Feed abzurufen. Dieser Feed enthält alle von einem bestimmten Nutzer hochgeladenen Videos und wird über die API aufgerufen, indem Folgendes angefordert wird:
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads
Wobei USERNAME der Name des YouTube-Nutzers ist, dem der Feed gehört.
Beim Versuch, auf Feeds zuzugreifen, die länger als 1000 Videos sind, sind jedoch Probleme aufgetreten. Da jede Anforderung an die API 50 Elemente zurückgeben kann, durchlaufe ich den Feed mit max_length und start_index wie folgt:
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?start-index=1&max-results=50&orderby=published
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?start-index=51&max-results=50&orderby=published
Und so weiter, indem Sie start_index bei jedem Aufruf um 50 erhöhen. Dies funktioniert perfekt bis:
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?start-index=1001&max-results=50&orderby=published
Ab diesem Zeitpunkt erhalte ich die Fehlermeldung 400 mit der Meldung "Sie können nicht mehr als Artikel 1000 anfordern." Dies verwirrte mich, da ich davon ausging, dass die Abfrage nur 50 Videos zurückgegeben hätte: 1001-1051 in der zuletzt veröffentlichten Reihenfolge. DurchgesehenDokumentation, Ich habe folgendes entdeckt:
Begrenzung der Anzahl der Ergebnisse und der verfügbaren Ergebnisse
...
Bei einer bestimmten Abfrage können Sie nicht mehr als 1.000 Ergebnisse abrufen, selbst wenn mehr vorhanden sind. Die API gibt einen Fehler zurück, wenn Sie versuchen, mehr als 1.000 Ergebnisse abzurufen. Daher gibt die API einen Fehler zurück, wenn Sie den Startindex-Abfrageparameter auf einen Wert von 1001 oder höher festlegen. Es wird auch ein Fehler zurückgegeben, wenn die Summe der Parameter start-index und max-results größer als 1.001 ist.
Wenn Sie beispielsweise den Wert des Startindexparameters auf 1000 setzen, müssen Sie den Wert des Parameters max-results auf 1 setzen, und wenn Sie den Wert des Startindexparameters auf 980 setzen, müssen Sie den Parameter max-results setzen Wert bis 21 oder weniger.
Ich bin ratlos darüber, wie ich auf das 1001. zuletzt hochgeladene Video eines generischen Benutzers und darüber hinaus konsistent zugreifen kann, da sie nicht nur mit max-results und start-index indiziert werden können. Hat jemand nützliche Vorschläge zur Vermeidung dieses Problems? Ich hoffe, dass ich die Schwierigkeit klar umrissen habe!