Jeff Posnick, relations avec les développeurs YouTube – juin 2013
Depuis plus d'un an, il est possible d'associer des profils Google+ à des chaînes YouTube. Nous avons publié un article sur la façon dont certaines réponses de la version 2 de l'API Data ont changé en raison de cette association. Plus récemment, il est devenu possible de créer des chaînes YouTube sans nom d'utilisateur YouTube classique, mais identifiées uniquement par leur profil Google+. La plupart des informations de cet article de blog restent valables, mais cette nouvelle fonctionnalité invalide certaines hypothèses fondamentales concernant les chaînes YouTube (par exemple, que chacune d'elles est toujours associée à un nom d'utilisateur YouTube unique). Nous souhaitons donc vous donner quelques bonnes pratiques supplémentaires pour écrire du code compatible avec toutes les chaînes.
ID de chaîne dans l'API Data v3
Toutes les opérations v3 qui fonctionnent avec des chaînes utilisent exclusivement les ID de chaîne pour les identifier. L'ID de la chaîne d'un utilisateur YouTube spécifique est identique dans les versions 2 et 3 de l'API, ce qui simplifie les migrations entre les versions. Cette dépendance totale aux ID de chaîne peut dérouter les développeurs qui avaient l'habitude de transmettre des noms d'utilisateur YouTube aux méthodes de l'API. Toutefois, la version 3 a été conçue pour traiter les chaînes avec et sans anciens noms d'utilisateur de la même manière, ce qui implique d'utiliser les ID de chaîne partout.
Si vous utilisez la version 3 et que vous souhaitez récupérer l'ID de la chaîne correspondant à l'utilisateur actuellement autorisé, vous pouvez appeler la méthode channels.list(part="id", mine=true)
. Cela équivaut à demander le profil de la chaîne de l'utilisateur default
dans la version 2.
Si vous vous trouvez avec un ancien nom d'utilisateur YouTube arbitraire que vous devez traduire en ID de chaîne à l'aide de la version 3 de l'API, vous pouvez effectuer un appel channels.list(part="id", forUsername="username")
à l'API.
Si vous ne connaissez qu'un nom à afficher et que vous souhaitez trouver la chaîne correspondante, la méthode search.list(part="snippet", type="channel", q="display name")
vous sera utile. Vous devez être prêt à gérer la possibilité que l'appel renvoie plusieurs éléments dans la réponse, car les noms à afficher ne sont pas uniques.
ID de chaîne dans l'API Data v2
Remarque:L'API YouTube Data (v2) est obsolète depuis le 26 février 2014 et a été désactivée. Les applications qui utilisent toujours l'API v2 doivent passer immédiatement à l'API v3.
Le principal point à retenir pour les développeurs qui utilisent l'ancienne API Data v2 est qu'toutes les chaînes YouTube ne disposent pas d'un nom d'utilisateur unique. Heureusement, chaque chaîne YouTube est associée à un ID de chaîne unique, représenté par la valeur de la balise <yt:channelId>
. C'est cette valeur que nous recommandons aux développeurs d'utiliser à la place des noms d'utilisateur. Par exemple, si vous disposez d'une base de données qui met en correspondance des noms d'utilisateur YouTube avec des informations sur la chaîne, vos anciennes entrées devraient continuer à fonctionner. (Les canaux existants ne perdront pas leur nom d'utilisateur.) Toutefois, au fil du temps, vous devrez de plus en plus probablement travailler avec des chaînes qui ne peuvent pas être identifiées de manière unique par un nom d'utilisateur.
Plusieurs facteurs simplifient la transition des noms d'utilisateur aux ID de chaîne. Tout d'abord, la version 2 de l'API Data accepte les ID de chaîne dans les URL de requête partout où elle accepte les noms d'utilisateur YouTube. Vous pouvez donc remplacer facilement un ID de chaîne dans votre code existant. Par exemple, comme UC_x5XG1OV2P6uZZ5FSM9Ttw
est l'ID de la chaîne associée à l'ancien nom d'utilisateur GoogleDevelopers
, les deux URL suivantes sont des requêtes API équivalentes:
https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1
https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1
N'oubliez pas non plus que lorsque vous envoyez des requêtes v2 authentifiées, vous n'avez jamais besoin d'inclure le nom d'utilisateur de la chaîne autorisée lorsque vous créez des URL de requête. Vous pouvez toujours utiliser la valeur default
à la place d'un nom d'utilisateur (ou d'un ID de chaîne). Par exemple, si vous souhaitez récupérer le flux des vidéos mises en ligne pour l'utilisateur actuellement autorisé, vous pouvez le faire à l'adresse https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1
.