Cómo trabajar con los ID del canal

Jeff Posnick, Relaciones con desarrolladores de YouTube, junio de 2013

Desde hace más de un año que hemos podido vincular los perfiles de Google+ con los canales de YouTube, y hemos blogado sobre el modo en que algunas de las respuestas de la API de datos v2 han cambiado como resultado de dicho vínculo. Recientemente, también se pueden crear nuevos canales de YouTube que no tienen un nombre de usuario tradicional de YouTube asociado y, en su lugar, se identifican por completo con su perfil de Google+. Gran parte de la información de esa entrada de blog aún se aplica, pero esta arruga adicional invalida algunas suposiciones fundamentales sobre los canales de YouTube (como que cada una siempre estará asociada con un nombre de usuario único de YouTube). Queríamos hacer un seguimiento de algunas prácticas recomendadas adicionales para escribir código que funcione con todos los tipos de canales.

ID de canal en la API de datos v3

Todas las operaciones de la v3 que funcionan con los canales usan los IDs de canal exclusivamente para identificar esos canales. El ID del canal de YouTube específico de un usuario es idéntico en las versiones 2 y 3 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 desarrolladores que anteriormente solían pasar nombres de usuario de YouTube a métodos de API, pero la v3 se diseñó para tratar los canales con y sin nombres de usuario heredados de forma idéntica, lo que significa que se usarán ID de canal en todas partes.

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

Si en algún momento tienes que ingresar un nombre de usuario de YouTube heredado arbitrario que necesitas traducir a un ID de canal usando la v3 de la API, puedes realizar una llamada channels.list(part="id", forUsername="username") a la API.

Si solo conoces un nombre visible y quieres encontrar el canal correspondiente, el método search.list(part="snippet", type="channel", q="display name") te 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 API de datos v2

Nota: La API de datos de YouTube (versión 2) se dio de baja el 26 de febrero de 2014 y se dio de baja. Las aplicaciones que aún utilizan la API v2 se deben migrar inmediatamente a la API v3.

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 tenga un ID de canal único asociado, representado por el valor de la etiqueta <yt:channelId>, que recomendamos que utilicen los desarrolladores 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. En primer lugar, la API de datos v2 acepta ID de canal en las URL de solicitud donde acepta nombres de usuario de YouTube, lo que significa que puedes intercambiar sin problemas un ID de canal en tu código existente. Por ejemplo, dado que UC_x5XG1OV2P6uZZ5FSM9Ttw es el ID del canal con el nombre de usuario heredado GoogleDevelopers, las siguientes dos URL son solicitudes equivalentes a 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

Otro aspecto que debes tener en cuenta es que, cuando realices solicitudes autenticadas v2, nunca debes incluir el nombre de usuario del canal autorizado cuando construyas las URL de solicitud. Siempre puedes usar el valor default en lugar de un nombre de usuario (o ID de canal). Por lo tanto, si deseas recuperar el feed de cargas de videos para el usuario autorizado actual, por ejemplo, puedes hacerlo en https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1.