Trabalhar com IDs de canal

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.