servicio que googleapis apiyoutube youtube-api

youtube api - que - Respuesta vacía cuando startindex>=100



youtube api key (1)

He descubierto cómo recuperar todos los comentarios usando los enlaces de navegación integrados en la respuesta json.

Supongamos que recupera el primero usando un enlace como (python aquí, pero entiende el punto):

r '' https://gdata.youtube.com/feeds/api/videos/ '' + aVideoID + r ''/ comments? alt = json & start-index = 1 & max-results = 50 & prettyprint = true & orderby = published''

Incrustado en json debajo de "feed" (y antes de los comentarios) habrá una matriz de cuatro elementos llamada "enlace". El cuarto elemento se llamará "rel": "next" y debajo de "href" habrá un enlace que puede usar para obtener los próximos 50 comentarios. El enlace se verá algo así como:

https://gdata.youtube.com/feeds/api/videos/fH0cEP0mvlU/comments?alt=json&orderby=published&alt=json&start-token=EgkI2NqyoZDRvgIosK%2FPosPRvgIw653cmsXRvgI4AUAC&max-results=50&orderby=published

para una URL original de:

https://gdata.youtube.com/feeds/api/videos/fH0cEP0mvlU/comments?alt=json&start-index=1&max-results=50&prettyprint=true&orderby=published

Si sigue el siguiente enlace, obtendrá un json similar al enlace original, con otros 50 comentarios. Continúe este proceso una y otra vez hasta que reciba todos los comentarios (en mi código verifico tanto la ausencia de este ítem en el json o cero comentarios en el json para determinar cuándo detenerlo).

Necesita el "& orderby = published" en la URL original porque, de lo contrario, los "próximos" enlaces llegarán a ser demasiado grandes y provocarán un error (algo en el token que la API usa para rastrear qué comentarios ha visto en el orden predeterminado toma por mucho espacio). Algo sobre el pedido publicado mantiene el "token de inicio" pequeño, mientras que después de aproximadamente 500 comentarios con el orden predeterminado, comenzará a recibir 414 URI de solicitud de errores demasiado largos.

Espero que esto ayude.

Después de mucha depuración, finalmente se me ocurrió que, aparentemente, Youtube solo emitía los primeros 100 comentarios cuando usaba v2 YouTube-API para obtener comentarios. Finalmente probé a usar:

curl -Lk -X GET "http://gdata.youtube.com/feeds/api/videos/MShbP3OpASA/comments?alt=json&start-index=100&max-results=50"

Y todo lo que obtengo es una respuesta sin un parámetro de entry . Es decir, no recibo una respuesta de error o algo así, obtengo una respuesta perfectamente buena, pero sin el parámetro de entry .

Profundizando un poco más, en mi respuesta, el valor de openSearch$totalResults es 100, por lo que, de acuerdo con este recurso, este parece ser el resultado esperado (¿aunque se trata de algún tipo de mensaje de error que no entiendo?).

Pero aquí viene el golpeador: cuando uso

curl -Lk -X GET "http://gdata.youtube.com/feeds/api/videos/MShbP3OpASA/comments?alt=json&start-index=1&max-results=50&orderby=published"

openSearch$totalResults es igual a 3141, el conteo real de los comentarios.

Ahora esta es mi pregunta: dado que la API v2 oficialmente ha quedado en desuso hace una semana, ¿es posible que Google simplemente establezca un límite en los comentarios? ¿Entonces solo los primeros 100 comentarios son accesibles? Dado que la API v3 no permite la recuperación de comentarios, eso sería bastante malo para mí.

¿Alguien tiene alguna idea?