Praca z identyfikatorami kanałów

Jeff Posnick, zespół ds. relacji z deweloperami w YouTube – czerwiec 2013 r.

Od ponad roku można łączyć profile Google+ z kanałami w YouTube. W poście na blogu opisywaliśmy, jak w wyniku takiego połączenia zmieniły się niektóre odpowiedzi interfejsu Data API v2. Niedawno umożliwiliśmy tworzenie nowych kanałów YouTube, które nie są powiązane z tradycyjnym imieniem i nazwiskiem użytkownika w YouTube, lecz identyfikowane wyłącznie przez profil Google+. Większość informacji z tego wpisu na blogu jest nadal aktualna, ale ta dodatkowa funkcja unieważnia niektóre podstawowe założenia dotyczące kanałów w YouTube, np. że każdy z nich będzie zawsze powiązany z unikalną nazwą użytkownika w YouTube. Dlatego chcemy przedstawić Ci dodatkowe zalecane metody pisania kodu, które działają z różnymi typami kanałów.

Identyfikatory kanałów w Data API w wersji 3

Wszystkie operacje v3 dotyczące kanałów używają wyłącznie identyfikatorów kanałów do identyfikowania tych kanałów. Identyfikator kanału konkretnego użytkownika YouTube jest identyczny w wersji 2 i 3 interfejsu API, co upraszcza migrację między wersjami. Takie całkowite poleganie na identyfikatorach kanałów może być zaskakujące dla deweloperów, którzy wcześniej przekazywali nazwy użytkowników YouTube do metod interfejsu API. Wersja 3 została jednak zaprojektowana tak, aby traktować identycznie kanały z dawnymi i nowymi nazwami użytkowników, a to oznacza, że identyfikatory kanałów są używane wszędzie.

Jeśli używasz wersji 3 i chcesz pobrać identyfikator kanału odpowiadający aktualnie zalogowanemu użytkownikowi, możesz wywołać metodę channels.list(part="id", mine=true). Jest to równoznaczne z poproszeniem o profil kanału użytkownika default w wersji 2.

Jeśli kiedykolwiek natrafisz na dowolną starszą nazwę użytkownika w YouTube, którą musisz przekształcić w identyfikator kanału za pomocą interfejsu API w wersji 3, możesz wywołać interfejs API za pomocą channels.list(part="id", forUsername="username").

Jeśli znasz tylko nazwę wyświetlaną i chcesz znaleźć odpowiedni kanał, przydatna będzie metoda search.list(part="snippet", type="channel", q="display name"). Musisz być przygotowany na to, że wywołanie może zwrócić w odpowiedzi więcej niż 1 element, ponieważ wyświetlane nazwy nie są unikalne.

Identyfikatory kanałów w interfejsie Data API w wersji 2

Uwaga: interfejs YouTube Data API (w wersji 2) został wycofany 26 lutego 2014 r. i został wyłączony. Aplikacje, które nadal korzystają z interfejsu API w wersji 2, powinny zostać niezwłocznie przeniesione na interfejs API w wersji 3.

Najważniejsza informacja dla deweloperów korzystających ze starszej wersji Data API v2 brzmi, że nie każdy kanał w YouTube ma unikalną nazwę użytkownika. Na szczęście każdy kanał YouTube ma przypisany unikalny identyfikator, który jest reprezentowany przez wartość w tagu <yt:channelId>. Zalecamy, aby deweloperzy używali tej wartości zamiast nazw użytkowników. Jeśli na przykład masz bazę danych, która kojarzy nazwy użytkowników YouTube z informacjami o kanale, starsze wpisy powinny nadal działać. (istniejące kanały nie stracą swoich nazw użytkowników). Z czasem jednak coraz częściej będziesz musiał pracować z kanałami, których nie można jednoznacznie zidentyfikować za pomocą nazwy użytkownika.

Kilka czynników upraszcza przejście z nazw użytkowników na identyfikatory kanałów. Po pierwsze, interfejs Data API v2 akceptuje identyfikatory kanałów w adresach URL żądań wszędzie tam, gdzie akceptuje nazwy użytkowników YouTube. Oznacza to, że możesz bezproblemowo zamienić identyfikator kanału w dotychczasowym kodzie. Na przykład UC_x5XG1OV2P6uZZ5FSM9Ttw to identyfikator kanału o starszej nazwie użytkownika GoogleDevelopers, więc te 2 adresy URL to równoważne żądania interfejsu API:

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

Pamiętaj też, że podczas wysyłania zaautentyfikowanych żądań v2 nie musisz podawać nazwy użytkownika autoryzowanego kanału podczas tworzenia adresów URL żądań. Zamiast nazwy użytkownika (lub identyfikatora kanału) możesz zawsze użyć wartości default. Jeśli chcesz na przykład pobrać plik danych z przesyłanymi filmami dla aktualnie autoryzowanego użytkownika, możesz to zrobić na stronie https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1.