Trabalho com IDs de canais

Jeff Posnick, YouTube Developer Relations - Junho de 2013

Por mais de um ano, foi possível vincular perfis do Google+ com canais do YouTube, e já escrevemos sobre como algumas das respostas da Data API v2 mudaram como resultado dessa vinculação de perfil. Mais recentemente, tornou-se possível criar novos canais do YouTube que não possuem um nome de usuário do YouTube tradicional a eles associados e, em vez disso, são exclusivamente identificados por seus perfis do Google+. A maior parte das informações contidas nos posts do blog ainda se aplica, mas esta peculiaridade extra invalida algumas suposições fundamentais sobre os canais do YouTube (como a de que cada um estará sempre associado a um nome de usuário exclusivo do YouTube) e de que gostaríamos de prosseguir com algumas das melhores práticas adicionais de como se escrever um código que funcione com todos os tipos de canais.

Sumário

Este guia contém as seguintes seções:

IDs de canal na Data API v3

Para esta versão de API, todas as operações que funcionam com canais usam IDs de canal exclusivamente como meio de identificar esses canais. O ID de um canal de usuário específico do YouTube é idêntico tanto na v2 quanto na v3 da API, simplificando as migrações entre as versões. Esta dependência completa de IDs de canais pode ser desconcertante para os desenvolvedores que estavam acostumados a transferir nomes de usuários do YouTube para métodos de API, mas a v3 foi projetada para lidar com canais com e sem nomes de usuário legados da mesma maneira, e isso significa usar IDs de canais em qualquer lugar.

Se você está usando a v3 e deseja recuperar o ID do canal que corresponde ao usuário autorizado no momento, pode chamar o método channels.list(part="id", mine=true). Isto equivale a solicitar o perfil do canal do usuário default na v2.

Se você já não se encontra com um nome de usuário herdado e arbitrário do YouTube que precisa converter em um ID de canal usando a v3 da API, você pode fazer 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") virá a calhar. 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 Data API v2

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 possui um ID de canal exclusivo associado a ele, representado pelo valor na <yt:channelId> tag, e esse é o valor que recomendamos que os desenvolvedores usem no lugar de nomes de usuários. 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 Data API v2 aceita IDs de canais nas URLs de solicitação sempre que ela aceita nomes de usuários do YouTube, o que significa que você pode facilmente trocar um ID de canal no código existente. Por exemplo, como UC_x5XG1OV2P6uZZ5FSM9Ttw é o ID do canal para o canal com o nome de usuário legado GoogleDevelopers, as duas 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 pensar é 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 sempre o valor default em vez de um nome de usuário (ou ID de canal). Por exemplo, se você deseja recuperar o feed de uploads de vídeo para o usuário autorizado no momento, você pode fazê-lo em https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1.