Estamos atualizando a API Data para corresponder à forma como o YouTube conta as visualizações dos Shorts.
Saiba mais
Trabalhar com IDs de canal
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Jeff Posnick, relações com desenvolvedores do YouTube – junho de 2013
Há mais de um ano, é possível vincular perfis do Google+ a canais do YouTube. Publicamos um artigo sobre como algumas das respostas da API Data v2 mudaram como resultado dessa vinculação. Recentemente, ficou possível criar canais do YouTube sem um nome de usuário tradicional associado a eles e que são identificados apenas pelo perfil do Google+. Muitas das informações desse post ainda se aplicam, mas essa mudança invalida algumas suposições fundamentais sobre os canais do YouTube, como a de que cada um deles sempre será associado a um nome de usuário exclusivo do YouTube. Por isso, queremos compartilhar algumas práticas recomendadas para escrever códigos que funcionem com todos os tipos de canais.
IDs de canal na API Data v3
Todas as operações da v3 que funcionam com canais usam IDs de canal exclusivamente como forma de identificar esses canais. O ID de um canal específico do YouTube é idêntico nas versões 2 e 3 da API, simplificando as migrações entre as versões. Essa dependência total dos IDs de canal pode ser confusa para desenvolvedores que estavam acostumados a transmitir nomes de usuário do YouTube para métodos de API. No entanto, a v3 foi projetada para tratar canais com e sem nomes de usuário legados da mesma forma, o que significa usar IDs de canal em todos os lugares.
Se você estiver usando a v3 e quiser recuperar o ID do canal que corresponde ao usuário autorizado no momento, chame o método channels.list(part="id", mine=true)
. Isso equivale a solicitar o perfil do canal do usuário default
na v2.
Se você tiver um nome de usuário legado do YouTube que precisa ser convertido em um ID do canal usando a v3 da API, faça uma chamada channels.list(part="id", forUsername="username")
para a API.
Se você souber apenas o nome de exibição e quiser encontrar o canal correspondente, o método search.list(part="snippet", type="channel", q="display name")
será útil. Você deve estar preparado para lidar com a possibilidade de a chamada retornar mais de um item na resposta, uma vez que os nomes de exibição não são exclusivos.
IDs de canal na API Data v2
Observação:a API YouTube Data (v2) foi descontinuada em 26 de fevereiro de 2014 e desativada. Os aplicativos que ainda usam a API v2 precisam migrar para a v3 imediatamente.
A maior vantagem para os desenvolvedores que usam a Data API v2 mais antiga é que você deve estar ciente de que nem todos os canais do YouTube têm um nome de usuário exclusivo. Felizmente, todos os canais do YouTube têm um ID exclusivo associado, representado pelo valor na tag <yt:channelId>
. Esse é o valor que recomendamos que os desenvolvedores usem em vez de nomes de usuário. Por exemplo, se você possui um banco de dados que mapeia nomes de usuários do YouTube para obter informações sobre canais, as entradas mais antigas devem continuar a funcionar (os canais existentes não perderão seus nomes de usuários), No entanto, conforme o tempo passa, é mais provável que você tenha que lidar com canais que não podem ser identificados exclusivamente por um nome de usuário.
Alguns fatores simplificam a transição de nomes de usuários para IDs de canal. Primeiro, a API Data v2 aceita IDs de canal em URLs de solicitação sempre que aceita nomes de usuário do YouTube. Isso significa que você pode trocar um ID de canal no seu código atual. Por exemplo, como UC_x5XG1OV2P6uZZ5FSM9Ttw
é o ID do canal com o nome de usuário GoogleDevelopers
, os dois URLs a seguir são solicitações 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
Outra coisa a se lembrar é que, sempre que você fizer solicitações v2 autenticadas, não será necessário incluir o nome de usuário do canal autorizado ao criar URLs de solicitação. Você pode usar o valor default
no lugar de um nome de usuário (ou ID do canal). Por exemplo, se você quiser recuperar o feed de envios de vídeo do usuário autorizado, acesse https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1
.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-11-23 UTC.
[null,null,["Última atualização 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`."]]