2010-01-16 3 views
11

Me pregunto si hay una forma de consultar YouTube para múltiples videos aleatorios (los identificadores de video son conocidos) en una sola consulta. Estoy almacenando identificadores de video en el archivo db local y necesito mostrar detalles de (lista con los pulgares, clasificación, nombre del autor, etc.) en la página web.API de datos de Youtube: recuperar múltiples entradas de video por ID en una sola solicitud

Estoy buscando en la API de datos de YouTube y ver que puede un solo datos de entidad como esta:

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

La repetición de este en el circuito parece ser una mala idea, debido a las cuotas.

También hay "procesamiento por lotes" disponible - http://code.google.com/apis/youtube/2.0/developers_guide_dotnet.html#Batch_processing. Parece que puedo emitir hasta 50 solicitudes aleatorias, pero espera que haya un poco de que no tenga como parámetro al ejecutar el lote. Hay una sobrecarga con un poco de Uri, pero no se documenta bien - google-gdata.googlecode.com/svn/docs/folder59/M_Google_GData_Client_FeedRequest_1_Batch__1_2.htm

¿Alguien tiene alguna idea sobre cómo recuperar múltiples entradas de vídeo por id's? Cualquier ayuda sería apreciada.

+0

¿Alguna vez encontró una respuesta a esto? Necesito hacer algo similar, pero para agregar videos a una lista de reproducción. Cualquier información que tenga sería apreciada :) – mdm

Respuesta

1

Puede enviar varias solicitudes a la API de datos de youtube envuelto en una sola solicitud. YouTube te permite enviar como máximo 50 solicitudes múltiples en una sola solicitud. Este tipo de solicitud se conoce como solicitud de procesamiento por lotes. He desarrollado una pieza de código de trabajo específicamente para este problema. Tenía que hacer el mismo tipo de cosas para un sitio web en el que estaba trabajando. De todos modos, puede ver cómo hacerlo desde aquí (código de muestra también está presente para descargar): http://www.ovaistariq.net/2010/06/youtube-batch-processing-requests-made-less-costly/

8

Yo también tenía exactamente el mismo problema, necesitaba una lista de objetos de video relacionados con una lista arbitraria de identificadores de video, es decir no se ajusta a ninguna de las fuentes.

La opción de proceso por lotes es muy tentadora, pero la implementación parece bastante pesada para lo que debería ser una funcionalidad bastante simple.

Al final del día, haciendo una búsqueda de video básica para los identificadores separados por la tubería "|" logra el resultado deseado:

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

Esperanza esto ayuda

+1

+1 para una solución simple. parece que hay un máximo de 10 en una consulta. – johnhunter

+2

Lamentablemente, esta solución no funciona cuando la identificación comienza con un guión/guión "-". Me encontré con este problema y Google me lo confirmó: http://groups.google.com/group/youtube-api-gdata/browse_thread/thread/bc513fd965bcb5ec?pli=1 – Damien

+1

Para solucionar el problema con los ID que comienzan con un guión, ¡descubrí que puedes eliminarlo! El resto de la ID coincidirá. (Esto es un truco, no recomendado, y probablemente propenso a error ...) –

6

En Youtube Data API versión 3.0 Puede hacerlo de una manera sencilla como esta.

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

Simplemente agregue sus identificadores de video separados por comas. Te buscará los datos de todos los videos en JSON

No sé cuál es el límite en esto, actualizaré la respuesta una vez que la encuentre.

+0

Hola, gracias por tu gran ayuda. Aparentemente descubrí que el límite de videos que se pueden consultar es 50. –

Cuestiones relacionadas