Uzyskiwanie dostępu do elementu poza początkowym indeksem = 1000 w kanale przesyłania użytkowników YouTube

Obecnie próbuję pobrać dane o filmach z kanału przesyłania użytkowników YouTube. Ten kanał zawiera wszystkie filmy przesłane przez określonego użytkownika i jest dostępny z interfejsu API na żądanie:

http://gdata.youtube.com/feeds/api/users/USERNAME/uploads

Gdzie USERNAME to nazwa użytkownika YouTube, który jest właścicielem kanału.

Wystąpiły jednak problemy podczas próby uzyskania dostępu do kanałów dłuższych niż 1000 filmów. Ponieważ każde żądanie do interfejsu API może zwrócić 50 elementów, wykonuję iterację po paszy przy użyciu wartości max_length i start_index w następujący sposób:

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

I tak dalej, zwiększając start_index o 50 przy każdym wywołaniu. Działa to doskonale do:

http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?start-index=1001&max-results=50&orderby=published

W tym momencie otrzymuję błąd 400 informujący mnie, że „Nie możesz zażądać czegoś poza pozycją 1000”. Pomyliło mnie to, ponieważ założyłem, że zapytanie zwróci tylko 50 filmów: 1001-1051 w kolejności ostatnio opublikowanych. Po przejrzeniudokumentacjaOdkryłem to:

Limity liczby wyników i dostępne wyniki

...

Dla każdego zapytania nie będziesz w stanie pobrać więcej niż 1000 wyników, nawet jeśli jest ich więcej. Interfejs API zwróci błąd, jeśli spróbujesz pobrać więcej niż 1000 wyników. Dlatego interfejs API zwróci błąd, jeśli parametr zapytania indeksu początkowego zostanie ustawiony na wartość 1001 lub większą. Zwróci również błąd, jeśli suma parametrów indeksu początkowego i wyników maksymalnych jest większa niż 1,001.

Na przykład, jeśli ustawisz wartość parametru index-start na 1000, musisz ustawić wartość parametru max-results na 1, a jeśli ustawisz wartość parametru start-index na 980, musisz ustawić parametr max-results wartość do 21 lub mniej.

Nie rozumiem, jak w spójny sposób uzyskać dostęp do 1001-krotnego ostatnio przesłanego filmu ogólnego użytkownika, ponieważ nie można ich indeksować przy użyciu tylko wyników maksymalnych i indeksu początkowego. Czy ktoś ma jakieś przydatne sugestie, jak uniknąć tego problemu? Mam nadzieję, że jasno przedstawiłem trudność!

questionAnswers(1)

yourAnswerToTheQuestion