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. In unserem Blog haben wir bereits darüber berichtet, wie sich einige der Antworten der Data API v2 aufgrund dieser Profilverknüpfung 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 über ihr Google+-Profil identifiziert. Viele der Informationen aus diesem Blogpost gelten weiterhin. Diese zusätzliche Einschränkung macht jedoch einige grundlegende Annahmen über YouTube-Kanäle ungültig, z. B. dass jeder Kanal immer mit einem eindeutigen YouTube-Nutzernamen verknüpft ist. Deshalb möchten wir dir einige weitere Best Practices für die Erstellung von Code mitteilen, der für alle Arten von Kanälen funktioniert.

Kanal-IDs in der Data API v3

Alle V3-Vorgänge, die mit Kanälen arbeiten, verwenden ausschließlich Kanal-IDs, um diese Kanäle zu identifizieren. Die ID für den Kanal eines bestimmten YouTube-Nutzers ist sowohl in Version 2 als auch in Version 3 der API identisch. Das vereinfacht die Migration zwischen den Versionen. Diese vollständige Abhängigkeit von Kanal-IDs kann für Entwickler verwirrend sein, die zuvor YouTube-Nutzernamen an API-Methoden übergeben haben. Bei Version 3 werden jedoch Kanäle mit und ohne alte Nutzernamen identisch behandelt. Das bedeutet, dass überall Kanal-IDs verwendet werden.

Wenn du Version 3 verwendest und die Kanal-ID abrufen möchtest, die dem aktuell autorisierten Nutzer entspricht, kannst du die Methode channels.list(part="id", mine=true) aufrufen. Das entspricht der Anfrage nach dem Channel-Profil des Nutzers default in Version 2.

Wenn du einen beliebigen alten YouTube-Nutzernamen hast, den du mit Version 3 der API in eine Kanal-ID umwandeln möchtest, kannst du einen channels.list(part="id", forUsername="username")-Aufruf an die API senden.

Wenn Sie nur einen Anzeigenamen kennen und den entsprechenden Kanal finden möchten, ist die Methode search.list(part="snippet", type="channel", q="display name") praktisch. Da Anzeigenamen nicht eindeutig sind, kann es sein, dass der Aufruf mehr als einen Artikel in der Antwort zurückgibt.

Kanal-IDs in der Data API v2

Hinweis:Die YouTube Data API (Version 2) wurde am 26. Februar 2014 eingestellt und deaktiviert. Anwendungen, die noch die v2 API verwenden, sollten sofort zur v3 API migrieren.

Für Entwickler, die die ältere Data API v2 verwenden, ist es wichtig zu wissen, dass nicht jeder YouTube-Kanal einen eindeutigen Nutzernamen hat. Glücklicherweise ist jedem YouTube-Kanal eine eindeutige Kanal-ID zugewiesen, die durch den Wert im <yt:channelId>-Tag dargestellt wird. Diesen Wert empfehlen wir Entwicklern anstelle von Nutzernamen zu verwenden. Wenn du beispielsweise eine Datenbank hast, in der YouTube-Nutzernamen Informationen zu diesem Kanal zugeordnet sind, sollten deine älteren Einträge weiterhin funktionieren. Bestehende Kanäle behalten ihre Nutzernamen. Mit der Zeit wird es jedoch immer wahrscheinlicher, dass Sie mit Kanälen arbeiten müssen, die nicht eindeutig durch einen Nutzernamen identifiziert werden können.

Es gibt einige Faktoren, die die Umstellung von Nutzernamen zu Kanal-IDs vereinfachen. Erstens: Die Data API v2 akzeptiert Kanal-IDs in Anfrage-URLs überall dort, wo YouTube-Nutzernamen akzeptiert werden. Du kannst also ganz einfach eine Kanal-ID in deinen vorhandenen Code einfügen. Da UC_x5XG1OV2P6uZZ5FSM9Ttw beispielsweise die Kanal-ID für den Kanal mit dem bisherigen Nutzernamen GoogleDevelopers ist, sind die folgenden beiden URLs äquivalente 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 du authentifizierte V2-Anfragen sendest, musst du beim Erstellen von Anfrage-URLs nicht den Nutzernamen des autorisierten Kanals angeben. Du kannst stattdessen immer den Wert default anstelle eines Nutzernamens (oder einer Kanal-ID) verwenden. Wenn du beispielsweise den Feed mit den Videouploads für den aktuell autorisierten Nutzer abrufen möchtest, kannst du das unter https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1 tun.