Mit Kanal-IDs arbeiten

Jeff Posnick, YouTube Developer Relations – Juni 2013

Seit über einem Jahr ist es möglich, Google+ Profile mit YouTube-Kanälen zu verknüpfen. Außerdem haben wir in diesem Blog berichtet, dass sich einige Antworten in der Data API-Version 2 aufgrund dieses Links geändert haben. Seit Kurzem ist es möglich, neue YouTube-Kanäle zu erstellen, die keinen traditionellen YouTube-Nutzernamen haben. Stattdessen werden sie nur durch ihr Google+ Profil identifiziert. Die meisten Informationen aus diesem Blogpost sind nach wie vor gültig, aber durch diese zusätzliche Faltung werden einige grundlegende Annahmen über YouTube-Kanäle ungültig, da jeder davon immer mit einem eindeutigen YouTube-Nutzernamen verknüpft ist. Wir möchten noch einige zusätzliche Best Practices beachten, um Code zu schreiben, der mit allen Geschmacksrichtungen von Kanälen funktioniert.

Channel-IDs in der Data API Version 3

In allen v3-Vorgängen mit Channels werden Channel-IDs ausschließlich zur Identifizierung dieser Channels verwendet. Die ID für den Kanal eines bestimmten YouTube-Nutzers ist in Version 2 und Version 3 der API identisch, was die Migration zwischen Versionen vereinfacht. Diese vollständige Abhängigkeit von Kanal-IDs kann für Entwickler, die früher YouTube-Nutzernamen an API-Methoden weitergeben mussten, für sie als Verwirrung sorgen. In Version 3 wurden jedoch Kanäle mit und ohne alten Nutzernamen gleich behandelt, d. h., sie konnten überall Kanal-IDs verwenden.

Wenn Sie Version 3 verwenden und die Kanal-ID abrufen möchten, die dem aktuell autorisierten Nutzer entspricht, können Sie die Methode channels.list(part="id", mine=true) aufrufen. Das entspricht der Frage nach dem Kanalprofil des default-Nutzers in Version 2.

Falls du auf einen älteren YouTube-Nutzernamen stößt, der mit Version 3 der API in eine Kanal-ID übersetzt werden muss, kannst du einen channels.list(part="id", forUsername="username")-Aufruf an die API senden.

Wenn du nur einen Anzeigenamen kennst und den entsprechenden Kanal suchen möchtest, ist die Methode search.list(part="snippet", type="channel", q="display name") praktisch. Sie sollten in der Lage sein, mehr Anfragen für Artikel zu erhalten, da angezeigte Namen nicht eindeutig sind.

Channel-IDs in der Data API Version 2

Hinweis:Die YouTube Data API (Version 2) ist seit dem 26. Februar 2014 veraltet und wurde eingestellt. Anwendungen, die die V2 API noch nutzen, sollten sofort zu dieser API migriert werden.

Der wichtigste Vorteil für Entwickler, die die ältere Data API Version 2 verwenden, ist, dass nicht jeder YouTube-Kanal über einen eindeutigen Nutzernamen verfügt. Glücklicherweise ist jedem YouTube-Kanal eine eindeutige Kanal-ID zugeordnet, die durch den Wert im <yt:channelId>-Tag repräsentiert wird. Diesen empfehlen wir anstelle von Nutzernamen. Wenn du beispielsweise eine Datenbank hast, in der YouTube-Nutzernamen mit Informationen zu diesem Kanal verknüpft sind, sollten deine älteren Einträge weiterhin funktionieren. (Bei bestehenden Kanälen geht der Nutzername aber nicht verloren.) Mit der Zeit werden Sie aber immer häufiger mit Kanälen arbeiten, die sich nicht eindeutig durch einen Nutzernamen identifizieren lassen.

Einige Faktoren vereinfachen die Umstellung von Nutzernamen auf Kanal-IDs. Zum einen akzeptiert die Data API v2 Kanal-IDs in Anfrage-URLs, unabhängig davon, ob YouTube-Nutzernamen akzeptiert werden. Das bedeutet, dass die Kanal-ID nahtlos in den vorhandenen Code umgewandelt werden kann. Da beispielsweise UC_x5XG1OV2P6uZZ5FSM9Ttw die Kanal-ID für den Kanal mit dem alten Nutzernamen GoogleDevelopers ist, sind die folgenden beiden URLs gleichwertige API-Anfragen:

https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1
https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1

Wenn Sie authentifizierte V2-Anfragen senden, müssen Sie beim Erstellen von Anfrage-URLs niemals den Nutzernamen des autorisierten Kanals angeben. Sie können immer den Wert default anstelle eines Nutzernamens (oder einer Kanal-ID) verwenden. Wenn Sie also den Videoupload-Feed für den derzeit autorisierten Nutzer abrufen möchten, können Sie dies beispielsweise unter https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1 tun.