Actualizaremos la API de datos para que coincida con la forma en que YouTube cuenta las vistas de Shorts.
Más información
Cómo trabajar con los ID del canal
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Jeff Posnick, Relaciones con Desarrolladores de YouTube – Junio de 2013
Durante más de un año, se pudieron vincular perfiles de Google+ con canales de YouTube. Publicamos un blog sobre cómo cambiaron algunas de las respuestas de la API de Data v2 como resultado de esa vinculación de perfiles. Recientemente, se hizo posible crear canales de YouTube nuevos que no tienen un nombre de usuario tradicional asociado y, en su lugar, se identifican únicamente por su perfil de Google+. Gran parte de la información de esa entrada de blog sigue siendo válida, pero este detalle adicional invalida algunas suposiciones fundamentales sobre los canales de YouTube, como que cada uno siempre estará asociado con un nombre de usuario de YouTube único. Por eso, queremos brindarte algunas prácticas recomendadas adicionales para escribir código que funcione con todos los tipos de canales.
IDs de canal en la API de datos v3
Todas las operaciones de la versión 3 que funcionan con canales usan IDs de canal exclusivamente como un medio para identificarlos. El ID del canal de un usuario específico de YouTube es idéntico en la v2 y la v3 de la API, lo que simplifica las migraciones entre versiones. Esta dependencia total de los IDs de canal puede ser desconcertante para los desarrolladores que antes solían pasar nombres de usuario de YouTube a los métodos de la API, pero la versión 3 se diseñó para tratar de manera idéntica los canales con nombres de usuario heredados y sin ellos, lo que significa que se deben usar los IDs de canal en todas partes.
Si usas la versión 3 y deseas recuperar el ID del canal que corresponde al usuario autorizado actualmente, puedes llamar al método channels.list(part="id", mine=true)
. Esto equivale a solicitar el perfil de canal del usuario default
en la v2.
Si alguna vez te encuentras con un nombre de usuario heredado arbitrario de YouTube que debes traducir a un ID de canal con la versión 3 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.
IDs de canales en la API de Data v2
Nota: La API de YouTube Data (v2) dejó de estar disponible desde el 26 de febrero de 2014 y se desactivó. Las aplicaciones que aún usan la API de v2 deben migrar a la API de v3 de inmediato.
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, todos los canales de YouTube tienen un ID de canal único asociado, representado por el valor de la etiqueta <yt:channelId>
, que es el valor que recomendamos que los desarrolladores usen 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 IDs de canal en las URLs de solicitud donde acepta nombres de usuario de YouTube, lo que significa que puedes intercambiar un ID de canal sin problemas en tu código existente. Por ejemplo, como UC_x5XG1OV2P6uZZ5FSM9Ttw
es el ID del canal con el nombre de usuario heredado GoogleDevelopers
, las siguientes dos URLs son solicitudes de API equivalentes:
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 v2 autenticadas, nunca deberás incluir el nombre de usuario del canal autorizado cuando crees las URLs de solicitud. Puedes usar el valor default
en lugar de un nombre de usuario (o ID de canal) en cualquier momento. Por ejemplo, si quieres recuperar el feed de cargas de video del usuario autorizado actualmente, puedes hacerlo en https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1
.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-11-23 (UTC)
[null,null,["Última actualización: 2024-11-23 (UTC)"],[[["\u003cp\u003eYouTube channels can now be identified solely by their Google+ profile, without a traditional YouTube username.\u003c/p\u003e\n"],["\u003cp\u003eThe YouTube Data API v3 exclusively uses channel IDs to identify channels, offering consistency for channels with or without legacy usernames.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can use the \u003ccode\u003echannels.list\u003c/code\u003e method in v3 to retrieve a channel ID based on the authorized user or a legacy username.\u003c/p\u003e\n"],["\u003cp\u003eIn v2, it's crucial to recognize that not every YouTube channel has a unique username, but all have a unique channel ID, which is the recommended identifier.\u003c/p\u003e\n"],["\u003cp\u003eThe deprecated Data API v2 can use channel IDs in place of usernames in request URLs, and \u003ccode\u003edefault\u003c/code\u003e can be used instead of usernames for authenticated v2 requests.\u003c/p\u003e\n"]]],["YouTube introduced channels solely identified by Google+ profiles, lacking traditional usernames. Data API v3 exclusively uses channel IDs to identify channels, simplifying the process for developers. To get the authorized user's channel ID, use `channels.list(part=\"id\", mine=true)`. To translate a username to a channel ID, use `channels.list(part=\"id\", forUsername=\"username\")`. For display names, use `search.list(part=\"snippet\", type=\"channel\", q=\"display name\")`. Data API v2, now deprecated, also utilizes channel IDs, allowing them to replace usernames in requests.\n"],null,["# Work with Channel IDs\n\n*Jeff Posnick, YouTube Developer Relations -- June 2013*\nFor more than a year, it's been possible to link Google+ profiles with YouTube channels, and we've [blogged](http://apiblog.youtube.com/2012/03/youtube-google-api-and-you.html) about how some of the Data API v2 responses have changed as a result of that profile link. More recently, it has become possible to create new YouTube channels that don't have a traditional YouTube username associated with them and, instead, are [solely identified by their Google+ profile](http://youtubecreator.blogspot.com/2013/04/using-google-page-identity-on-youtube.html). Much of the information from that blog post still applies, but this extra wrinkle does invalidate some fundamental assumptions about YouTube channels -- like that each one will always be associated with a unique YouTube username -- and we wanted to follow up with some additional best practices to write code that works with all flavors of channels.\n\nChannel IDs in the Data API v3\n------------------------------\n\nAll v3 operations that work with channels use [channel IDs](/youtube/v3/docs/channels#id) exclusively as a means of identifying those channels. The ID for a specific YouTube user's channel is identical in both v2 and v3 of the API, simplifying migrations between versions. This complete reliance on channel IDs might be perplexing for developers who were previously used to passing YouTube usernames to API methods, but v3 was designed to treat channels with and without legacy usernames identically, and that means using channel IDs everywhere.\n\nIf you are using v3 and want to retrieve the channel ID that corresponds to the currently authorized user, you can call the [channels.list(part=\"id\", mine=true)](https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=id&mine=true) method. This is equivalent to asking for the channel profile of the `default` user in v2.\n\nIf you ever do find yourself with an arbitrary legacy YouTube username that you need to translate into a channel ID using v3 of the API, you can make a [channels.list(part=\"id\", forUsername=\"\u003cvar class=\"apiparam\" translate=\"no\"\u003eusername\u003c/var\u003e\")](https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=id&forUsername=YouTubeDev) call to the API.\n\nIf you only know a display name and are looking to find the corresponding channel, the [search.list(part=\"snippet\", type=\"channel\", q=\"\u003cvar class=\"apiparam\" translate=\"no\"\u003edisplay name\u003c/var\u003e\")](https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet&q=YouTube+for+Developers&type=channel) method will come in handy. You should be prepared to deal with the possibility of the call returning more than one item in the response, since display names are not unique.\n\nChannel IDs in the Data API v2\n------------------------------\n\n**Note:** The YouTube Data API (v2) has been deprecated since February 26, 2014, and the API has been [turned down](http://youtube-eng.blogspot.com/2015/04/bye-bye-youtube-data-api-v2.html). Applications still using the v2 API should migrate to the v3 API immediately.\n\nThe biggest takeaway for developers using the older [Data API v2](/youtube/2.0/developers_guide_protocol_audience) is that you must be aware that **not every YouTube channel has a unique username** . Fortunately, every YouTube channel is guaranteed to have a unique channel ID associated with it, represented by the value in the [`\u003cyt:channelId\u003e` tag](/youtube/2.0/reference#youtube_data_api_tag_yt:channelId), and that's the value that we recommend developers use instead of usernames. For instance, if you have a database that maps YouTube usernames to information about that channel, your older entries should continue to work. (Existing channels won't lose their usernames.) However, as time goes on, it will become more and more likely that you'll have to work with channels that can't be uniquely identified by a username.\n\nA couple of factors simplify the transition from usernames to channel IDs. First, the Data API v2 accepts channel IDs in request URLs wherever it accepts YouTube usernames, meaning that you can seamlessly swap a channel ID into your existing code. For example, since `UC_x5XG1OV2P6uZZ5FSM9Ttw` is the channel ID for the channel with the legacy username `GoogleDevelopers`, the following two URLs are equivalent API requests: \n\n https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1\n https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1\n\nAnother thing to keep in mind is that whenever you're making [authenticated](/youtube/2.0/developers_guide_protocol_authentication) v2 requests, you never need to include the authorized channel's username when constructing request URLs. You can always use the value `default` in place of a username (or channel ID). So if you want to retrieve the video uploads feed for the currently authorized user, for instance, you can do so at `https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1`."]]