La iteración más reciente del API de YouTube se basa en el protocolo de datos de Google. La finalidad de este documento es ayudar a los desarrolladores a migrar su sitio web o aplicación a la nueva API de YouTube.
YouTube se ha convertido en el destino más popular de Internet de vídeos online. Gracias al lanzamiento del API REST/XML-RPC original en 2005, miles de desarrolladores contribuyeron a la difusión de vídeos de YouTube, subidos por usuarios de todas partes del mundo, a muchos más equipos. Ahora que el sitio ha madurado, nuestra intención es proporcionar un API completa y compleja a los desarrolladores. Hemos decidido redactar de nuevo el API y estandarizar el protocolo de datos de Google existente. Este movimiento se ha dado por diversos motivos, entre los que se incluyen una mejor escalabilidad y más recursos para los desarrolladores. Este documento te ayudará a obtener información general sobre las novedades y lo que es necesario para migrar tu sitio web o aplicación. La guía de referencia y las guías para desarrolladores de lenguaje específico también son unos recursos excelentes.
Todos aquellos que utilicen el API heredada deberán realizar la actualización al API basada en datos de Google. Las nuevas funciones dejarán de estar integradas en el API heredada, y sólo se prestará atención a aquellos errores fundamentales.
El API heredada continuará en funcionamiento hasta el 30 de agosto de 2008. Después de esa fecha, su existencia no queda garantizada. Te animamos a que hagas el cambio antes de esa fecha y no después, ya que los problemas derivados del API heredada serán de prioridad baja.
En las tablas que aparecen a continuación se muestran las diferencias que existen en las operaciones habituales, de una forma general. Consulta la guía de referencia para obtener más información.
| Operación | API heredada | API de datos de YouTube | Notas/comentarios |
|---|---|---|---|
| Buscar en el índice de YouTube | videos.list_by_tag&tag="SEARCH TERMS" |
/feeds/api/videos?vq="SEARCH TERMS" |
|
| Buscar en una categoría concreta | videos.list_by_category_and_tag&tag="SEARCH TERMS"&category_id=CATEGORY_ID |
/feeds/api/videos/-/CATEGORY_NAME |
|
| Obtención de los metadatos de un vídeo | videos.get_details&video_id=VIDEO_ID |
/feeds/api/videos/VIDEO_ID |
|
| Obtención de las respuestas en vídeo de un vídeo | N/A | /feeds/api/videos/VIDEO_ID/responses |
|
| Obtención de los comentarios de un vídeo | videos.get_details&video_id=VIDEO_ID |
/feeds/api/VIDEO_ID/comments |
El API de datos de YouTube actualmente no requiere una ID de desarrollador, que sí es necesaria para todas las llamadas del API heredada. A continuación se muestran las funciones adicionales del formato de los parámetros y los filtros.
La paginación está disponible tanto en la nueva API como en el API heredada. Los nuevos parámetros de paginación se detallan a continuación.
start-index: indica qué entrada debe comenzar a mostrar los resultados; no se corresponde con el parámetro page del API heredada, que indica qué página de resultados se debe mostrar.max-results: indica el número máximo de entradas que se mostrarán; esto se corresponde al parámetro per_page del API heredada.Por ejemplo, si vas a procesar 1.000 resultados, 50 cada vez, el start-index de inicio será igual a 1, y el max-results será igual a 50. La siguiente iteración, el start-index será igual a start-index + max-results, 51. En el API heredada, el parámetro page empezará en 1, y per_page será igual a 50. A continuación, el parámetro page aumentará en 2, y así sucesivamente, para el resto de iteraciones.
El API de datos de YouTube añade compatibilidad con los siguientes parámetros de consulta:
vq: consulta de búsqueda de texto completo (busca contenido como, por ejemplo, título de vídeo, descripción, etiquetas, etc.).format: limita la búsqueda a los vídeos disponibles en formatos específicos (por ejemplo, format=0 es Flash, formato en el que están disponibles todos los vídeos); consulta la guía de referencia para obtener información sobre los formatos disponibles.alt: controla el formato de salida (RSS, Atom, JSON), tal como se describe en http://code.google.com/intl/es/apis/gdata/reference.html#Queries.author: limita la búsqueda a vídeos subidos por un usuario de YouTube específico, tal como se describe en http://code.google.com/intl/es/apis/gdata/reference.html#Queries.orderby: orden en el que se devolverán los elementos, puede ser relevance (predeterminado), published, viewCount, rating.racy: añade racy=include para incluir contenido de acceso restringido marcado por la comunidad; el valor predeterminado es exclude.Una búsqueda de vídeos relacionados con la palabra "monkey", con paginación, tendría el siguiente aspecto en el API heredada y el API de datos de YouTube, respectivamente.
http://www.youtube.com/api2_rest?method=youtube.videos.list_by_tag&dev_id=DEV_ID&tag=monkey&page=1&per_page=50
http://gdata.youtube.com/feeds/api/videos?vq=monkey&start-index=1&max-results=50
Una solicitud de función común sería ordenar un feed de vídeos por los vídeos más recientes. Para hacer esto con el API de datos de YouTube, añade orderby=published como parámetro.
http://gdata.youtube.com/feeds/api/videos?vq=monkey&orderby=published&start-index=1&max-results=50
| Operación | API heredada | API de datos de YouTube | Notas/comentarios |
|---|---|---|---|
| Obtención del perfil de un usuario | users.get_profile&user=USERNAME |
/feeds/api/users/USERNAME |
|
| Obtención de los vídeos de un usuario | videos.list_by_user&user=USERNAME |
/feeds/api/users/USERNAME/uploads |
|
| Obtención de los favoritos de un usuario | users.list_favorite_videos&user=USERNAME |
/feeds/api/users/USERNAME/favorites |
|
| Obtención de las listas de reproducción de un usuario | N/A | /feeds/api/users/USERNAME/playlists |
|
| Obtención de las suscripciones de un usuario | N/A | /feeds/api/users/USERNAME/subscriptions |
Para mostrar una lista con los vídeos de un usuario concreto a través del API heredada y la nueva API habría que escribir lo siguiente:
http://www.youtube.com/api2_rest?method=youtube.videos.list_by_user&dev_id=DEV_ID&user=USERNAME
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads
Muchos de los filtros que se aplican a los nuevos feeds de vídeos se pueden aplicar a los feeds de usuarios. Por ejemplo, puedes realizar una búsqueda de texto en los vídeos subidos de un usuario.
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?vq="dogs on bicycles"
Consulta la guía de referencia para obtener más información sobre qué parámetros de consulta se aplican a cada uno de los feeds.
| Operación | API heredada | API de datos de YouTube | Notas/comentarios |
|---|---|---|---|
| Obtención de los vídeos de una lista de reproducción | videos.list_by_playlist&id=PLAYLIST_ID |
/feeds/api/playlists/PLAYLIST_ID |
|
| Obtención de las listas de reproducción de un usuario | N/A |
/feeds/api/users/USERNAME/playlists |
Para mostrar una lista con los vídeos de una lista de reproducción concreta a través del API heredada habría que escribir lo siguiente:
http://youtube.com/dev_api_ref?m=youtube.videos.list_by_playlist&dev_id=DEV_ID&id=PLAYLIST_ID
Con el API de datos de YouTube, la llamada sería algo así:
http://gdata.youtube.com/feeds/api/playlists/PLAYLIST_ID
Consulta la guía de referencia para obtener más información sobre qué parámetros de consulta se aplican a cada uno de los feeds.
Estamos comprometidos para continuar con el desarrollo de la nueva API basada en datos de Google, incluidas nuevas funciones como subidas y otras llamadas de escritura. Si quieres solicitar una función o informar de algún error, puedes registrar tu petición en el servicio de registro y seguimiento de problemas de datos de Google. También estamos añadiendo la compatibilidad del API de YouTube a las bibliotecas de cliente de datos de Google. Java ya es compatible, y PHP y Python lo serán pronto. Si tienes alguna pregunta más, publícala en el foro de debate. ¡Suerte con la programación!