Utiliser les ID de chaînes

Jeff Posnick, YouTube Developer Relations (juin 2013)

Depuis plus d'un an, il est possible d'associer des profils Google+ à des chaînes YouTube. Nous avons donc rédigé notre analyse sur les modifications apportées à certaines réponses de l'API Data v2 par ce lien. Plus récemment, il est devenu possible de créer des chaînes YouTube qui ne sont pas associées à un nom d'utilisateur YouTube traditionnel et qui, à la place, sont identifiées uniquement par leur profil Google+. Une grande partie des informations de cet article de blog s'appliquent toujours, mais ce aspect supplémentaire invalide certaines hypothèses fondamentales concernant les chaînes YouTube, selon lesquelles chacune d'elles sera toujours associée à un nom d'utilisateur YouTube unique. Nous souhaitons également vous présenter quelques bonnes pratiques supplémentaires pour rédiger du code qui fonctionne avec toutes sortes de chaînes.

ID de canal dans l'API Data v3

Toutes les opérations de la version 3 qui fonctionnent avec les canaux utilisent exclusivement des ID de canaux pour identifier ces canaux. Dans les versions 2 et 3 de l'API, l'ID d'une chaîne d'utilisateur YouTube spécifique est identique, ce qui simplifie les migrations entre les versions. Cette dépendance totale aux ID de chaîne peut s'avérer difficile pour les développeurs qui avaient l'habitude de transmettre des noms d'utilisateur YouTube à des méthodes API, mais la version 3 était conçue pour traiter les chaînes avec et sans les anciens noms d'utilisateur de manière identique. En d'autres termes, utiliser des 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). Dans la version 2, cela équivaut à demander le profil de chaîne de l'utilisateur default.

Si vous vous trouvez dans un ancien nom d'utilisateur YouTube arbitraire que vous devez convertir en ID de chaîne (version 3), vous pouvez appeler channels.list(part="id", forUsername="username").

Si vous ne connaissez que le nom à afficher et si vous cherchez la chaîne correspondante, la méthode search.list(part="snippet", type="channel", q="display name") vous sera utile. Vous devez vous préparer à faire face à la possibilité que l'appel renvoie plusieurs éléments dans la réponse, car les noms à afficher ne sont pas uniques.

ID de canal 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 migrer immédiatement vers l'API v3.

Le point le plus important à retenir concernant les développeurs qui utilisent l'ancienne version de l'API Data v2, c'est que les chaînes YouTube ne disposent pas toutes 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 plutôt que les noms d'utilisateur. Par exemple, si vous avez une base de données mappant les noms d'utilisateur YouTube avec des informations sur cette chaîne, vos anciennes entrées devraient continuer à fonctionner. (Le nom d'utilisateur des chaînes existantes sera conservé.) Cependant, au fil du temps, il sera de plus en plus probable que vous deviez travailler avec des chaînes qui ne peuvent pas être identifiées de manière unique par un nom d'utilisateur.

Plusieurs facteurs permettent de simplifier la transition des noms d'utilisateur vers les ID de chaînes. Premièrement, 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 ainsi facilement remplacer un ID de chaîne dans votre code existant. Par exemple, comme UC_x5XG1OV2P6uZZ5FSM9Ttw est l'ID de la chaîne avec 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

Notez également que lorsque vous envoyez des requêtes authentifiées v2, vous n'avez jamais besoin d'inclure le nom d'utilisateur de la chaîne autorisée lorsque vous créez les URL de requête. Vous pouvez toujours utiliser la valeur default à la place d'un nom d'utilisateur (ou de l'ID de chaîne). Par exemple, si vous souhaitez récupérer le flux de mise en ligne de vidéos pour l'utilisateur actuellement autorisé, vous pouvez le faire à l'adresse https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1.