Trabajar con los ID de canal

, YouTube Developer Relations – Junio de 2013

Desde hace más de un año que ha sido posible vincular los perfiles de Google+ con los canales de YouTube. Las entradas que hemos escrito sobre el tema describen los cambios que se produjeron en las respuestas Data API v2 a causa de esta opción. Recientemente, también se ha comenzado a ofrecer la posibilidad de crear nuevos canales de YouTube identificados exclusivamente mediante un perfil de Google+, sin que sea necesario asociarlos a un nombre de usuario tradicional de YouTube. Aunque gran parte de la información de esa entrada del blog todavía es válida, este giro adicional deja atrás algunos supuestos fundamentales sobre los canales de YouTube, como que cada uno de ellos siempre está asociado con un nombre de usuario único de YouTube. Para estar al día con estos cambios, compartimos contigo estas prácticas recomendadas adicionales para escribir código que funcione correctamente en todos los tipos de canales.

ID de canal en la Data API v3

En esta versión de la API, todas las operaciones que funcionan con los canales utilizan los ID de canal exclusivamente como un medio de identificación de dichos canales. El ID del canal de YouTube específico de un usuario es idéntico en las versiones v2 y v3 de la API, lo que simplifica la migración entre las versiones. Esta dependencia total de los ID de canal puede resultar desconcertante para los programadores que anteriormente transferían el nombre de usuario de YouTube a los métodos de las API. No obstante, la versión v3 fue diseñada para tratar de igual forma los canales con y sin nombres de usuario preexistentes, y eso significa utilizar los ID de canal en todas partes.

Si utilizas la versión v3 y deseas recuperar el ID del canal que corresponde al usuario autorizado actual, puedes utilizar el método channels.list(part="id", mine=true). Esto es equivalente a solicitar el perfil del canal del usuario default en v2.

Si alguna vez te encuentras con un nombre de usuario de YouTube preexistente y arbitrario, y necesitas transformarlo en un ID de canal mediante la versión v3 de la API, puedes invocar la API con channels.list(part="id", forUsername="username").

Si solo deseas saber el nombre de visualización y deseas buscar el canal correspondiente, el método search.list(part="snippet", type="channel", q="display name") resultará útil. Debes estar preparado para enfrentar la posibilidad de que el resultado muestre más de un elemento en la respuesta, debido a que los nombres de visualización no son exclusivos.

ID de canal en la Data API v2

La principal enseñanza para los programadores que utilizan la antigua versión Data API v2 es que deben estar conscientes de que no todos los canales de YouTube tienen un nombre de usuario exclusivo. Afortunadamente, se garantiza que cada canal de YouTube cuenta con un ID de canal exclusivo asociado, representado por el valor de la etiqueta <yt:channelId> tag, que recomendamos que utilicen los programadores en lugar de los nombres de usuario. Por ejemplo, si tienes una base de datos que asigna los nombres de usuario de YouTube a la información del canal, las entradas antiguas deberían seguir funcionando. (Los canales existentes no pierden sus nombres de usuario). Sin embargo, a medida que pasa el tiempo, cada vez será más probable que debas trabajar con canales que no se identifican exclusivamente con un nombre de usuario.

Hay dos factores que simplifican la transición desde los nombres de usuario a los ID de canal. Primero, la Data API v2 acepta ID de canal en las URL de solicitud donde quiera que acepte los nombres de usuario de YouTube, lo que significa que puedes intercambiar sin problemas un ID de canal en tu código actual. Por ejemplo, como UC_x5XG1OV2P6uZZ5FSM9Ttw es el ID de canal para el canal con el nombre de usuario preexistente GoogleDevelopers, las siguientes dos URL son solicitudes equivalentes de la API:

https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1
https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1

Otra cosa que debes tener presente es que cada vez que hagas solicitudes autenticadas en la versión v2, nunca debes incluir el nombre de usuario del canal autorizado al elaborar la URL de solicitud. Siempre puedes utilizar el valor default en lugar de un nombre de usuario (o ID de canal). Por ejemplo, si deseas recuperar el feed de videos subidos del usuario actualmente autorizado, puedes hacerlo en https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1.