Praca z identyfikatorami kanałów

Jeff Posnick, YouTube Developer Relations – czerwiec 2013 r.

Już ponad rok można połączyć profile Google+ z kanałami YouTube i na blogu o tym, jak niektóre odpowiedzi interfejsu API danych w wersji 2 uległy zmianie w wyniku tego połączenia. Ostatnio umożliwiło się tworzenie nowych kanałów w YouTube, które nie mają tradycyjnej nazwy użytkownika YouTube. Zamiast tego są one rozpoznawane na podstawie profilu Google+. Wiele informacji z tego posta na blogu nadal ma zastosowanie, ale ta dodatkowa zniekształcenie powoduje, że niektóre podstawowe założenia dotyczące kanałów w YouTube są nieuzasadnione, tak jak każdy z nich będzie zawsze powiązany z unikalną nazwą użytkownika YouTube. Postanowiliśmy więc zastosować dodatkowe sprawdzone metody dotyczące kodowania, które pasują do wszystkich typów kanałów.

Identyfikatory kanałów w interfejsie Data API v3

Wszystkie operacje na wersjach 3, które współpracują z kanałami, wykorzystują identyfikatory kanałów wyłącznie do identyfikowania tych kanałów. Identyfikator kanału określonego użytkownika YouTube jest taki sam w interfejsie API w wersjach 2 i 3, co upraszcza migrację między wersjami. Ta całkowita zależność od identyfikatorów kanałów może być niezrozumiała dla deweloperów, którzy wcześniej używali w interfejsach API nazw użytkowników YouTube, ale wersja 3 została zaprojektowana tak, aby traktować kanały z identycznymi nazwami użytkowników i bez nich, co oznacza, że korzystają z nich wszędzie.

Jeśli korzystasz z wersji 3 i chcesz pobrać identyfikator kanału odpowiadający aktualnie autoryzowanemu użytkownikowi, możesz wywołać metodę channels.list(part="id", mine=true). Odpowiada to poproszeniu o przesłanie profilu kanału użytkownika default w wersji 2.

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

Jeśli znasz tylko wyświetlaną nazwę i chcesz znaleźć odpowiedni kanał, możesz użyć metody search.list(part="snippet", type="channel", q="display name"). Przygotuj się na to, że w odpowiedzi może być 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 (v2) został wycofany 26 lutego 2014 r. i został wyłączony. Aplikacje, które nadal używają interfejsu API v2, powinny od razu przejść na wersję 3.

Najważniejszym wnioskiem dla deweloperów korzystających ze starszego interfejsu Data API w wersji 2 jest to, że nie każdy kanał w YouTube ma unikalną nazwę użytkownika. Na szczęście każdy kanał YouTube ma przypisany unikalny identyfikator, reprezentowany przez wartość tagu <yt:channelId> – taką wartość zalecamy zamiast nazw użytkowników. Jeśli na przykład masz bazę danych, która mapuje nazwy użytkowników YouTube na informacje na temat tego kanału, Twoje starsze wpisy powinny nadal działać. (Dotychczasowe kanały nie utracą swoich nazw użytkownika). Jednak w miarę upływu czasu współpraca z kanałami, których nie uda się zidentyfikować jednoznacznie za pomocą nazwy użytkownika, będzie coraz bardziej zaawansowana.

Przejście z nazwy użytkownika na identyfikator kanału może ułatwić kilka czynników. Po pierwsze, interfejs Data API v2 akceptuje identyfikatory kanałów w adresach URL żądań, gdy akceptuje nazwy użytkowników YouTube. Oznacza to, że możesz łatwo zastąpić identyfikator kanału swoim dotychczasowym kodem. Na przykład UC_x5XG1OV2P6uZZ5FSM9Ttw jest identyfikatorem kanału ze starszą nazwą użytkownika GoogleDevelopers, więc te 2 adresy URL są równoważne żądaniami 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, że gdy tworzysz uwierzytelnione żądania w wersji 2, nie musisz dodawać nazwy użytkownika kanału podczas tworzenia adresów URL żądań. Zawsze możesz użyć wartości default zamiast nazwy użytkownika (lub identyfikatora kanału). Jeśli chcesz na przykład pobrać kanał przesyłania materiałów należącego obecnie do autoryzowanego użytkownika, możesz to zrobić na stronie https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1.