Trabalhar com IDs de canal

Jeff Posnick, YouTube Developer Relations, junho de 2013

Por mais de um ano, foi possível vincular perfis do Google+ a canais do YouTube, e já escrevemos sobre como algumas das respostas da API Data v2 mudaram como resultado dessa vinculação de perfil. Mais recentemente, tornou-se possível criar novos canais do YouTube que não têm um nome de usuário tradicional do YouTube associado a eles e, em vez disso, são exclusivamente identificados por seu perfil do Google+. Grande parte das informações contidas nesta postagem ainda se aplica, mas essa ondulação adicional invalida algumas suposições fundamentais sobre os canais do YouTube, como cada um estará sempre associado a um nome de usuário exclusivo do YouTube, e queremos dar continuidade a algumas práticas recomendadas adicionais para escrever códigos que funcionem com todos os tipos de canais.

IDs de canal na API de dados v3

Todas as operações da v3 que funcionam com canais usam IDs de canal exclusivamente como meio de identificar esses canais. O ID do canal de um usuário específico do YouTube é idêntico na v2 e na v3 da API, simplificando as migrações entre as versões. Essa dependência completa de IDs de canais pode ser desconcertante para os desenvolvedores que estavam acostumados a passar nomes de usuários do YouTube para métodos de API, mas a v3 foi projetada para tratar canais com e sem nomes de usuário herdados de forma idêntica, e isso significa usar IDs de canais em qualquer lugar.

Se você estiver usando a v3 e quiser recuperar o ID do canal que corresponde ao usuário autorizado no momento, poderá chamar 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ê se deparar com um nome de usuário legado arbitrário do YouTube e precisar traduzi-lo para um ID de canal usando a v3 da API, faça uma chamada channels.list(part="id", forUsername="username") para a API.

Se você só conhece o nome de exibição e está procurando 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 de dados do YouTube (v2) está obsoleta desde 26 de fevereiro de 2014, e a API foi desativada. Os aplicativos que ainda usam a API v2 devem migrar para a API 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, cada canal do YouTube certamente terá um ID de canal exclusivo associado a ele, representado pelo valor na tag <yt:channelId>, e é esse o valor que recomendamos que os desenvolvedores usem no lugar 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. Primeiramente, a API de dados v2 aceita IDs de canal em URLs de solicitação sempre que aceita nomes de usuário do YouTube, o que significa que você pode facilmente trocar um ID de canal em seu código existente. Por exemplo, como UC_x5XG1OV2P6uZZ5FSM9Ttw é o ID do canal com o nome de usuário legado 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ê está fazendo solicitações autenticadas da v2, você nunca precisa incluir o nome de usuário do canal autorizado ao construir URLs de solicitação. Você pode usar o valor default a qualquer momento em vez de um nome de usuário (ou ID de canal). Assim, se você quiser recuperar o feed de uploads de vídeo para o usuário autorizado no momento, por exemplo, poderá fazer isso em https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1.