Historia wersji

Ta strona zawiera listę zmian w interfejsie YouTube Data API (wersja 3) i aktualizacje dokumentacji. Subskrybuj ten dziennik zmian. Subskrybuj

10 lipca 2025 r.

21 lipca 2025 r. YouTube dostosuje treści zwracane przez wykres mostPopular metody video.list. W przeszłości lista mostPopular odzwierciedlała filmy z listy Na czasie. Teraz na liście mostPopular będą się pojawiać filmy z list Na czasie w kategoriach Muzyka, Filmy i Gry. Ta zmiana w interfejsie API jest wprowadzana równolegle z wycofaniem karty Na czasie w YouTube.

26 marca 2025 r.

Od 31 marca 2025 r. YouTube zmieni sposób zliczania wyświetleń filmów Short. W przypadku filmów Short wyświetlenie było zliczane po odtworzeniu filmu przez odpowiednią liczbę sekund. Wyświetlenia będą teraz odzwierciedlać, ile razy rozpoczęto lub ponowiono odtwarzanie filmu Short, bez minimalnego czasu oglądania. Więcej informacji

Od 31 marca 2025 r. te pola w interfejsie Data API będą zwracać liczbę wyświetleń filmów Short zgodnie z tą zmianą:

  • channels.statistics.viewCount
  • videos.statistics.viewCount

30 października 2024 r.

Interfejs API umożliwia teraz identyfikowanie filmów zawierających realistyczne zmodyfikowane lub wygenerowane syntetycznie (Z/S) treści. Dowiedz się więcej o zasadach YouTube dotyczących treści związanych z A/S.

Przykłady treści związanych z alkoholem i hazardem to filmy, które:

  • przedstawiać prawdziwą osobę, która mówi lub robi coś, czego wcale nie powiedziała ani nie zrobiła;
  • zmodyfikowane materiały przedstawiające prawdziwe wydarzenie lub miejsce.
  • treści przedstawiają realistycznie wyglądającą scenę, która faktycznie nie miała miejsca.

Aby wskazać, czy film zawiera treści związane z alkoholem lub tytoniem, ustaw właściwość status.containsSyntheticMedia. Tę właściwość można ustawić podczas wywoływania metod videos.insert lub videos.update. Jeśli ta właściwość jest ustawiona, jest zwracana w zasobie video.

30 kwietnia 2024 r.

Uwaga: to jest ogłoszenie o wycofaniu.

Ta aktualizacja zawiera następujące zmiany:

Interfejs API nie obsługuje już wstawiania ani pobierania dyskusji na kanale. Ta zmiana jest zgodna z funkcją obsługiwaną w witrynie YouTube, która nie umożliwia publikowania komentarzy na kanałach.

13 marca 2024 r.

Uwaga: to jest ogłoszenie o wycofaniu.

Ta aktualizacja zawiera następujące zmiany:

Parametr sync w metodach captions.insertcaptions.update został wycofany. 12 kwietnia 2024 r. YouTube przestanie obsługiwać parametr .

W związku z tą zmianą programiści muszą podawać informacje o czasie podczas wstawiania lub aktualizowania ścieżek z napisami. W przeciwnym razie przesyłanie się nie powiedzie.

12 marca 2024 r.

Ta aktualizacja zawiera następujące zmiany:

Zaktualizowaliśmy dokumentację zasobu captions, aby poinformować, że maksymalna dozwolona długość pola snippet.name to 150 znaków. Jeśli nazwa ścieżki jest dłuższa, interfejs API zwraca błąd nameTooLong.

7 marca 2024 r.

Uwaga: to jest ogłoszenie o wycofaniu.

Właściwość zasobu channel brandingSettings.channel.moderateComments została wycofana. 7 marca 2024 r. YouTube przestanie obsługiwać ten parametr.

31 stycznia 2024 r.

Ta aktualizacja zawiera następujące zmiany:

Nowy parametr forHandle metody channels.list umożliwia pobieranie informacji o kanale przez podanie jego nicka w YouTube.

9 listopada 2023 r.

Wszystkie odwołania do zasobu videoId w sekcji Comments zostały usunięte, ponieważ zasób videoId nie jest zwracany przy użyciu wywołania interfejsu API.

12 września 2023 r.

Uwaga: to jest ogłoszenie o wycofaniu.

Metoda comments.markAsSpam jest przestarzała od kilku lat. Ta metoda nie jest już obsługiwana w YouTube ani w interfejsie API.

Do wszystkich dokumentów, w których występuje metoda comments.markAsSpam, dodaliśmy powiadomienie o wycofaniu.

22 sierpnia 2023 r.

Metoda search.list obsługuje teraz parametr videoPaidProductPlacement. Ten parametr umożliwia filtrowanie wyników wyszukiwania tak, aby obejmowały tylko filmy, w których twórca oznaczył treści jako zawierające płatną promocję.

18 sierpnia 2023 r.

Zaktualizowaliśmy definicję zasobu video,liveStreamingDetails.concurrentViewers aby zaznaczyć, że liczba oglądających jednocześnie, którą zwraca interfejs YouTube Data API, może różnić się od przetworzonej i oczyszczonej z niechcianych treści liczby oglądających jednocześnie dostępnej w Statystykach YouTube. Więcej informacji o danych transmisji na żywo znajdziesz w Centrum pomocy YouTube.

7 sierpnia 2023 r.

Jak ogłosiliśmy 12 czerwca 2023 r., parametr relatedToVideoId metody search.list został wycofany. Ten parametr nie jest już obsługiwany, a odwołania do niego zostały usunięte z dokumentacji interfejsu API.

28 czerwca 2023 r.

Metoda thumbnails.set obsługuje teraz błąd uploadRateLimitExceeded, który oznacza, że w ciągu ostatnich 24 godzin na kanale przesłano zbyt wiele miniatur i należy spróbować ponownie później.

12 czerwca 2023 r.

Uwaga: to jest ogłoszenie o wycofaniu.

Parametr relatedToVideoId metody search.list został wycofany. 7 sierpnia 2023 r. przestaniemy obsługiwać parametr .

Do dokumentacji metody search.list dodaliśmy powiadomienie o wycofaniu. Ten parametr zostanie całkowicie usunięty z dokumentacji search.list 7 sierpnia 2023 r. lub później.

Ponadto z przewodnika po implementacji interfejsu API usunęliśmy przykład pokazujący, jak pobrać powiązane filmy.

22 sierpnia 2022 r.

Poprawiono adnotacje typu dla pól video.statistics z niepodpisanego długiego na ciąg znaków.

5 sierpnia 2022 r.

YouTube zmienił sposób generowania identyfikatorów napisów i w ramach tej zmiany przypisuje nowe identyfikatory do wszystkich ścieżek napisów. Ta zmiana może być niekompatybilna wstecznie w przypadku aplikacji, które przechowują wartości caption_id, ale nie będzie miała wpływu na aplikacje, które nie przechowują wartości caption_id.

Od teraz do 1 grudnia 2022 r. metody captions.list, captions.update, captions.download i captions.delete będą obsługiwać zarówno stare, jak i nowe identyfikatory ścieżek napisów. Jednak 1 grudnia 2022 r. lub później YouTube przestanie obsługiwać stare identyfikatory ścieżek napisów. Od tego czasu wywoływanie dowolnej z tych metod interfejsu API ze starym identyfikatorem ścieżki napisów spowoduje błąd captionNotFound.

Aby przygotować się na tę zmianę, zaplanuj całkowite zastąpienie wszystkich przechowywanych danych ścieżki napisów w okresie od teraz do 1 grudnia 2022 r. Oznacza to, że w przypadku każdego filmu, dla którego przechowujesz dane ścieżki napisów, musisz usunąć aktualnie przechowywane dane, a następnie wywołać metodę captions.list, aby pobrać bieżący zestaw ścieżek napisów do filmu i zapisać dane w odpowiedzi interfejsu API w zwykły sposób.

12 lipca 2022 r.

Zaktualizowaliśmy Warunki korzystania z usług interfejsu API YouTube. Więcej informacji znajdziesz w historii zmian Warunków korzystania z usług YouTube API.

27 kwietnia 2022 r.

Zaktualizowaliśmy opis metody videos.insert, aby uwzględnić informację, że maksymalny rozmiar przesyłanych filmów wzrósł ze 128 GB do 256 GB.

8 kwietnia 2022 r.

Zaktualizowaliśmy definicje parametrów subscriptions.list, myRecentSubscribersmySubscribers metody, aby uwzględnić informację, że maksymalna liczba subskrybentów zwracanych przez interfejs API może być ograniczona. Ta zmiana to korekta w dokumentacji, a nie zmiana w działaniu interfejsu API.

15 grudnia 2021 r.

Zgodnie z ogłoszeniem z 18 listopada 2021 r. w związku ze zmianami, które mają na celu ukrycie liczby negatywnych ocen filmów na całej platformie YouTube, właściwość statistics.dislikeCount zasobu video jest teraz prywatna.

Więcej informacji o tej zmianie znajdziesz na oficjalnym blogu YouTube.

18 listopada 2021 r.

W związku ze zmianami, które mają na celu ustawienie liczby kliknięć „Nie podoba mi się” jako prywatnej na całej platformie YouTube, właściwość video zasobustatistics.dislikeCount zostanie ustawiona jako prywatna 13 grudnia 2021 r. Oznacza to, że właściwość będzie uwzględniana w odpowiedzi interfejsu API z punktu końcowego videos.list tylko wtedy, gdy żądanie API zostało uwierzytelnione przez właściciela filmu.

Ta zmiana nie ma wpływu na punkt końcowy videos.rate.

Deweloperzy, którzy nie wyświetlają publicznie liczby negatywnych ocen, ale nadal potrzebują jej w swoim kliencie interfejsu API, mogą poprosić o dodanie do listy dozwolonych, aby uzyskać wyjątek. Aby ubiegać się o wyjątek, musisz wypełnić ten formularz zgłoszeniowy.

Więcej informacji o tej zmianie znajdziesz na oficjalnym blogu YouTube.

2 lipca 2021 r.

Uwaga: to jest ogłoszenie o wycofaniu.

Punkt końcowy commentThreads.update został wycofany i nie jest już obsługiwany. Ten punkt końcowy duplikuje funkcje dostępne w innych punktach końcowych interfejsu API. Zamiast tego możesz zadzwonić pod numer comments.update

metody i jeśli Twój kod wymaga zasobu commentThreads, wykonaj dodatkowe wywołanie metody commentThreads.list.

1 lipca 2021 r.

Wszyscy deweloperzy korzystający z usług interfejsu API YouTube muszą przejść kontrolę zgodności z interfejsem API,aby otrzymać więcej niż domyślny limit 10 000 jednostek. Do tej pory zarówno proces audytu zgodności, jak i wnioski o dodatkowe przydziały jednostek limitu były przeprowadzane przez deweloperów, którzy wypełniali i przesyłali formularz dotyczący audytu i zwiększenia limitów usług interfejsu API YouTube.

Aby wyjaśnić te procesy i lepiej zaspokajać potrzeby deweloperów korzystających z naszych usług API, dodajemy 3 nowe formularze i przewodnik po ich wypełnianiu:

  • Formularz wniosku dewelopera po audycie: deweloperzy, którzy przeszli już audyt zgodności z zasadami dotyczącymi interfejsu API, mogą wypełnić i przesłać ten krótszy formularz, aby poprosić o zwiększenie przydzielonego limitu.
  • Formularz odwołania: deweloperzy, których projekty API nie przeszły audytu zgodności (lub którym odmówiono zwiększenia limitu jednostek), mogą wypełnić i przesłać ten formularz.
  • Formularz zmiany kontroli: deweloperzy lub dowolny podmiot zarządzający klientem API w imieniu dewelopera, u którego nastąpiła zmiana kontroli (np. w wyniku zakupu lub sprzedaży akcji, fuzji przedsiębiorstw bądź innego rodzaju transakcji firmowej) związana z projektem API, muszą wypełnić i przesłać ten formularz. Dzięki temu zespół interfejsu API YouTube może zaktualizować nasze rekordy, sprawdzić zgodność nowego projektu interfejsu API z przypadkiem użycia i zweryfikować bieżący przydział limitu dewelopera.

Każdy nowy formularz poinformuje nas o Twoim zamierzonym sposobie korzystania z interfejsu API YouTube, co pozwoli nam lepiej Ci pomóc.

Więcej informacji znajdziesz w naszym nowym przewodniku dotyczącym audytów zgodności interfejsów API.

12 maja 2021 r.

Uwaga: to jest ogłoszenie o wycofaniu.

Ta aktualizacja obejmuje te zmiany w interfejsie API:

  • Właściwość contentDetails.relatedPlaylists.favorites zasobu channel została wycofana. Funkcja ulubionych filmów została wycofana już kilka lat temu, o czym wspominaliśmy w historii zmian z 28 kwietnia 2016 roku.

    Przed tą aktualizacją interfejs API nadal tworzył nową playlistę, jeśli klient interfejsu API próbował dodać film do nieistniejącej playlisty ulubionych. W takim przypadku playlista nie zostanie utworzona, a interfejs API zwróci błąd. Próby modyfikowania ulubionych playlist przez dodawanie, zmienianie lub usuwanie elementów również zostały wycofane zgodnie z wcześniejszymi ogłoszeniami i w każdej chwili mogą zacząć zwracać błędy.

  • Te właściwości zasobu channel zostały wycofane. Te właściwości nie są już obsługiwane w interfejsie YouTube Studio ani w YouTube. W związku z tym nie są one już obsługiwane przez interfejs API.

    • brandingSettings.channel.defaultTab
    • brandingSettings.channel.featuredChannelsTitle
    • brandingSettings.channel.featuredChannelsUrls[]
    • brandingSettings.channel.profileColor
    • brandingSettings.channel.showBrowseView
    • brandingSettings.channel.showRelatedChannels

    Wszystkie usługi zostały usunięte z channel reprezentacji zasobu, a ich definicje zostały usunięte z listy usług zasobu. Dodatkowo z dokumentacji dotyczącej poszczególnych metod usunęliśmy błędy związane z tymi właściwościami.

  • Te właściwości zasobu channelSection zostały wycofane. Te właściwości nie są już obsługiwane w interfejsie YouTube Studio ani w YouTube. W związku z tym nie są one już obsługiwane przez interfejs API.

    • snippet.style
    • snippet.defaultLanguage
    • snippet.localized.title
    • localizations
    • localizations.(key)
    • localizations.(key).title
    • targeting
    • targeting.languages[]
    • targeting.regions[]
    • targeting.countries[]

    W związku z tą zmianą parametr hl metody channelSection.list również został wycofany, ponieważ funkcje, które obsługuje, nie są obsługiwane.

    Wszystkie usługi zostały usunięte z channelSection reprezentacji zasobu, a ich definicje zostały usunięte z listy usług zasobu. Dodatkowo z dokumentacji dotyczącej poszczególnych metod usunęliśmy błędy związane z tymi właściwościami.

  • W przypadku właściwości snippet.type zasobu channelSection te wartości zostały wycofane: Te wartości nie są już obsługiwane na stronach kanałów w YouTube, dlatego nie są też już obsługiwane przez interfejs API.

    • likedPlaylists
    • likes
    • postedPlaylists
    • postedVideos
    • recentActivity
    • recentPosts
  • Właściwość snippet.tags[] zasobu playlist została wycofana. Ta usługa nie jest już obsługiwana w YouTube, dlatego nie jest już obsługiwana przez interfejs API.

9 lutego 2021 r.

Zasób playlistItem obsługuje 2 nowe właściwości:

28 stycznia 2021 r.

Ta aktualizacja zawiera następujące zmiany:

  • Metody playlistItems.delete, playlistItems.insert, playlistItems.list, playlistItems.update, playlists.delete, playlists.listplaylists.update obsługują nowy playlistOperationUnsupported błąd. Ten błąd występuje, gdy żądanie próbuje wykonać operację, która jest niedozwolona w przypadku danej playlisty. Użytkownik nie może na przykład usunąć filmu z playlisty z przesłanymi filmami ani usunąć samej playlisty.

    W każdym przypadku ten błąd zwraca kod odpowiedzi HTTP 400 (nieprawidłowe żądanie).

  • Z dokumentacji usunęliśmy błędy watchHistoryNotAccessiblewatchLaterNotAccessible metody playlistItems.list. Chociaż historia oglądania i lista „Obejrzyj później” użytkowników nie są dostępne w interfejsie API, te konkretne błędy nie są przez niego zwracane.

15 października 2020 r.

Do zasad dla deweloperów dodaliśmy 2 nowe sekcje:

  • Nowy punkt III.E.4.i zawiera dodatkowe informacje o danych zbieranych i wysyłanych za pomocą odtwarzacza YouTube. Odpowiadasz za wszelkie dane użytkowników, które przesyłasz do nas za pomocą dowolnego odtwarzacza osadzonego w YouTube, zanim użytkownik wejdzie w interakcję z odtwarzaczem, aby wskazać zamiar odtwarzania. Możesz ograniczyć dane udostępniane YouTube, zanim użytkownik wejdzie w interakcję z odtwarzaczem, ustawiając automatyczne odtwarzanie na „false”.
  • Nowy punkt III.E.4.j dotyczy sprawdzania stanu treści przeznaczonych dla dzieci przed umieszczeniem ich na stronach i w aplikacjach. Odpowiadasz za wiedzę o tym, kiedy filmy, które umieszczasz w swoim kliencie interfejsu API, są przeznaczone dla dzieci, i za odpowiednie traktowanie danych zebranych z umieszczonego odtwarzacza. Dlatego przed umieszczeniem treści w kliencie interfejsu API za pomocą dowolnego umieszczonego odtwarzacza YouTube musisz sprawdzić jej stan za pomocą usługi YouTube Data API.

Nowy przewodnik Sprawdzanie statusu filmu „przeznaczony dla dzieci” wyjaśnia, jak sprawdzić status MFK filmu za pomocą usługi YouTube Data API.

W związku z tymi zmianami do dokumentacji parametrów odtwarzacza osadzonego dodaliśmy przypomnienie, że jeśli włączysz automatyczne odtwarzanie, odtwarzanie rozpocznie się bez interakcji użytkownika z odtwarzaczem. W związku z tym zbieranie i udostępnianie danych o odtwarzaniu będzie następować po wczytaniu strony.

8 października 2020 r.

Ta aktualizacja obejmuje 3 drobne zmiany związane z zasobem channel:

  • Obiekt snippet.thumbnails, który identyfikuje miniatury kanału, może być pusty w przypadku nowo utworzonych kanałów. Wypełnienie tego obiektu może potrwać do 1 dnia.
  • Właściwość statistics.videoCount odzwierciedla liczbę tylko publicznych filmów na kanale, nawet w przypadku właścicieli. Jest to zgodne z liczbami wyświetlanymi w witrynie YouTube.
  • Słowa kluczowe kanału, które są identyfikowane we właściwości brandingSettings.channel.keywords, mogą zostać skrócone, jeśli przekroczą maksymalną dozwoloną długość 500 znaków lub jeśli zawierają nieprawidłowo użyte cudzysłowy ("). Pamiętaj, że limit 500 znaków nie dotyczy poszczególnych słów kluczowych, ale łącznej długości wszystkich słów kluczowych. Działa to tak samo jak w witrynie YouTube.

9 września 2020 r.

Uwaga: to jest ogłoszenie o wycofaniu.

Ta aktualizacja obejmuje te zmiany w interfejsie API: Wszystkie zmiany wejdą w życie 9 września 2020 r. lub później, czyli w dniu opublikowania tego ogłoszenia. W związku z tym deweloperzy nie powinni już korzystać z żadnej z wymienionych poniżej funkcji interfejsu API.

  • Te zasoby, metody, parametry i właściwości zasobów interfejsu API zostaną natychmiast wycofane i przestaną działać w dniu ogłoszenia lub po nim:
    • Te właściwości channel zasobu:
      • Usługa statistics.commentCount
      • obiekt brandingSettings.image i wszystkie jego usługi podrzędne;
      • brandingSettings.hints i wszystkie usługi podrzędne
    • Parametr filtra categoryId metody channels.list
    • zasób guideCategories i metoda guideCategories.list;
  • Odpowiedzi interfejsu API dla metody channels.list nie zawierają już właściwości prevPageToken, jeśli żądanie API ustawia parametr managedByMe na true. Ta zmiana nie ma wpływu na właściwość prevPageToken w przypadku innych żądań channels.list ani na właściwość nextPageToken w przypadku żadnych żądań.
  • Właściwości contentDetails.relatedPlaylists.watchLater i contentDetails.relatedPlaylists.watchHistory zasobu channel zostały ogłoszone jako wycofane 11 sierpnia 2016 r. Obsługa tych list odtwarzania w przypadku metod playlistItems.insertplaylistItems.delete została w pełni wycofana, a te 2 właściwości zostały usunięte z dokumentacji.
  • Parametr mySubscribers metody channels.list, który został oznaczony jako nieaktualny 30 lipca 2013 r., został usunięty z dokumentacji. Użyj metody subscriptions.list i jej parametru mySubscribers, aby pobrać listę subskrybentów kanału uwierzytelnionego użytkownika.
  • Z dokumentacji usunięto obiekt invideoPromotion zasobu channel i wszystkie jego właściwości podrzędne, które zostały ogłoszone jako wycofane 27 listopada 2017 r..

29 lipca 2020 r.

Uprościliśmy proces naliczania limitu żądań do interfejsu API, usuwając dodatkowy koszt związany z parametrem part. Od tej chwili będziemy pobierać tylko koszt podstawowy wywoływanej metody. Więcej informacji o uproszczonym limicie znajdziesz tutaj.

W wyniku tej zmiany większość wywołań interfejsu API będzie miała nieco niższy koszt limitu, a niektóre wywołania interfejsu API będą nadal miały taki sam koszt. Ta zmiana nie zwiększa kosztów żadnych wywołań interfejsu API. Ogólnie rzecz biorąc, prawdopodobny efekt jest taki, że przydzielony limit, który można sprawdzić w konsoli Google Cloud, będzie wystarczał na dłużej.

Zdecydowanie zalecamy wszystkim deweloperom przeprowadzenie audytu zgodności w przypadku swoich projektów, aby zapewnić sobie dalszy dostęp do usług interfejsu API YouTube.

Ta pozycja w historii zmian została pierwotnie opublikowana 20 lipca 2020 r.

28 lipca 2020 r.

Wszystkie filmy przesłane za pomocą punktu końcowego videos.insert z niezweryfikowanych projektów API utworzonych po 28 lipca 2020 roku będą ograniczone do trybu wyświetlania prywatnego. Aby znieść to ograniczenie, każdy projekt musi przejść audyt w celu sprawdzenia zgodności z Warunkami korzystania z usługi.

Twórcy, którzy używają niezweryfikowanego klienta API do przesyłania filmów, otrzymają e-maila z informacją, że ich film został zablokowany jako prywatny i że mogą uniknąć tego ograniczenia, korzystając z oficjalnego lub sprawdzonego klienta.

Ta zmiana nie ma obecnie wpływu na projekty interfejsu API utworzone przed 28 lipca 2020 r. Zdecydowanie zalecamy jednak wszystkim deweloperom przeprowadzenie audytu zgodności w przypadku swoich projektów, aby zapewnić sobie dalszy dostęp do usług interfejsu API YouTube.

21 lipca 2020 r.

[Zaktualizowano 28 lipca 2020 r.] Aktualizacja dokumentacji, o której mowa w tym wpisie w historii zmian, została ponownie opublikowana 28 lipca 2020 r.

Wczoraj opublikowaliśmy aktualizację dokumentacji dotyczącą procesu naliczania limitu. Ze względu na nieprzewidziane okoliczności zmiana limitu nie została jeszcze wprowadzona. W związku z tym w celu zachowania dokładności przywróciliśmy dokumentację. Aby uniknąć nieporozumień, wpis w historii zmian wyjaśniający tę zmianę został usunięty i w najbliższej przyszłości zostanie opublikowany ponownie.

7 lipca 2020 r.

Uwaga: to jest ogłoszenie o wycofaniu.

Parametry autoLevelsstabilize metody videos.insert zostały wycofane i usunięte z dokumentacji. Ich wartości są ignorowane i nie mają wpływu na sposób przetwarzania nowo przesłanych filmów.

15 czerwca 2020 r.

Nowy przewodnik Zgodność z zasadami dla deweloperów YouTube zawiera wskazówki i przykłady, które pomogą Ci zadbać o to, aby Twoi klienci API przestrzegali określonych części Warunkówzasad usług YouTube API (Warunków korzystania z interfejsów API).

Te wskazówki zawierają informacje o tym, jak YouTube egzekwuje przestrzeganie niektórych aspektów Warunków korzystania z interfejsu API, ale nie zastępują żadnych istniejących dokumentów. W tym przewodniku znajdziesz odpowiedzi na niektóre z najczęstszych pytań, które deweloperzy zadają podczas sprawdzania zgodności interfejsu API. Mamy nadzieję, że uprości to proces tworzenia funkcji, ponieważ pomoże Ci zrozumieć, jak interpretujemy i egzekwujemy nasze zasady.

4 czerwca 2020 r.

Uwaga: to jest aktualizacja wcześniejszego powiadomienia o wycofaniu.

Funkcja biuletynu kanału została całkowicie wycofana. Ta zmiana została ogłoszona 17 kwietnia 2020 r. i weszła już w życie. W związku z tym metoda activities.insert nie jest już obsługiwana, a metoda activities.list nie zwraca już biuletynów kanału. Więcej informacji znajdziesz w Centrum pomocy YouTube.

17 kwietnia 2020 r.

Uwaga: to jest ogłoszenie o wycofaniu.

YouTube wycofuje funkcję biuletynu kanału. W związku z tym metoda activities.insert zostanie wycofana, a metoda activities.list przestanie zwracać biuletyny kanału. Zmiany te wejdą w życie w interfejsie API 18 maja 2020 r. lub później. Więcej informacji znajdziesz w Centrum pomocy YouTube.

31 marca 2020 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowe zasoby i metody

    • Nowy zasób member reprezentuje wspierającego kanał w YouTube. Wspierający zapewnia twórcy regularne wsparcie finansowe i otrzymuje specjalne bonusy. Wspierający mogą na przykład czatować, gdy twórca włączy tryb czatu tylko dla wspierających.

      Zastępuje on zasób sponsor, który jest opisany w dokumentacji YouTube Live Streaming API. Zasób sponsor jest teraz wycofany, więc klienci interfejsu API powinni zaktualizować wywołania metody sponsors.list, aby zamiast niej używać metody members.list.

    • Nowy zasób membershipsLevel określa poziom cen zarządzany przez twórcę, który autoryzował żądanie interfejsu API. Metoda membershipsLevels.list pobiera listę wszystkich poziomów członkostwa twórcy.

10 stycznia 2020 r.

Interfejs API obsługuje teraz możliwość identyfikowania treści skierowanych do dzieci, które YouTube określa jako „przeznaczone dla dzieci”. Więcej informacji o treściach „przeznaczonych dla dzieci” znajdziesz w Centrum pomocy YouTube.

Zasoby channelvideo obsługują 2 nowe właściwości, które umożliwiają twórcom i widzom identyfikowanie treści przeznaczonych dla dzieci:

  • Właściwość selfDeclaredMadeForKids umożliwia twórcom treści określenie, czy kanał lub film są przeznaczone dla dzieci.

    W przypadku kanałów tę właściwość można ustawić podczas wywoływania metody channels.update. W przypadku filmów tę właściwość można ustawić podczas wywoływania metod videos.insert lub videos.update.

    Pamiętaj, że ta właściwość jest uwzględniana tylko w odpowiedziach interfejsu API, które zawierają zasoby channel lub video, jeśli właściciel kanału autoryzował żądanie interfejsu API.
  • Właściwość madeForKids umożliwia każdemu użytkownikowi pobranie stanu „przeznaczone dla dzieci” kanału lub filmu. Na przykład stan może być określany na podstawie wartości właściwości selfDeclaredMadeForKids. Więcej informacji o określaniu odbiorców kanału, filmów lub transmisji znajdziesz w Centrum pomocy YouTube.

Zaktualizowaliśmy też Warunki korzystania z usług YouTube API oraz zasady dla deweloperów. Więcej informacji znajdziesz w historii zmian Warunków korzystania z usług YouTube API. Zmiany w Warunkach korzystania z usług YouTube API i Zasadach dla deweloperów wejdą w życie 10 stycznia 2020 roku czasu pacyficznego.

10 września 2019 r.

Zaktualizowaliśmy dokumentację interfejsu API, aby odzwierciedlała zmianę sposobu raportowania liczby subskrybentów w YouTube, a co za tym idzie, w odpowiedziach interfejsu API. W wyniku tej zmiany liczba subskrybentów zwracana przez usługę YouTube Data API jest zaokrąglana w dół do 3 cyfr znaczących, jeśli liczba subskrybentów jest większa niż 1000. Ta zmiana wpływa na właściwość statistics.subscriberCount zasobu channel.

Uwaga: ta zmiana wpływa na wartość tej właściwości nawet w przypadkach, gdy użytkownik wysyła autoryzowane żądanie danych o własnym kanale. Właściciele kanałów nadal mogą sprawdzać dokładną liczbę subskrybentów w YouTube Studio.

Jeśli na przykład kanał ma 123 456 subskrybentów, właściwość statistics.subscriberCount będzie zawierać wartość 123000. W tabeli poniżej znajdziesz przykłady zaokrąglania liczby subskrybentów w odpowiedziach API i skracania jej w innych interfejsach użytkownika YouTube widocznych publicznie:

Przykładowa liczba subskrybentów YouTube Data API Publicznie widoczne interfejsy YouTube
1234 1230 1,23 tys.
12 345 12300 12,3 tys.
123 456 123000 123 tys.
1,234,567 1230000 1,23 mln
12 345 678 12300000 12,3 mln
123 456 789 123000000 123 mln

4 kwietnia 2019 r.

Ta aktualizacja zawiera następujące zmiany:

  • Dokumentacja interfejsu API została zaktualizowana, aby lepiej wyjaśniać typowe przypadki użycia każdej metody i zapewniać dynamiczne, wysokiej jakości przykłady kodu za pomocą widżetu Eksplorator interfejsów API. Przykład znajdziesz w dokumentacji metody channels.list. Na stronach opisujących metody interfejsu API pojawiły się 2 nowe elementy:

    • Widżet Eksplorator interfejsów API umożliwia wybieranie zakresów autoryzacji, wpisywanie przykładowych wartości parametrów i właściwości, a następnie wysyłanie rzeczywistych żądań interfejsu API i wyświetlanie rzeczywistych odpowiedzi interfejsu API. Widżet oferuje też widok pełnoekranowy, w którym wyświetlane są kompletne przykłady kodu. Są one dynamicznie aktualizowane, aby używać zakresów i wartości, które zostały przez Ciebie wpisane.

    • W sekcji Typowe przypadki użycia znajdziesz opis co najmniej jednego typowego przypadku użycia metody wyjaśnionej na stronie. Możesz na przykład wywołać metodę channels.list, aby pobrać dane o konkretnym kanale lub o kanale bieżącego użytkownika.

      Możesz użyć linków w tej sekcji, aby wypełnić Eksplorator interfejsów API przykładowymi wartościami dla Twojego przypadku użycia lub otworzyć Eksplorator interfejsów API na pełnym ekranie z już wypełnionymi wartościami. Te zmiany mają ułatwić Ci znajdowanie przykładów kodu, które można bezpośrednio zastosować w przypadku użycia, który chcesz wdrożyć we własnej aplikacji.

    Przykładowe fragmenty kodu są obecnie obsługiwane w przypadku języków Java, JavaScript, PHP, Python i curl.

  • Zaktualizowaliśmy też narzędzie przykłady kodu, które ma nowy interfejs użytkownika i oferuje wszystkie opisane powyżej funkcje. Za pomocą tego narzędzia możesz poznawać przypadki użycia różnych metod, wczytywać wartości do narzędzia APIs Explorer i otwierać je w trybie pełnoekranowym, aby uzyskać przykłady kodu w językach Java, JavaScript, PHP i Python.

    W związku z tą zmianą usunęliśmy strony, na których wcześniej były dostępne przykłady kodu w językach Java, JavaScript, PHP i Python.

  • Zaktualizowaliśmy krótkie przewodniki po językach Java, JavaScript, PHPPython. W zaktualizowanych przewodnikach wyjaśniamy, jak uruchomić jeden przykład z kluczem interfejsu API, a drugi z identyfikatorem klienta OAuth 2.0, korzystając z przykładowego kodu z narzędzia APIs Explorer.

Pamiętaj, że opisane powyżej zmiany zastępują interaktywne narzędzie, które zostało dodane do dokumentacji interfejsu API w 2017 roku.

9 lipca 2018 r.

Ta aktualizacja zawiera następujące zmiany:

  • Zaktualizowaliśmy definicję właściwości snippet.thumbnails zasobu channel, aby zaznaczyć, że podczas wyświetlania miniatur w aplikacji kod powinien używać adresów URL obrazów dokładnie w takiej postaci, w jakiej są one zwracane w odpowiedziach interfejsu API. Na przykład w adresie URL zwróconym w odpowiedzi interfejsu API aplikacja nie powinna używać domeny http zamiast domeny https.

    Od lipca 2018 r. adresy URL miniatur kanałów będą dostępne tylko w domenie https, czyli tak, jak pojawiają się w odpowiedziach interfejsu API. Po tym czasie w aplikacji mogą pojawiać się uszkodzone obrazy, jeśli próbuje ona wczytać obrazy z YouTube z domeny http.

  • Uwaga: to jest ogłoszenie o wycofaniu.

    Właściwość recordingDetails.location.altitude zasobu video została wycofana. Nie gwarantujemy, że filmy będą zwracać wartości dla tej właściwości. Podobnie nawet jeśli żądania interfejsu API próbują ustawić wartość tej właściwości, przychodzące dane mogą nie zostać zapisane.

22 czerwca 2018 r.

Przewodnik po implementacji, wcześniej znany jako Przewodnik po implementacji i migracji, został zaktualizowany i nie zawiera już instrukcji migracji z interfejsu API w wersji 2 na interfejs API w wersji 3. Usunęliśmy też instrukcje dotyczące funkcji, które zostały wycofane w interfejsie API w wersji 3, np. ulubionych filmów.

27 listopada 2017 r.

Ta aktualizacja zawiera następujące zmiany:

  • Uwaga: to jest ogłoszenie o wycofaniu.

    YouTube wycofuje obsługę funkcji Polecany film i Polecana witryna, które są obsługiwane w interfejsie API za pomocą obiektu invideoPromotion zasobu channel. W rezultacie ten obiekt, w tym wszystkie jego właściwości podrzędne, zostanie wycofany.

    Dane invideoPromotion możesz pobierać i ustawiać do 14 grudnia 2017 r. Po tej dacie:

    • Próby pobrania części invideoPromotion podczas wywoływania funkcji channels.list zwrócą pustą wartość invideoPromotion lub nie zwrócą żadnych danych invideoPromotion.
    • Próby aktualizacji danych invideoPromotion podczas wywoływania funkcji channels.update będą zwracać odpowiedź o powodzeniu co najmniej do 27 maja 2018 r., ale będą traktowane jako operacje bez efektu, co oznacza, że nie będą faktycznie aktualizować danych.

    Po 27 maja 2018 r. te żądania mogą zwracać komunikaty o błędach, np. informujące, że invalidPromotion jest nieprawidłową częścią.

16 listopada 2017 r.

Ta aktualizacja zawiera następujące zmiany:

  • Interaktywne narzędzie do fragmentów kodu obsługuje teraz przykładowy kod w Node.js. Przykłady są też widoczne w dokumentacji niemal wszystkich metod interfejsu API, np. channels.list.

    Przykłady z możliwością dostosowania mają na celu zapewnienie punktu wyjścia dla aplikacji Node.js w konkretnych przypadkach użycia. Działanie tej funkcji jest podobne do kodu w przewodniku po Node.js. Przykłady zawierają jednak pewne funkcje narzędziowe, które nie występują w przewodniku:

    • Funkcja removeEmptyParameters przyjmuje listę par klucz-wartość odpowiadających parametrom żądania interfejsu API i usuwa parametry, które nie mają wartości.
    • Funkcja createResource przyjmuje listę par klucz-wartość odpowiadających właściwościom w zasobie interfejsu API. Następnie przekształca właściwości w obiekt JSON, który można wykorzystać w operacjach insertupdate. Poniższy przykład przedstawia zestaw nazw i wartości właściwości oraz obiekt JSON, który zostałby utworzony przez kod:
      # Key-value pairs:
      {'id': 'ABC123',
       'snippet.title': 'Resource title',
       'snippet.description': 'Resource description',
       'status.privacyStatus': 'private'}
      
      # JSON object:
      {
       'id': 'ABC123',
       'snippet': {
         'title': 'Resource title',
         'description': 'Resource description',
       },
       'status': {
         'privacyStatus': 'private'
       }
      }

    Wszystkie te przykłady można pobrać i uruchomić lokalnie. Więcej informacji znajdziesz w instrukcjach narzędzia do fragmentów kodu w sekcji dotyczącej wymagań wstępnych uruchamiania pełnych przykładów kodu lokalnie.

25 października 2017 r.

Ta aktualizacja zawiera następujące zmiany:

  • Przykłady kodu w Pythonie w narzędziu do interaktywnych fragmentów kodu zostały zaktualizowane, aby korzystać z bibliotek google-authgoogle-auth-oauthlib zamiast biblioteki oauth2client, która jest obecnie wycofana.

    Oprócz tej zmiany narzędzie udostępnia teraz pełne przykłady kodu dla zainstalowanych aplikacji w Pythonie i aplikacji serwera WWW w Pythonie, które korzystają z nieco innych procesów autoryzacji. Aby zobaczyć pełne przykłady (i tę zmianę):

    1. Otwórz interaktywne narzędzie do tworzenia fragmentów kodu lub dokumentację dowolnej metody interfejsu API, np. metody channels.list.
    2. Kliknij kartę Python nad przykładowymi fragmentami kodu.
    3. Kliknij przełącznik nad kartami, aby przełączyć się z wyświetlania fragmentu na pełną próbkę.
    4. Na karcie powinien być teraz widoczny kompletny przykładowy kod, który korzysta z procesu autoryzacji InstalledAppFlow. Wyjaśnia to opis nad przykładem, który zawiera też link do przykładu aplikacji serwera internetowego.
    5. Kliknij link, aby przejść do przykładu serwera internetowego. W tym przykładzie używana jest platforma Flask i inny proces autoryzacji.

    Wszystkie te przykłady można pobrać i uruchomić lokalnie. Jeśli chcesz uruchomić przykłady, zapoznaj się z instrukcjami uruchamiania pełnych przykładów kodu lokalnie w instrukcjach narzędzia do fragmentów kodu.

29 sierpnia 2017 r.

Ta aktualizacja zawiera następujące zmiany:

  • Zaktualizowaliśmy definicję parametru forContentOwner metody search.list, aby zaznaczyć, że jeśli ten parametr ma wartość true, parametr type musi mieć wartość video.
  • Zaktualizowaliśmy definicję parametru regionCode metody search.list, aby wyjaśnić, że ogranicza on wyniki wyszukiwania do filmów, które można wyświetlić w określonym regionie.
  • YouTube zaktualizował logo i ikony marki. Nowe logo „developed with YouTube” można pobrać ze strony wskazówek dotyczących marki. Inne nowe logo i ikony YouTube są również widoczne na tej stronie i można je pobrać ze strony marki YouTube.

24 lipca 2017 r.

Ta aktualizacja zawiera następujące zmiany:

  • Dostępny jest nowy przewodnik po interfejsie YouTube Data API dla iOS. Z tego przewodnika dowiesz się, jak używać interfejsu YouTube Data API w prostej aplikacji na iOS napisanej w języku Objective-C lub Swift.
  • Interaktywne narzędzie do tworzenia fragmentów kodu dla interfejsu YouTube Data API zawiera teraz dokumentację wyjaśniającą niektóre funkcje narzędzia:
    • Wykonywanie żądań do interfejsu API
    • przełączanie między fragmentami kodu a pełnymi przykładami kodu;
    • Korzystanie z funkcji standardowych
    • Wczytywanie istniejących zasobów (w przypadku metod aktualizacji)

    Uwaga: narzędzie jest też osadzone w dokumentacji interfejsu API dotyczącej metod interfejsu API (przykład).

1 czerwca 2017 r.

Ta aktualizacja zawiera następujące zmiany:

17 maja 2017 roku

Ta aktualizacja zawiera następujące zmiany:

  • Zaktualizowaliśmy dokumentację interfejsu API, aby fragmenty kodu były bardziej powszechne i interaktywne. Strony z wyjaśnieniami metod API, takie jak channels.list czy videos.rate, zawierają teraz interaktywne narzędzie, które umożliwia wyświetlanie i dostosowywanie fragmentów kodu w językach Java, JavaScript, PHP, Python, Ruby, Apps Script i Go.

    W przypadku każdej metody narzędzie wyświetla fragmenty kodu dla co najmniej 1 przypadku użycia. Każdy przypadek użycia opisuje typowy sposób wywoływania danej metody. Możesz na przykład wywołać metodę channels.list, aby pobrać dane o konkretnym kanale lub o kanale bieżącego użytkownika.

    Możesz też wchodzić w interakcje z przykładowymi kodami:

    • Zmieniaj wartości parametrów i właściwości, a fragmenty kodu będą się dynamicznie aktualizować, aby odzwierciedlać podane przez Ciebie wartości.

    • Przełączaj się między fragmentami kodu a pełnymi przykładami. Fragment kodu pokazuje część kodu, która wywołuje metodę interfejsu API. Pełny przykład zawiera ten fragment kodu, a także kod standardowy do autoryzowania i wysyłania żądań. Pełne przykłady można kopiować i uruchamiać z poziomu wiersza poleceń lub lokalnego serwera internetowego.

    • Wykonywanie żądań przez kliknięcie przycisku. (Aby wykonywać żądania, musisz autoryzować narzędzie do wywoływania interfejsu API w Twoim imieniu).

    Pamiętaj, że to narzędzie zastąpiło narzędzie APIs Explorer na stronach, na których jest dostępne. (Na każdej stronie znajduje się link, dzięki któremu możesz też wczytać żądanie, nad którym pracujesz, w narzędziu APIs Explorer).

  • Narzędzie Fragmenty kodu interfejsu Data API zostało zaktualizowane i ma nowy interfejs użytkownika, który oferuje wszystkie opisane powyżej funkcje. Główne nowe funkcje dostępne na tej stronie to:

    • Obsługa żądań do interfejsu API, które zapisują dane.
    • Obsługa przykładowych kodów w Javie.
    • Bardziej elastyczny i kompleksowy kod szablonowy do autoryzowania użytkowników i tworzenia żądań do interfejsu API.

27 kwietnia 2017 r.

Ta aktualizacja zawiera następujące zmiany:

30 marca 2017 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowa właściwość topicDetails.topicCategories[] zasobu channel zawiera listę adresów URL Wikipedii, które opisują tematykę kanału. Adresy URL odpowiadają identyfikatorom tematów zwróconym we właściwości topicDetails.topicIds[] zasobu.
  • Nowa właściwość contentDetails.videoPublishedAt zasobu playlistItem określa czas opublikowania filmu w YouTube. Zasób zawiera już właściwość snippet.publishedAt, która określa czas dodania elementu do playlisty.
  • Podobnie jak zasób channel, zasób video zwraca teraz właściwość topicDetails.topicCategories[], która zawiera listę adresów URL w Wikipedii opisujących treść filmu. W przypadku zasobów video adresy URL odpowiadają identyfikatorom tematów zwracanym we właściwości topicDetails.relevantTopicIds[] zasobu.
  • Nowa właściwość contentDetails.contentRating.mpaatRating zasobu video określa ocenę, jaką Motion Picture Association of America przyznała zwiastunowi lub zapowiedzi filmu.

27 lutego 2017 r.

Jak ogłosiliśmy 11 sierpnia 2016 r., YouTube zmienił listę obsługiwanych identyfikatorów tematów na listę wyselekcjonowaną. Pełna lista obsługiwanych identyfikatorów tematów znajduje się we właściwościach topicDetails zasobów channelvideo oraz w parametrze topicId metody search.list.

Zwróć uwagę, że na liście wyselekcjonowanej wprowadzono kilka zmian:

  • Te tematy zostały dodane jako podtematy tematu Society:
    Nazwaidentyfikator tematu,
    Firma/m/09s1f
    Zdrowie/m/0kt51
    Wojsko/m/01h6rj
    Polityka/m/05qt0
    Religia/m/06bvp
  • Temat Animated cartoon, który był wcześniej podrzędny względem tematu Entertainment, został usunięty.
  • Temat Children's music, który był wcześniej podrzędny względem tematu Music, został usunięty.

W wyniku tej zmiany tematy związane z filmem są teraz zawsze zwracane w wartości właściwości topicDetails.relevantTopicIds[] zasobu video.

29 listopada 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • 10 lutego 2017 r. wprowadzimy 3 niewielkie zmiany na liście identyfikatorów tematów, które będą obsługiwane:

    • Kategoria Professional wrestling, która wcześniej była podrzędna w stosunku do kategorii Sports, jest teraz podrzędna w stosunku do kategorii Entertainment.
    • Kategoria TV shows, która jest elementem podrzędnym w Entertainment, jest nowa.
    • Kategoria Health, która była wcześniej podrzędna względem kategorii Lifestyle, została usunięta.

    Pamiętaj też, że istnieje kilka kategorii nadrzędnych (Entertainment, Gaming, Lifestyle, MusicSports). Każdy film powiązany z kategorią podrzędną, np. Tennis, będzie też powiązany z kategorią nadrzędną (Sports).

10 listopada 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Jak poinformowaliśmy po raz pierwszy 11 sierpnia 2016 r., wycofanie Freebase i Freebase API wymaga wprowadzenia kilku zmian związanych z identyfikatorami tematów. Identyfikatory tematów określają tematy powiązane z zasobami channelvideo. Możesz też użyć parametru wyszukiwania topicId, aby znaleźć kanały lub filmy związane z określonym tematem.

    10 lutego 2017 r. YouTube zacznie zwracać niewielki zestaw identyfikatorów tematów zamiast znacznie bardziej szczegółowego zestawu identyfikatorów zwracanego do tej pory. Pamiętaj też, że nie ma gwarancji, że kanały i filmy będą powiązane z jakimikolwiek tematami. Jest to zgodne z obecnym działaniem interfejsu API.

    Aby umożliwić Ci przygotowanie klientów interfejsu API na te zmiany, zaktualizowaliśmy definicje tych parametrów i właściwości interfejsu API, aby uwzględnić identyfikatory tematów, które będą obsługiwane po tym czasie. Lista kategorii jest taka sama w przypadku wszystkich usług.

  • Uwaga: to jest ogłoszenie o wycofaniu.

    Te właściwości są wycofywane:

    • Właściwość topicDetails.topicIds[] zasobu channel. Ta usługa będzie obsługiwana do 10 listopada 2017 r.
    • Właściwość topicDetails.relevantTopicIds[] zasobu video. Ta usługa będzie obsługiwana do 10 listopada 2017 r.
    • Właściwość topicDetails.topicIds[] zasobu video. Po 10 lutego 2017 r. ta właściwość nie będzie zawierać wartości. (Po tej dacie wartość właściwości topicDetails.relevantTopicIds[] będzie identyfikować wszystkie tematy powiązane z filmem).
  • Freebase zostało już wycofane, więc przewodnik Wyszukiwanie za pomocą tematów Freebase został usunięty z dokumentacji. W tym przewodniku znajdowały się przykłady kodu pokazujące, jak aplikacja może współpracować z Freebase API.

    Dodatkowo z dokumentacji metody search.list usunęliśmy kilka przykładowych kodów związanych z identyfikatorami tematów.

2 listopada 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowe właściwości i parametry

    • Zasób video zawiera kilka nowych właściwości:

      • Właściwość player.embedHtml zawiera tag <iframe>, za pomocą którego możesz umieścić odtwarzacz odtwarzający film. Nowe właściwości player.embedHeightplayer.embedWidth określają wymiary odtwarzacza osadzonego. Te właściwości są zwracane tylko wtedy, gdy żądanie do interfejsu API zawiera wartość co najmniej jednego z parametrów maxHeight lub maxWidth. Te 2 nowe parametry zostały opisane w dalszej części tego wpisu w historii zmian.

      • Nowa właściwość hasCustomThumbnail wskazuje, czy osoba przesyłająca film udostępniła niestandardową miniaturę filmu. Pamiętaj, że ta właściwość jest widoczna tylko dla osoby, która przesłała film.

      • Nowy tag fpbRatingReasons[] wskazuje przyczyny, dla których film otrzymał ocenę FPB (RPA).

      • Nowy tag mcstRating określa ocenę, jaką otrzymał film w Wietnamie.

    • Metoda videos.list obsługuje 2 nowe parametry: maxHeightmaxWidth. Podczas pobierania części player w zasobach video możesz użyć jednego lub obu tych parametrów.

      Domyślnie wysokość <iframe> zwracana we właściwości player.embedHtml wynosi 360 pikseli. Szerokość dostosowuje się do proporcji filmu, dzięki czemu w odtwarzaczu nie pojawiają się czarne paski po bokach. Jeśli na przykład proporcje obrazu filmu to 16:9, szerokość odtwarzacza wyniesie 640 pikseli.

      Dzięki nowym parametrom możesz określić, że zamiast domyślnych wymiarów kod osadzania ma używać wysokości lub szerokości odpowiedniej dla układu aplikacji. Serwer interfejsu API odpowiednio skaluje wymiary odtwarzacza, aby osadzony odtwarzacz nie miał czarnych pasów wokół filmu. Pamiętaj, że oba parametry określają maksymalne wymiary odtwarzacza osadzonego. Jeśli więc oba parametry są określone, jeden z wymiarów może być mniejszy niż maksymalna dopuszczalna wartość.

      Załóżmy na przykład, że film ma format 16:9. Dlatego tag player.embedHtml będzie zawierać odtwarzacz o rozmiarze 640 x 360, jeśli parametr maxHeight lub maxWidth nie jest ustawiony.

      • Jeśli parametr maxHeight ma wartość 720, a parametr maxWidth nie jest ustawiony, interfejs API zwróci odtwarzacz o rozmiarze 1280 x 720.
      • Jeśli parametr maxWidth ma wartość 960, a parametr maxHeight nie jest ustawiony, interfejs API zwróci odtwarzacz o wymiarach 960 x 540.
      • Jeśli parametr maxWidth ma wartość 960, a parametr maxHeight ma wartość 450, interfejs API zwróci odtwarzacz o wymiarach 800x450.

      Nowe właściwości player.embedHeightplayer.embedWidth, które zostały opisane powyżej, określają wymiary odtwarzacza.

  • Aktualizacje dotychczasowych metod, właściwości i parametrów

    • W opisie zasobu channelSection dodaliśmy informację, że kanał może utworzyć maksymalnie 10 półek bez ustawiania danych kierowania i maksymalnie 100 półek z danymi kierowania.

      Dodatkowo właściwość targeting zasobu channelSection została zaktualizowana, aby odzwierciedlać fakt, że opcje kierowania można ustawiać tylko za pomocą interfejsu API. Opcje kierowania są usuwane, jeśli sekcja kanału zostanie zmodyfikowana w interfejsie na stronie YouTube.

    • Definicja właściwości snippet.name zasobu i18nLanguage została poprawiona, aby odzwierciedlała fakt, że wartość reprezentuje nazwę języka w języku określonym przez parametr hl metody i18nLanguage.list.

    • Właściwość contentDetails.note zasobu playlistItem została zaktualizowana, aby uwzględnić informację, że maksymalna długość wartości właściwości to 280 znaków.

    • Właściwości contentDetails.startAtcontentDetails.endAt zasobu playlistItem zostały wycofane. Te pola są ignorowane, jeśli są ustawione w żądaniach playlistItems.insert lub playlistItems.update.

    • Metody playlistItems.deleteplaylistItems.update obsługują teraz parametr onBehalfOfContentOwner, który jest już obsługiwany w przypadku kilku innych metod. Żądania korzystające z tej metody muszą być też autoryzowane za pomocą tokena, który zapewnia dostęp do zakresu https://www.googleapis.com/auth/youtubepartner.

    • Parametry publishedBeforepublishedAfter metody search.list zostały zaktualizowane, aby wskazywać, że wartości parametrów są włączone. Jeśli na przykład ustawisz parametr publishedBefore, interfejs API zwróci zasoby utworzone przed podanym czasem lub w tym czasie.

    • Właściwość contentDetails.contentRating.grfilmRating zasobu video obsługuje 3 dodatkowe wartości: grfilmK12, grfilmK15grfilmK18.

    • Zaktualizowaliśmy opis metody videos.insert, aby poinformować, że maksymalny rozmiar przesyłanych filmów wzrósł z 64 GB do 128 GB.

  • Nowe i zaktualizowane błędy

    • Interfejs API obsługuje te nowe błędy:

      Typ błędu Szczegóły błędu Opis
      forbidden (403) homeParameterDeprecated Metoda activities.list zwraca ten błąd, aby wskazać, że dane o aktywności użytkownika na stronie głównej nie są dostępne w tym interfejsie API. Ten błąd może wystąpić, jeśli w nieautoryzowanym żądaniu ustawisz parametr home na true.
      invalidValue (400) invalidContentDetails Metoda playlistItems.insert zwraca ten błąd, aby wskazać, że obiekt contentDetails w żądaniu jest nieprawidłowy. Ten błąd może wystąpić, jeśli pole contentDetails.note ma więcej niż 280 znaków.
      forbidden (403) watchHistoryNotAccessible Metoda playlistItems.list zwraca ten błąd, aby wskazać, że żądanie próbowało pobrać elementy listy odtwarzania „Historia oglądania”, ale nie można ich pobrać za pomocą interfejsu API.
      forbidden (403) watchLaterNotAccessible Metoda playlistItems.list zwraca ten błąd, aby wskazać, że żądanie próbowało pobrać elementy z listy odtwarzania „Obejrzyj później”, ale nie można ich pobrać za pomocą interfejsu API.
      badRequest (400) uploadLimitExceeded Metoda videos.insert zwraca ten błąd, aby wskazać, że kanał przekroczył liczbę filmów, które może przesłać.
      forbidden (403) forbiddenEmbedSetting Metoda videos.update zwraca ten błąd, aby wskazać, że żądanie interfejsu API próbuje ustawić nieprawidłowe ustawienie umieszczania filmu. Pamiętaj, że niektóre kanały mogą nie mieć uprawnień do oferowania odtwarzaczy umieszczonych na innych stronach w przypadku transmisji na żywo. Więcej informacji znajdziesz w Centrum pomocy YouTube.
    • Metoda playlistItems.insert nie zwraca już błędu, jeśli wstawisz zduplikowany film na playlistę. Ten błąd występował wcześniej w przypadku niektórych playlist, np. ulubionych filmów, które nie zezwalały na duplikaty, ale nie są już obsługiwane. Ogólnie rzecz biorąc, playlisty mogą zawierać duplikaty filmów.

  • Inne aktualizacje

    • Wpis w historii zmian z 15 września 2016 r. został zaktualizowany, aby wyjaśnić, że gdy w odpowiedzi są uwzględnione właściwości channel zasobu contentDetails.relatedPlaylists.watchHistorycontentDetails.relatedPlaylists.watchLater, zawsze zawierają one odpowiednio wartości HLWL. Co więcej, te właściwości są uwzględniane tylko wtedy, gdy autoryzowany użytkownik pobiera dane o własnym kanale.

15 września 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • W aktualizacji historii zmian z 11 sierpnia 2016 r. omówiliśmy kilka zmian związanych z identyfikatorami tematów, w tym fakt, że od 10 lutego 2017 r. zmieni się zbiór obsługiwanych identyfikatorów tematów. Lista tematów, które będą obsługiwane, zostanie opublikowana do 10 listopada 2016 r.

  • Te zmiany zostały już wprowadzone. Informacja o tych zmianach została podana w historii zmian z 11 sierpnia 2016 roku:

    • Jeśli metoda activities.list zostanie wywołana z parametrem home ustawionym na true, odpowiedź interfejsu API będzie teraz zawierać elementy podobne do tych, które niezalogowany użytkownik YouTube widzi na stronie głównej.

      Jest to niewielka zmiana, która ma na celu zwiększenie komfortu użytkowników w porównaniu z zachowaniem opisanym w historii zmian z 11 sierpnia 2016 r. W tym komunikacie informowaliśmy, że żądania używające parametru home będą zwracać pustą listę.

    • Właściwości contentDetails.relatedPlaylists.watchHistorycontentDetails.relatedPlaylists.watchLater zasobu channel zawierają teraz odpowiednio wartości HLWL dla wszystkich kanałów.

      Wyjaśniamy, że te właściwości są widoczne tylko dla autoryzowanego użytkownika, który pobiera dane o własnym kanale. Właściwości zawsze zawierają wartości HLWL, nawet w przypadku autoryzowanego użytkownika pobierającego dane o własnym kanale. Dlatego identyfikatorów historii oglądania i playlisty Do obejrzenia nie można pobrać za pomocą interfejsu API.

      Dodatkowo żądania pobrania szczegółów playlisty (playlists.list) lub elementów playlisty (playlistItems.list) z historii oglądania lub playlisty Do obejrzenia na kanale zwracają teraz puste listy. Dotyczy to nowych wartości HLWL, a także wszystkich identyfikatorów historii oglądania lub listy „Obejrzyj później”, które Twój klient API mógł już zapisać.

  • Obiekt fileDetails.recordingLocation zasobu video i jego właściwości podrzędne nie są już zwracane. Wcześniej te dane (np. obiekt nadrzędny fileDetails) mógł pobrać tylko właściciel filmu.

11 sierpnia 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowe Warunki korzystania z usług YouTube API („zaktualizowane warunki”), które zostały szczegółowo omówione na blogu YouTube Engineering and Developers, zawierają wiele aktualizacji obecnych Warunków korzystania z usługi. Oprócz zaktualizowanych warunków, które wejdą w życie 10 lutego 2017 r., ta aktualizacja obejmuje kilka dokumentów pomocniczych, które wyjaśniają zasady, których deweloperzy muszą przestrzegać.

    Pełny zestaw nowych dokumentów opisano w historii zmian zaktualizowanych Warunków. Ponadto w historii zmian będą wyjaśniane przyszłe zmiany Zaktualizowanych warunków lub dokumentów pomocniczych. Możesz zasubskrybować kanał RSS z listą zmian w historii wersji, korzystając z linku w tym dokumencie.

  • Wycofanie Freebase i interfejsu Freebase API powoduje kilka zmian związanych z identyfikatorami tematów. Identyfikatory tematów są używane w tych zasobach i metodach interfejsu API:

    • Część topicDetails zasobu channel określa tematy powiązane z kanałem.
    • Część topicDetails zasobu video określa tematy powiązane z filmem.
    • Parametr topicId metody search.list umożliwia wyszukiwanie filmów lub kanałów związanych z określonym tematem.

    Zmiany w tych funkcjach:

    • Od 10 lutego 2017 r. YouTube zacznie zwracać niewielki zestaw identyfikatorów tematów zamiast znacznie bardziej szczegółowego zestawu identyfikatorów zwracanego do tej pory. Ten zestaw obsługiwanych tematów będzie zawierać ogólne kategorie, takie jak Sport czy Koszykówka, ale nie będzie zawierać np. konkretnych drużyn czy zawodników. Ogłosimy listę obsługiwanych tematów, aby dać Ci czas na przygotowanie aplikacji do tej zmiany.

    • Wszystkie identyfikatory tematów Freebase, które zostały już pobrane, można wykorzystywać do wyszukiwania treści do 10 lutego 2017 r. Po tym czasie do pobierania wyników wyszukiwania według tematu będzie można używać tylko mniejszego zestawu tematów określonego w poprzednim punkcie.

    • Po 10 lutego 2017 r., jeśli spróbujesz wyszukać wyniki za pomocą identyfikatora tematu, którego nie ma w mniejszym zbiorze obsługiwanych identyfikatorów, interfejs API zwróci pusty zbiór wyników.

  • 12 września 2016 r. wycofujemy kilka pól i parametrów interfejsu API:

    • Parametr home metody activities.list umożliwiał upoważnionemu użytkownikowi pobranie kanału aktywności, który wyświetlałby się na stronie głównej YouTube. Żądania, które używają tego parametru po 12 września 2016 r., będą zwracać pustą listę.

    • Właściwości channel zasobu contentDetails.relatedPlaylists.watchHistorycontentDetails.relatedPlaylists.watchLater są widoczne tylko dla autoryzowanego użytkownika, który pobiera dane o własnym kanale. Po 12 września 2016 r. atrybut contentDetails.relatedPlaylists.watchHistory będzie zwracać wartość HL, a atrybut contentDetails.relatedPlaylists.watchLater będzie zwracać wartość WL we wszystkich kanałach.

      Żądania pobrania szczegółów playlisty (playlists.list) z historii oglądania lub listy Do obejrzenia na kanale będą zwracać pustą listę po 12 września 2016 r. Żądania pobrania elementów playlisty (playlistItems.list) z jednej z tych playlist również będą po tym czasie zwracać pustą listę. Dotyczy to nowych wartości HLWL, a także wszystkich identyfikatorów historii oglądania lub playlisty Do obejrzenia, które Twój klient interfejsu API mógł już zapisać.

    • Po 12 września 2016 r. obiekt fileDetails.recordingLocation zasobu video ani żadna z jego właściwości podrzędnych nie będą już zwracane. Te dane może pobrać tylko właściciel filmu, ponieważ obiekt nadrzędny fileDetails może być pobrany tylko przez właściciela filmu.

13 czerwca 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Właściwość contentDetails.googlePlusUserId zasobu channel została wycofana. Wcześniej ta właściwość była dostępna tylko wtedy, gdy kanał był powiązany z profilem Google+. Po wycofaniu ta właściwość nie będzie już uwzględniana w żadnych zasobach channel.

  • Właściwość snippet.authorGoogleplusProfileUrl zasobu comment została wycofana. Wcześniej ta właściwość była dostępna tylko wtedy, gdy kanał był powiązany z profilem Google+. Po wycofaniu ta właściwość nie będzie już uwzględniana w żadnych zasobach comment.

Po wycofaniu tych właściwości nie będą one zwracane, dlatego zostały usunięte z dokumentacji odpowiednich zasobów.

31 maja 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy parametr myRecentSubscribers metody subscriptions.list pobiera listę subskrybentów kanału uwierzytelnionego użytkownika w odwrotnej kolejności chronologicznej czasu, w którym zasubskrybowali oni kanał.

    Pamiętaj, że nowy parametr umożliwia pobranie tylko ostatnich 1000 subskrybentów kanału uwierzytelnionego użytkownika. Aby pobrać pełną listę subskrybentów, użyj parametru mySubscribers. Ten parametr, który nie zwraca subskrybentów w określonej kolejności, nie ogranicza liczby subskrybentów, których można pobrać.

  • Definicja właściwości snippet.thumbnails.(key) została zaktualizowana w przypadku zasobów activity, playlistItem, playlist, search result, thumbnail i video, aby zaznaczyć, że w przypadku niektórych filmów dostępne są dodatkowe rozmiary miniatur.

    • standard obraz ma szerokość 640 pikseli i wysokość 480 pikseli.
    • maxres obraz ma szerokość 1280 pikseli i wysokość 720 pikseli.
  • Zaktualizowaliśmy definicję parametru part metody channelSection.list, aby zaznaczyć, że część targeting można pobrać za cenę 2 jednostek limitu.

  • Metoda videos.list zwraca teraz błąd forbidden (403), gdy nieprawidłowo autoryzowane żądanie próbuje pobrać części fileDetails, processingDetails lub suggestions zasobu video. Te części są dostępne tylko dla właściciela filmu.

17 maja 2016 r.

Nowe narzędzie Fragmenty kodu interfejsu Data API zawiera krótkie fragmenty kodu dla typowych zastosowań interfejsu YouTube Data API. Obecnie dostępne są fragmenty kodu dla wszystkich metod interfejsu API tylko do odczytu w Apps Script, Go, JavaScript, PHP, Python i Ruby.

W przypadku każdej metody narzędzie wyświetla przykłady kodu dla co najmniej 1 przypadku użycia. Na przykład udostępnia 5 fragmentów kodu dla metody search.list:

  • Wyświetlanie filmów według słowa kluczowego
  • Wyświetlanie filmów według lokalizacji
  • Wyświetlanie listy wydarzeń na żywo
  • Wyszukiwanie filmów uwierzytelnionego użytkownika
  • Wyświetlanie listy powiązanych filmów

W przypadku każdego zastosowania narzędzie wyświetla parametry użyte w żądaniu do interfejsu API. Możesz modyfikować wartości parametrów. W takim przypadku narzędzie zaktualizuje fragmenty kodu, aby odzwierciedlały podane przez Ciebie wartości parametrów.

Na koniec narzędzie wyświetla odpowiedź interfejsu API na każde żądanie. Jeśli zmodyfikujesz parametry żądania, odpowiedź interfejsu API będzie oparta na podanych przez Ciebie wartościach parametrów. Pamiętaj, że aby wyświetlać odpowiedzi interfejsu API, musisz autoryzować narzędzie do przesyłania żądań w Twoim imieniu.

28 kwietnia 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowa właściwość contentDetails.projection zasobu video określa format projekcji filmu. Prawidłowe wartości właściwości to 360 i rectangular.

  • Właściwości recordingDetails.locationfileDetails.recordingLocation zasobu video zostały zaktualizowane, aby wyjaśnić różnicę między nimi:

    • Właściwość recordingDetails.location określa lokalizację, którą właściciel filmu chce powiązać z filmem. Tę lokalizację można edytować i wyszukiwać w publicznych filmach. Może ona być też wyświetlana użytkownikom w przypadku publicznych filmów.
    • Wartość właściwości fileDetails.recordingLocation jest niezmienna i reprezentuje lokalizację powiązaną z oryginalnym przesłanym plikiem wideo. Wartość jest widoczna tylko dla właściciela filmu.

  • Zaktualizowaliśmy definicję właściwości contentDetails.relatedPlaylists.favorites zasobu channel, aby uwzględnić informację, że wartość właściwości może zawierać identyfikator playlisty, która jest pusta i nie można jej pobrać. Wynika to z faktu, że funkcja ulubionych filmów została już wycofana. Pamiętaj, że ta właściwość nie podlega zasadom wycofywania interfejsu API.

  • Zaktualizowaliśmy definicję błędu ineligibleAccount, który może być zwracany przez metody comments.insert, comments.update, commentThreads.insert lub commentThreads.update. Błąd ten występuje, gdy konto YouTube użyte do autoryzacji żądania interfejsu API nie zostało połączone z kontem Google użytkownika.

20 kwietnia 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Zaktualizowaliśmy definicję parametru part metody channels.update, aby dodać informację, że localizations jest też prawidłową wartością tego parametru.

  • Sekcja Wykorzystanie limitu w przewodniku dla początkujących została zaktualizowana i zawiera teraz link do Google Developers Console, w której możesz sprawdzić swój rzeczywisty limit i jego wykorzystanie.

16 marca 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Aktualizacje istniejących zasobów i metod

    • Zaktualizowaliśmy dokumentację zasobu channelBanner, aby dodać informację, że zalecany rozmiar przesyłanego obrazu na baner kanału to 2560 x 1440 pikseli. Minimalny rozmiar (2048 x 1152 pikseli) nie uległ zmianie.

    • Nowa właściwość snippet.customUrl zasobu channel określa niestandardowy adres URL powiązany z kanałem. (Nie wszystkie kanały mają niestandardowe adresy URL). W Centrum pomocy YouTube znajdziesz informacje o wymaganiach, jakie musisz spełnić, aby uzyskać niestandardowy adres URL, oraz o tym, jak go skonfigurować.

    • Obiekt brandingSettings.watch zasobu channel i wszystkie jego usługi podrzędne zostały wycofane.

    • Odpowiedź interfejsu API na żądanie search.list zawiera teraz właściwość regionCode. Właściwość identyfikuje kod regionu, który został użyty w zapytaniu. Kod regionu informuje interfejs API, że ma zwracać wyniki wyszukiwania dla określonego kraju.

      Wartość właściwości to dwuliterowy kod kraju w standardzie ISO, który określa region. Metoda i18nRegions.list zwraca listę obsługiwanych regionów. (wartością domyślną jest US); Jeśli podasz nieobsługiwany region, YouTube może wybrać inny region zamiast wartości domyślnej, aby obsłużyć zapytanie.

    • Zaktualizowaliśmy definicje właściwości videoAbuseReportReason zasobu snippet.labelsnippet.secondaryReasons[].label, aby zaznaczyć, że zawierają one zlokalizowany tekst etykiety z przyczynami zgłoszenia nadużycia.

      Dodatkowo metoda videoAbuseReportReasons.list obsługuje teraz parametr hl, który określa język, w jakim ma być wyświetlany tekst etykiety w odpowiedzi interfejsu API. Domyślna wartość parametru to en_US.

    • Nowa właściwość contentDetails.contentRating.ecbmctRating zasobu video określa ocenę filmu przyznaną przez turecką Radę ds. Oceny i Klasyfikacji przy Ministerstwie Kultury i Turystyki.

      Dodatkowo właściwości interfejsu API dla innych systemów oceniania obsługują te nowe wartości właściwości:

      • contentDetails.contentRating.fpbRating (Republika Południowej Afryki)
        Ocena: 10; wartość właściwości: fpb10
      • contentDetails.contentRating.moctwRating (Tajwan)
        Ocena: R-12; wartość właściwości: moctwR12
      • contentDetails.contentRating.moctwRating (Tajwan)
        Ocena: R-15; wartość właściwości: moctwR15
    • Właściwość video zasobu liveStreamingDetails.activeLiveChatId zawiera identyfikator aktywnego czatu na żywo powiązanego z filmem. Wartość właściwości jest widoczna tylko wtedy, gdy film jest bieżącą transmisją na żywo z włączonym czatem na żywo. Po zakończeniu transmisji i czatu na żywo ta właściwość nie jest już zwracana w przypadku filmu.

    • Właściwość status.rejectionReason zasobu video obsługuje nową wartość właściwości legal.

  • Interfejs API obsługuje te nowe błędy:

    Typ błędu Szczegóły błędu Opis
    badRequest (400) notEditable Metody channelSections.insert, channelSections.update i channelSections.delete zwracają ten błąd, aby wskazać, że nie można utworzyć, zaktualizować ani usunąć określonej sekcji kanału.
    badRequest (400) styleRequired Metody channelSections.insertchannelSections.update zwracają ten błąd, aby wskazać, że zasób channelSection przesłany w żądaniu do interfejsu API musi zawierać wartość właściwości snippet.style.
    badRequest (400) typeRequired Metody channelSections.insertchannelSections.update zwracają ten błąd, aby wskazać, że zasób channelSection przesłany w żądaniu do interfejsu API musi zawierać wartość właściwości snippet.type.
    badRequest (400) processingFailure Metoda commentThreads.list zwraca ten błąd, aby wskazać, że serwer interfejsu API nie zdołał przetworzyć żądania. Może to być błąd tymczasowy, ale zwykle oznacza, że dane wejściowe żądania są nieprawidłowe. Sprawdź strukturę zasobu commentThread w treści żądania, aby upewnić się, że jest prawidłowa.
    forbidden (403) commentsDisabled Metoda commentThreads.list zwraca ten błąd, aby wskazać, że komentarze do filmu zidentyfikowanego przez parametr videoId są wyłączone.
    badRequest (400) commentTextTooLong Metoda commentThreads.insert zwraca ten błąd, aby wskazać, że wstawiany zasób comment zawiera zbyt wiele znaków we właściwości snippet.topLevelComment.snippet.textOriginal.
    invalidValue (400) videoAlreadyInAnotherSeriesPlaylist Metoda playlistItems.insert zwraca ten błąd, aby wskazać, że film, który próbujesz dodać do playlisty, jest już na innej playliście serialu. Więcej informacji o playlistach z serii znajdziesz w Centrum pomocy YouTube.
    badRequest (400) subscriptionForbidden Metoda subscriptions.insert zwraca ten błąd, aby wskazać, że osiągnięto maksymalną liczbę subskrypcji lub że utworzono zbyt wiele ostatnich subskrypcji. W tym drugim przypadku możesz ponowić prośbę po kilku godzinach.
    badRequest (400) invalidCategoryId Metoda videos.update zwraca ten błąd, aby wskazać, że właściwość snippet.categoryId w przesłanym zasobie video określa nieprawidłowy identyfikator kategorii. Aby pobrać obsługiwane kategorie, użyj metody videoCategories.list.
    badRequest (400) invalidDescription Metoda videos.update zwraca ten błąd, aby wskazać, że właściwość snippet.description w przesłanym zasobie video ma nieprawidłową wartość.
    badRequest (400) invalidPublishAt Metoda videos.update zwraca ten błąd, aby wskazać, że właściwość status.publishAt w przesłanym zasobie video określa nieprawidłowy zaplanowany czas publikacji.
    badRequest (400) invalidRecordingDetails Metoda videos.update zwraca ten błąd, aby wskazać, że obiekt recordingDetails w przesłanym zasobie video zawiera nieprawidłowe szczegóły nagrania.
    badRequest (400) invalidTags Metoda videos.update zwraca ten błąd, aby wskazać, że właściwość snippet.tags w przesłanym zasobie video ma nieprawidłową wartość.
    badRequest (400) invalidTitle Metoda videos.update zwraca ten błąd, aby wskazać, że właściwość snippet.title w przesłanym zasobie video zawiera nieprawidłowy lub pusty tytuł filmu.
    badRequest (400) invalidVideoMetadata Metoda videos.update zwraca ten błąd, aby wskazać, że metadane żądania są nieprawidłowe. Ten błąd występuje, jeśli żądanie aktualizuje część snippet zasobu video, ale nie ustawia wartości właściwości snippet.titlesnippet.categoryId.

18 grudnia 2015 r.

Przepisy Unii Europejskiej (UE) wymagają, aby użytkownicy w UE otrzymywali określone informacje i wyrażali zgodę na wykorzystanie danych. W związku z tym w przypadku użytkowników z Unii Europejskiej musisz przestrzegać polityki w zakresie zgody użytkownika z UE. Dodaliśmy informację o tym wymaganiu do Warunków korzystania z interfejsów API YouTube.

19 listopada 2015 r.

Interfejs API umożliwia teraz ustawianie i pobieranie zlokalizowanego tekstu dla właściwości snippet.titlesnippet.description zasobów playlistvideo, właściwości snippet.title zasobu channelSection oraz właściwości snippet.description zasobu channel.

  • Ustawianie tytułów i opisów w różnych językach

    Podczas wywoływania metody insert lub update dla danego zasobu możesz ustawić zlokalizowane wartości. Aby ustawić zlokalizowane wartości zasobu, wykonaj obie te czynności:

    • Sprawdź, czy dla właściwości snippet.defaultLanguage zasobu ustawiono wartość. Ta właściwość określa język właściwości snippet.titlesnippet.description zasobu. Jego wartością może być dowolny obsługiwany język aplikacji lub większość innych kodów języków w standardzie ISO 639-1:2002. Jeśli na przykład przesyłasz film z tytułem i opisem w języku angielskim, ustawisz właściwość snippet.defaultLanguage na en.

      Uwaga dotycząca aktualizowania zasobów channel: aby ustawić właściwość snippet.defaultLanguage dla zasobu channel, musisz zaktualizować właściwość brandingSettings.channel.defaultLanguage.

    • Dodaj obiekt localizations do aktualizowanego zasobu. Każdy klucz obiektu to ciąg znaków, który identyfikuje język aplikacji lub kod języka ISO 639-1:2002. Każdy klucz jest powiązany z obiektem zawierającym zlokalizowany tytuł (i opis) zasobu.

      Przykładowy fragment kodu poniżej ustawia domyślny język zasobu na angielski. Dodaje też do filmu zlokalizowane tytuły i opisy w języku niemieckim i hiszpańskim:

      {
        "kind": "youtube#video",
        ...
        "snippet": {
          "title": "Playing soccer",
          "description": "We play soccer in the park on Sundays.",
          "defaultLanguage": "en",
          ...
        },
        "localizations":
          "de": {
            "title": "Fußball spielen",
            "description": "Wir spielen Fußball im Park am Sonntag"
          },
          "es": {
            "title": "Jugar al fútbol",
            "description": "Nosotros jugamos fútbol en el parque los domingos",
          }
        }
      }
    • Ważne: pamiętaj, że podczas aktualizowania zlokalizowanych danych zasobu żądanie API musi zawierać wszystkie istniejące zlokalizowane wersje danych. Jeśli na przykład wyślesz kolejną prośbę o dodanie danych w języku portugalskim do filmu z powyższego przykładu, prośba będzie musiała zawierać zlokalizowane dane w języku niemieckim, hiszpańskim i portugalskim.

  • Pobieranie zlokalizowanych wartości

    Interfejs API obsługuje 2 sposoby pobierania zlokalizowanych wartości zasobu:

    • Dodaj parametr hl do żądania channels.list, channelSections.list, playlists.list lub videos.list, aby pobrać zlokalizowane dane dla konkretnego języka aplikacji obsługiwanego przez witrynę YouTube. Jeśli w tym języku dostępne są zlokalizowane szczegóły zasobu, obiekt snippet.localized zasobu będzie zawierać zlokalizowane wartości. Jeśli jednak zlokalizowane szczegóły nie są dostępne, obiekt snippet.localized będzie zawierać szczegóły zasobu w domyślnym języku zasobu.

      Załóżmy na przykład, że videos.list żądanie pobrało dane dotyczące opisanego powyżej filmu ze zlokalizowanymi danymi w języku niemieckim i hiszpańskim. Jeśli parametr hl miałby wartość de, zasób zawierałby te dane:

      {
        "kind": "youtube#video",
        ...
        "snippet": {
          "title": "Playing soccer",
          "description": "We play soccer in the park on Sundays.",
          "defaultLanguage": "en",
          "localized": {
            "title": "Fußball spielen",
            "description": "Wir spielen Fußball im Park am Sonntag"
          }
          ...
        }
      }

      Jeśli jednak parametr hl miałby wartość fr, obiekt snippet.localized zawierałby tytuł i opis w języku angielskim, ponieważ angielski jest domyślnym językiem zasobu, a zlokalizowane szczegóły w języku francuskim są niedostępne.

      Ważne: parametr hl obsługuje tylko wartości identyfikujące języki aplikacji, które są obsługiwane przez witrynę YouTube. Aby sprawdzić, czy zlokalizowany tekst jest dostępny w innych językach, musisz pobrać część localizations zasobu i odfiltrować wyniki, aby sprawdzić, czy zlokalizowany tekst istnieje.

      Na przykład musisz pobrać pełną listę lokalizacji, aby sprawdzić, czy zlokalizowany tekst jest dostępny w języku angielskim w regionie Appalachów.

    • Podczas pobierania zasobu uwzględnij localizations w wartości parametru part, aby pobrać wszystkie zlokalizowane szczegóły tego zasobu. Jeśli pobierasz zlokalizowane dane dla języka, który nie jest obecnym językiem aplikacji YouTube, musisz użyć tej metody, aby pobrać wszystkie lokalizacje, a następnie odfiltrować je, aby sprawdzić, czy istnieją żądane zlokalizowane dane.

  • Błędy związane z wartościami tekstu w różnych językach

    Interfejs API obsługuje też te nowe błędy dotyczące wartości tekstowych w różnych językach:

    Typ błędu Szczegóły błędu Opis
    badRequest (400) defaultLanguageNotSetError Ten błąd oznacza, że żądanie, które próbuje wstawić lub zaktualizować obiekt localizations dla zasobu, nie powiodło się, ponieważ dla tego zasobu nie ustawiono właściwości snippet.defaultLanguage. Ten błąd jest obsługiwany przez metody channels.update, channelSections.insert, channelSections.update, playlists.insert, playlists.update, videos.insertvideos.update.
    badRequest (400) localizationValidationError Ten błąd oznacza, że nie udało się zweryfikować jednej z wartości w obiekcie localizations zasobu. Ten błąd może wystąpić na przykład wtedy, gdy obiekt zawiera nieprawidłowy kod języka. Ten błąd jest obsługiwany przez metody channels.update, channelSections.insert, channelSections.update, playlists.insertplaylists.update.

4 listopada 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Aktualizacje istniejących zasobów i metod

    • W parametrze order metody search.list dodaliśmy informację, że jeśli posortujesz transmisje na żywo według parametru viewCount, wyniki interfejsu API będą posortowane według liczby widzów oglądających transmisje w tym samym czasie, gdy transmisje są jeszcze w toku.

    • W parametrze relatedToVideoId metody search.list dodaliśmy informację, że jeśli ten parametr jest ustawiony, jedynymi innymi obsługiwanymi parametrami są part, maxResults, pageToken, regionCode, relevanceLanguage, safeSearch, type (który musi mieć wartość video) i fields. Ta aktualizacja nie odzwierciedla zmiany w działaniu interfejsu API.

    • Zaktualizowaliśmy definicję właściwości video zasobu snippet.publishedAt, aby zaznaczyć, że wartość właściwości, która określa datę i godzinę opublikowania filmu, może być inna niż data i godzina przesłania filmu. Jeśli na przykład film zostanie przesłany jako prywatny, a później udostępniony publicznie, wartość właściwości określa czas, w którym film został udostępniony publicznie. Zaktualizowana definicja wyjaśnia też, jak ta wartość jest wypełniana w przypadku filmów prywatnych i niepublicznych.

      Ta zmiana nie odzwierciedla zmiany w działaniu interfejsu API.

    • Definicja właściwości status.publishAt zasobu video została zaktualizowana o tę informację:

      • Jeśli ustawisz wartość tej właściwości podczas wywoływania metody videos.update, musisz też ustawić wartość właściwości status.privacyStatus na private, nawet jeśli film jest już prywatny.
      • Jeśli w żądaniu zaplanowano publikację filmu w przeszłości, zostanie on opublikowany od razu. Dlatego ustawienie właściwości status.publishAt na datę i godzinę w przeszłości ma taki sam efekt jak zmiana privacyStatus filmu z private na public.
    • Właściwość contentDetails.contentRating.cncRating zasobu video określa ocenę filmu przyznaną przez francuską komisję Commission de classification cinematographique. Ta właściwość zastępuje właściwość contentDetails.contentRating.fmocRating, która została wycofana.

    • Definicja channel zasobu brandingSettings.channel.keywords została zaktualizowana, aby prawidłowo odzwierciedlać, że wartość właściwości zawiera listę ciągów znaków oddzielonych spacjami, a nie listę oddzieloną przecinkami, jak podano wcześniej. Ta aktualizacja nie odzwierciedla zmiany w działaniu interfejsu API.

    • Dokumentacja metody thumbnails.set została zaktualizowana, aby dokładnie odzwierciedlała fakt, że treść żądania zawiera przesyłany obraz miniatury, który jest powiązany z filmem. Treść żądania nie zawiera zasobu thumbnail. Wcześniej w dokumentacji było napisane, że podczas wywoływania tej metody nie należy podawać treści żądania. Ta aktualizacja nie odzwierciedla zmiany w działaniu interfejsu API.

    • Opis zasobu activity został zaktualizowany, aby odzwierciedlał fakt, że metoda activities.list nie obejmuje obecnie zasobów związanych z nowymi komentarzami do filmów. Zaktualizowano też wartości snippet.typecontentDetails.comment zasobu.

  • Nowe i zaktualizowane błędy

    • Interfejs API obsługuje teraz te błędy:

      Szczegóły błędu
      activities.insert
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynainvalidMetadata
      OpisUsługa kind nie pasuje do podanego typu identyfikatora.
      commentThreads.update
      comments.insert
      comments.update
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynacommentTextTooLong
      OpisWstawiany lub aktualizowany zasób comment zawiera zbyt wiele znaków we właściwości snippet.topLevelComment.snippet.textOriginal.
      playlistItems.insert
      playlistItems.update
      Kod odpowiedzi HTTPforbidden (403)
      PrzyczynaplaylistItemsNotAccessible
      OpisŻądanie nie jest odpowiednio autoryzowane do wstawiania, aktualizowania ani usuwania określonego elementu listy odtwarzania.
      playlists.delete
      playlists.insert
      playlists.update
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynaplaylistForbidden
      OpisTa operacja jest zabroniona lub żądanie nie jest odpowiednio autoryzowane.
      search.list
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynainvalidLocation
      OpisWartość parametru location lub locationRadius została nieprawidłowo sformatowana.
      search.list
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynainvalidRelevanceLanguage
      OpisWartość parametru relevanceLanguage ma nieprawidłowy format.
      subscriptions.insert
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynasubscriptionForbidden
      Opis Ten błąd występuje, gdy spełniony jest którykolwiek z tych warunków:
      • Subskrypcja, którą próbujesz utworzyć, już istnieje
      • Masz już maksymalną liczbę subskrypcji
      • Próbujesz zasubskrybować własny kanał, co nie jest obsługiwane.
      • Ostatnio utworzono zbyt wiele subskrypcji. Zanim ponownie wyślesz prośbę, musisz odczekać kilka godzin.
      videos.update
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynainvalidDefaultBroadcastPrivacySetting
      OpisŻądanie próbuje ustawić nieprawidłowe ustawienie prywatności dla domyślnej transmisji.

28 sierpnia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Aktualizacje istniejących zasobów i metod

    • Właściwość statistics.favoriteCount zasobu video została wycofana.

      Zgodnie z naszymi zasadami wycofywania ta właściwość będzie nadal uwzględniana w zasobach video przez co najmniej rok od daty tego ogłoszenia. Wartość właściwości jest jednak teraz zawsze ustawiona na 0.

7 sierpnia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Aktualizacje istniejących zasobów i metod

    • Zaktualizowaliśmy definicję właściwości snippet.tags[] zasobu video, aby podać więcej informacji o tym, jak serwer interfejsu API oblicza długość wartości właściwości. Pamiętaj, że ta aktualizacja nie odzwierciedla zmiany w działaniu interfejsu API.

      W szczególności definicja wyjaśnia teraz, że jeśli tag zawiera spację, serwer interfejsu API traktuje wartość tagu tak, jakby była ujęta w cudzysłów, a cudzysłów wlicza się do limitu znaków. Dlatego w przypadku limitów znaków tag Foo-Baz zawiera 7 znaków, a tag Foo Baz – 9 znaków.

    • Metoda commentThreads.insert nie obsługuje już parametru shareOnGooglePlus, który wcześniej wskazywał, czy komentarz i odpowiedzi na niego powinny być również publikowane w profilu autora w Google+. Jeśli żądanie zawiera ten parametr, serwer interfejsu API go ignoruje, ale w inny sposób obsługuje żądanie.

18 czerwca 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Aktualizacje istniejących zasobów i metod

    • Nowy parametr order metody commentThreads.list określa kolejność, w jakiej odpowiedź interfejsu API powinna zawierać wątki komentarzy. Wątki można sortować według czasu lub trafności. Domyślnie są one uporządkowane według czasu.

    • Nowa właściwość snippet.defaultAudioLanguage zasobu video określa język, w którym nagrana jest domyślna ścieżka audio filmu.

    • Definicja właściwości video zasobu contentDetails.licensedContent została zaktualizowana, aby wyjaśnić, że treści muszą zostać pierwotnie przesłane na kanał powiązany z partnerem treści YouTube, a następnie objęte roszczeniem przez tego partnera. Nie odzwierciedla to zmiany rzeczywistego działania interfejsu API.

    • Metody captions.delete, captions.download, captions.insert, captions.listcaptions.update obsługują teraz parametr onBehalfOfContentOwner, który jest już obsługiwany w przypadku kilku innych metod. Żądania korzystające z tej metody muszą być też autoryzowane za pomocą tokena, który zapewnia dostęp do zakresu https://www.googleapis.com/auth/youtubepartner.

  • Nowe i zaktualizowane błędy

    • Interfejs API obsługuje teraz te błędy:

      Szczegóły błędu
      videos.rate
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynaemailNotVerified
      OpisUżytkownik musi potwierdzić swój adres e-mail, zanim oceni film.
      videos.rate
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynavideoPurchaseRequired
      OpisFilmy do wypożyczenia mogą oceniać tylko użytkownicy, którzy je wypożyczyli.
    • Metody subscriptions.deletesubscriptions.insert nie obsługują już błędów accountClosedaccountSuspended.

27 kwietnia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowe zasoby i metody

    • Nowy zasób videoAbuseReportReason zawiera informacje o przyczynie, dla której film może zostać oznaczony jako zawierający treści obraźliwe. Metoda videoAbuseReportReasons.list umożliwia pobranie listy wszystkich powodów, dla których filmy mogą zostać zgłoszone.

    • Nowa metoda videos.reportAbuse umożliwia zgłaszanie filmów zawierających obraźliwe treści. Treść żądania zawiera obiekt JSON, który określa film zgłaszany jako zawierający treści obraźliwe oraz powód, dla którego film jest uznawany za zawierający takie treści. Prawidłowe przyczyny można uzyskać za pomocą videoAbuseReportReason.list opisanej powyżej metody.

      Zaktualizowaliśmy też przewodnik po migracji, dodając do niego przykład zgłaszania obraźliwego filmu. Dzięki tej zmianie interfejs API w wersji 3 obsługuje teraz wszystkie funkcje interfejsu API w wersji 2, które ma obsługiwać. Wszystkie te funkcje są też opisane w przewodniku po migracji.

  • Aktualizacje istniejących zasobów i metod

    • Nowy parametr filtra forDeveloper metody search.list ogranicza wyszukiwanie do filmów przesłanych za pomocą aplikacji lub witryny dewelopera. Parametr forDeveloper można stosować w połączeniu z opcjonalnymi parametrami wyszukiwania, takimi jak parametr q.

      W przypadku tej funkcji każdy przesłany film jest automatycznie oznaczany numerem projektu powiązanym z aplikacją dewelopera w Google Developers Console.

      Gdy w kolejnym żądaniu wyszukiwania parametr forDeveloper zostanie ustawiony na true, serwer interfejsu API użyje danych logowania do autoryzacji żądania, aby zidentyfikować dewelopera. Dlatego deweloper może ograniczyć wyniki do filmów przesłanych za pomocą jego aplikacji lub witryny, ale nie do filmów przesłanych za pomocą innych aplikacji lub witryn.

      Nowa funkcja oferuje podobne, choć nie identyczne, działanie jak tagi deweloperskie obsługiwane przez interfejs API w wersji 2.

    • Nowa właściwość snippet.country zasobu channel umożliwia właścicielom kanałów powiązanie ich kanałów z określonym krajem.

      Uwaga: aby ustawić właściwość snippet.country dla zasobu channel, musisz zaktualizować właściwość brandingSettings.channel.country.

    • Interfejs API obsługuje teraz kierowanie na zasoby channelSection. Kierowanie na sekcję kanału umożliwia ograniczenie widoczności sekcji treści do użytkowników spełniających określone kryteria.

      Interfejs API udostępnia 3 opcje kierowania. Aby sekcja kanału była widoczna, użytkownik musi spełniać wszystkie ustawienia kierowania.

    • Definicja właściwości contentDetails.duration zasobu video została poprawiona, aby odzwierciedlała fakt, że wartość może odnosić się do godzin, dni itp.

    • W dokumentacji metod channelSections.delete, playlistItems.delete, playlists.delete, subscriptions.deletevideos.delete wprowadziliśmy poprawkę, która informuje, że w przypadku powodzenia wszystkie te metody zwracają kod odpowiedzi HTTP 204 (No Content).

  • Nowe i zaktualizowane błędy

    • Interfejs API obsługuje teraz te błędy:

      Typ błędu Szczegóły błędu Opis
      badRequest (400) targetInvalidCountry Metody channelSections.insertchannelSections.update zwracają ten błąd, jeśli wstawiony zasób channelSection zawierał nieprawidłową wartość właściwości targeting.countries[].
      badRequest (400) targetInvalidLanguage Metody channelSections.insertchannelSections.update zwracają ten błąd, jeśli wstawiony zasób channelSection zawierał nieprawidłową wartość właściwości targeting.languages[].
      badRequest (400) targetInvalidRegion Metody channelSections.insertchannelSections.update zwracają ten błąd, jeśli wstawiony zasób channelSection zawierał nieprawidłową wartość właściwości targeting.regions[].
      badRequest (400) operationNotSupported Metoda comments.insert zwraca ten błąd, jeśli użytkownik interfejsu API nie może wstawić komentarza w odpowiedzi na komentarz najwyższego poziomu zidentyfikowany przez właściwość snippet.parentId. W zasobie commentThread właściwość snippet.canReply wskazuje, czy bieżący widz może odpowiedzieć w wątku.
      badRequest (400) invalidChannelId Metoda search.list zwraca ten błąd, jeśli parametr channelId w żądaniu określa nieprawidłowy identyfikator kanału.
      badRequest (400) subscriptionForbidden Metoda subscriptions.insert zwraca ten błąd, jeśli użytkownik interfejsu API próbuje zasubskrybować własny kanał.
    • Metoda captions.update nie obsługuje już błędów invalidMetadatavideoNotFound.

16 kwietnia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Zaktualizowaliśmy przewodnik po migracji, aby wyjaśnić, jak przenieść aplikacje, które nadal korzystają z funkcji komentarzy z interfejsu API w wersji 2.

    W przewodniku wymieniono też kilka funkcji komentowania, których interfejs API w wersji 2 nie obsługiwał, ale które są obsługiwane w interfejsie API w wersji 3. Obejmują one:

    • Pobieranie komentarzy o kanale
    • Pobieranie wszystkich wątków komentarzy związanych z kanałem, co oznacza, że odpowiedź API może zawierać komentarze dotyczące kanału lub dowolnego z jego filmów.
    • Aktualizowanie tekstu komentarza
    • Oznaczanie komentarza jako spam
    • Ustawianie stanu moderacji komentarza

  • Zaktualizowaliśmy przewodnik Subskrybowanie powiadomień push, aby odzwierciedlał fakt, że powiadomienia są wysyłane tylko do centrum Google PubSubHubBub, a nie do centrum Superfeedr, jak wcześniej podano.

9 kwietnia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowe zasoby interfejsu API commentThreadcomment umożliwiają pobieranie, wstawianie, aktualizowanie, usuwanie i moderowanie komentarzy.

    • Zasób commentThread zawiera informacje o wątku komentarzy w YouTube, który składa się z komentarza najwyższego poziomu i odpowiedzi na niego (jeśli takie istnieją). Zasób commentThread może reprezentować komentarze dotyczące filmu lub kanału.

      Komentarz najwyższego poziomu i odpowiedzi to w rzeczywistości zasoby comment zagnieżdżone w zasobie commentThread. Pamiętaj, że zasób commentThread nie musi zawierać wszystkich odpowiedzi na komentarz. Jeśli chcesz pobrać wszystkie odpowiedzi na konkretny komentarz, musisz użyć metody comments.list. Niektóre komentarze nie mają też odpowiedzi.

      Interfejs API obsługuje te metody w przypadku zasobów commentThread:

      • commentThreads.list – pobieranie listy wątków komentarzy. Użyj tej metody, aby pobrać komentarze powiązane z konkretnym filmem lub kanałem.
      • commentThreads.insert – Utwórz nowy komentarz najwyższego poziomu. (Aby odpowiedzieć na istniejący komentarz, użyj metody comments.insert).
      • commentThreads.update – modyfikowanie komentarza najwyższego poziomu;

    • comment zawiera informacje o pojedynczym komentarzu w YouTube. Zasób comment może reprezentować komentarz dotyczący filmu lub kanału. Komentarz może być komentarzem najwyższego poziomu lub odpowiedzią na taki komentarz.

      Interfejs API obsługuje te metody w przypadku zasobów comment:

      • comments.list – pobieranie listy komentarzy. Ta metoda umożliwia pobranie wszystkich odpowiedzi na konkretny komentarz.
      • comments.insert – utwórz odpowiedź na istniejący komentarz.
      • comments.update – zmodyfikować komentarz.
      • comments.markAsSpam – oznaczanie co najmniej jednego komentarza jako spam.
      • comments.setModerationStatus – ustawianie stanu moderowania co najmniej 1 komentarza. Możesz na przykład zatwierdzić komentarz do publicznego wyświetlenia lub odrzucić go jako nieodpowiedni. Żądanie API musi być autoryzowane przez właściciela kanału lub filmu powiązanego z komentarzami.
      • comments.delete – usuwanie komentarza.

    Pamiętaj, że nowy zakres interfejsu API https://www.googleapis.com/auth/youtube.force-ssl, opisany w historii zmian z 2 kwietnia 2015 r., jest wymagany w przypadku wywołań metod comments.insert, comments.update, comments.markAsSpam, comments.setModerationStatus, comments.delete, commentThreads.insert i commentThreads.update.

  • Nowy przewodnik Subskrybowanie powiadomień push wyjaśnia, że interfejs API obsługuje teraz powiadomienia push za pomocą PubSubHubBub, czyli protokołu publikowania i subskrybowania typu serwer-serwer dla zasobów dostępnych w internecie. Serwer wywołania zwrotnego PubSubHubBub może otrzymywać powiadomienia o kanałach w formacie Atom, gdy kanał wykona jedną z tych czynności:

    • przesyła film,
    • aktualizuje tytuł filmu,
    • aktualizuje opis filmu.

  • Zaktualizowaliśmy też przewodnik po migracji, aby uwzględnić w nim nowe powiadomienia push. Interfejs API w wersji 2 obsługiwał jednak wiele innych typów powiadomień push, które nie są obsługiwane w interfejsie API w wersji 3, dlatego wzmianka o obsłudze PubSubHubBub nadal znajduje się w sekcji Wycofane w tym przewodniku.

  • Nowy zakres https://www.googleapis.com/auth/youtube.force-ssl interfejsu API jest teraz prawidłowym zakresem dla każdej metody interfejsu API, która wcześniej obsługiwała zakres https://www.googleapis.com/auth/youtube.

  • Interfejs API obsługuje teraz te błędy:

    Typ błędu Szczegóły błędu Opis
    badRequest (400) invalidRating Metoda videos.rate zwraca ten błąd, jeśli żądanie zawierało nieoczekiwaną wartość parametru rating.
  • Metoda subscriptions.insert nie obsługuje już błędu subscriptionLimitExceeded, który wcześniej wskazywał, że subskrybent zidentyfikowany w żądaniu przekroczył limit szybkości subskrypcji.

2 kwietnia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy zasób captions reprezentuje ścieżkę z napisami w YouTube. Ścieżka napisów jest powiązana z dokładnie jednym filmem w YouTube.

    Interfejs API obsługuje metody wyświetlania, wstawiania, aktualizowania, pobierania i usuwania ścieżek z napisami.

  • Zaktualizowaliśmy też przewodnik po migracji, aby wyjaśnić, jak przenieść aplikacje, które nadal korzystają z funkcji napisów w interfejsie API w wersji 2.

  • Nowy zakres https://www.googleapis.com/auth/youtube.force-ssl interfejsu API wymaga, aby komunikacja z serwerem API odbywała się przez połączenie SSL.

    Ten nowy zakres przyznaje taki sam dostęp jak zakres https://www.googleapis.com/auth/youtube. W rzeczywistości te 2 zakresy są funkcjonalnie identyczne, ponieważ serwer interfejsu YouTube API jest dostępny tylko przez punkt końcowy HTTPS. W rezultacie, mimo że zakres https://www.googleapis.com/auth/youtube nie wymaga połączenia SSL, nie ma innego sposobu na wysłanie żądania do interfejsu API.

    Nowy zakres jest wymagany w przypadku wywoływania wszystkich metod zasobu caption.

11 marca 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Przewodnik po migracji do interfejsu YouTube Data API (v3) zawiera nową kartę o nazwie Nowości w interfejsie API w wersji 3, na której znajdziesz listę funkcji obsługiwanych przez interfejs API w wersji 3, a nieobsługiwanych przez interfejs API w wersji 2. Te same funkcje były i nadal są wymienione na innych kartach w przewodniku. Na przykład nowa funkcja wyjaśniająca, jak aktualizować dane kampanii promocyjnej w filmie na kanale, jest również wymieniona na karcie Kanały (profile).

  • Przewodnik po migracji do interfejsu YouTube Data API (wersja 3) został zaktualizowany. Zawiera informację, że interfejs API w wersji 3 będzie obsługiwać tę funkcję interfejsu API w wersji 2:

  • Zaktualizowaliśmy przewodnik po migracji do interfejsu YouTube Data API (wersja 3), aby poinformować, że te funkcje interfejsu API w wersji 2 nie będą obsługiwane w interfejsie API w wersji 3:

    • Pobieranie rekomendacji filmów – interfejs API w wersji 3 nie pobiera listy zawierającej tylko filmy rekomendowane dla bieżącego użytkownika interfejsu API. Możesz jednak użyć interfejsu API w wersji 3, aby znaleźć polecane filmy, wywołując metodę activities.list i ustawiając wartość parametru home na true.

      W odpowiedzi interfejsu API zasób odpowiada rekomendowanemu filmowi, jeśli wartość właściwości snippet.type to recommendation. W takim przypadku właściwości contentDetails.recommendation.reason i contentDetails.recommendation.seedResourceId będą zawierać informacje o tym, dlaczego film został zarekomendowany. Pamiętaj, że nie możemy zagwarantować, że odpowiedź będzie zawierać określoną liczbę polecanych filmów.

    • Pobieranie sugestii dotyczących kanału

    • Pobieranie nowych filmów z subskrypcji – interfejs API w wersji 3 nie pobiera listy zawierającej tylko filmy, które zostały niedawno przesłane na kanały subskrybowane przez użytkownika interfejsu API. Możesz jednak użyć interfejsu API w wersji 3, aby znaleźć nowe filmy z subskrypcji. W tym celu wywołaj metodę activities.list i ustaw wartość parametru home na true.

      W odpowiedzi interfejsu API zasób odpowiada nowemu filmowi w ramach subskrypcji, jeśli wartość właściwości snippet.type to upload. Pamiętaj, że nie możemy zagwarantować, że odpowiedź będzie zawierać określoną liczbę nowych filmów z subskrypcji.

    • Obsługa kanału RSS

    • Powiadomienia push o aktualizacjach kanału – interfejs API w wersji 2 obsługiwał powiadomienia push, korzystając z protokołu Simple Update Protocol (SUP) lub PubSubHubbub, aby monitorować kanały aktywności użytkowników YouTube. Powiadomienia były wysyłane w przypadku nowych subskrypcji kanałów oraz gdy filmy były oceniane, udostępniane, oznaczane jako ulubione, komentowane lub przesyłane.

      Interfejs API w wersji 3 będzie obsługiwać powiadomienia push za pomocą protokołu PubSubHubbub, ale powiadomienia będą dotyczyć tylko przesyłania filmów oraz aktualizacji tytułów i opisów filmów.

    • Lokalizacja kanału – interfejs API w wersji 2 używał tagu <yt:location> do identyfikowania lokalizacji użytkownika podanej w publicznym profilu kanału w YouTube. Niektórzy deweloperzy używali tego pola do powiązania kanału z określonym krajem, ale danych w tym polu nie można było konsekwentnie wykorzystywać w tym celu.

    • Ustawianie i pobieranie tagów dewelopera – interfejs API w wersji 2 umożliwiał powiązanie słów kluczowych lub tagów dewelopera z filmem w momencie jego przesyłania. Tagi deweloperów nie byłyby wyświetlane użytkownikom YouTube, ale właściciele filmów mogliby pobierać filmy pasujące do określonego tagu dewelopera.

      Interfejs API w wersji 3 będzie udostępniać podobną, ale nie identyczną funkcję. W szczególności deweloper będzie mógł wyszukiwać filmy przesłane przez jego aplikację. W przypadku tej funkcji każdy przesłany film jest automatycznie oznaczany numerem projektu powiązanym z aplikacją dewelopera w Google Developers Console. Następnie deweloper używa tego samego numeru projektu do wyszukiwania filmów.

    • Wyświetlanie filmów według daty publikacji, liczby wyświetleń lub oceny – w interfejsie API w wersji 2 parametr orderby umożliwiał sortowanie filmów na playliście według pozycji, czasu trwania, daty publikacji, tytułu i kilku innych wartości. W interfejsie API w wersji 3 elementy playlisty są zwykle sortowane według pozycji w kolejności rosnącej, a inne opcje sortowania nie są dostępne.

      Istnieje kilka wyjątków. Nowy film, ulubiony film, polubiony film lub ostatnio oglądany film jest automatycznie dodawany jako pierwszy element (snippet.position=0) w przypadku tych typów playlist: Każda z tych list jest więc posortowana od najnowszego do najstarszego elementu na podstawie czasu dodania elementów do listy.

      • przesłane przez użytkownika,
      • ulubione filmy,
      • polubione filmy
      • historia oglądania

      Pamiętaj jednak, że nowy element dodany do playlisty „Obejrzyj później” jest umieszczany na końcu listy, więc jest ona posortowana od najstarszego do najnowszego elementu.

    • Przetwarzanie wsadowe – interfejs API w wersji 3 obsługuje jeden z przypadków użycia przetwarzania wsadowego, który był obsługiwany przez interfejs API w wersji 2. Metody channels.list, channelSections.list, guideCategories.list, playlistItems.list, playlists.list, subscriptions.list, videoCategories.listvideos.list interfejsu API w wersji 3 obsługują parametr id, który umożliwia określenie rozdzielonej przecinkami listy identyfikatorów (identyfikatorów filmów, kanałów itp.). Za pomocą tych metod możesz pobrać listę wielu zasobów za pomocą jednego żądania.

    Dzięki tym zmianom przewodnik zawiera teraz wszystkie funkcje, które były obsługiwane w starym interfejsie API (wersja 2), a które zostaną wycofane w bieżącej wersji interfejsu API (wersja 3).

4 marca 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Metody channelSections.deletechannelSections.update obsługują teraz parametr onBehalfOfContentOwner, który jest już obsługiwany w przypadku kilku innych metod.

  • Wycofaliśmy te właściwości i ich właściwości podrzędne:

    • brandingSettings.image.backgroundImageUrl
    • brandingSettings.image.largeBrandedBannerImageImapScript
    • brandingSettings.image.largeBrandedBannerImageUrl
    • brandingSettings.image.smallBrandedBannerImageImapScript
    • brandingSettings.image.smallBrandedBannerImageUrl

    Uwaga: żadna z tych właściwości nie podlegała zasadom wycofywania interfejsu API.

  • Nowa właściwość contentDetails.contentRating.contentDetails.contentRating.djctqRatingReasons zasobu video określa przyczyny, dla których film otrzymał ocenę DJCQT (Brazylia).

  • Interfejs API obsługuje teraz te błędy:

    Typ błędu Szczegóły błędu Opis
    notFound (404) channelNotFound Metoda channels.update zwraca ten błąd, jeśli parametr id w żądaniu określa kanał, którego nie można znaleźć.
    badRequest (400) manualSortRequiredinvalidValue Metody playlistItems.insertplaylistItems.update zwracają ten błąd, jeśli żądanie próbuje ustawić pozycję elementu listy odtwarzania, ale lista odtwarzania nie korzysta z ręcznego sortowania. Na przykład elementy playlisty mogą być posortowane według daty lub popularności. Aby rozwiązać ten problem, usuń element snippet.position z zasobu wysłanego w treści żądania. Jeśli chcesz, aby element playlisty znajdował się na określonej pozycji na liście, musisz najpierw zmienić ustawienie kolejności playlisty na Ręczna. To ustawienie można zmienić w Menedżerze filmów w YouTube.
    forbidden (403) channelClosed Metoda playlists.list zwraca ten błąd, jeśli parametr channelId w żądaniu określa zamknięty kanał.
    forbidden (403) channelSuspended Metoda playlists.list zwraca ten błąd, jeśli parametr channelId w żądaniu określa zawieszony kanał.
    forbidden (403) playlistForbidden Metoda playlists.list zwraca ten błąd, jeśli parametr id żądania nie obsługuje żądania lub żądanie nie jest prawidłowo autoryzowane.
    notFound (404) channelNotFound Metoda playlists.list zwraca ten błąd, jeśli parametr channelId w żądaniu określa kanał, którego nie można znaleźć.
    notFound (404) playlistNotFound Metoda playlists.list zwraca ten błąd, jeśli parametr id żądania określa playlistę, której nie można znaleźć.
    notFound (404) videoNotFound Metoda videos.list zwraca ten błąd, jeśli parametr id w żądaniu określa film, którego nie można znaleźć.
    badRequest (400) invalidRating Metoda videos.rate zwraca ten błąd, jeśli żądanie zawiera nieoczekiwaną wartość parametru videos.rate.rating

2 marca 2015 r.

Ta aktualizacja zawiera następujące zmiany:

14 stycznia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Zaktualizowaliśmy przewodnik po migracji do interfejsu YouTube Data API (wersja 3), aby wyjaśnić, jak używać interfejsu API w wersji 3 do przesyłania filmów za pomocą JavaScriptu. (Więcej informacji znajdziesz w sekcji Przesyłanie filmu). Ta funkcja jest porównywalna z funkcją przesyłania w przeglądarce, którą obsługuje interfejs API w wersji 2. Pamiętaj, że ta zmiana w przewodniku po migracji nie odzwierciedla rzeczywistej zmiany w interfejsie API, a jedynie dostępność nowego przykładowego kodu do przesyłania filmów za pomocą JavaScriptu po stronie klienta.

    W związku z obsługą przesyłania filmów za pomocą biblioteki klienta JavaScript i CORS w przewodniku migracji nie ma już informacji o tym, że przesyłanie w przeglądarce może zostać wycofane w interfejsie API w wersji 3.

  • Dokumentacja metody videos.insert została zaktualizowana i zawiera nowy przykładowy kod JavaScript opisany powyżej. Zaktualizowaliśmy też listę przykładowych kodów JavaScript dla interfejsu YouTube Data API (wersja 3).

11 listopada 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Koszt limitu w przypadku wywołania metody search.list został zmieniony na 100 jednostek.

    Ważne: w wielu przypadkach możesz użyć innych metod interfejsu API, aby pobrać informacje przy niższym koszcie limitu. Rozważmy na przykład 2 sposoby wyszukiwania filmów przesłanych na kanał GoogleDevelopers.

    • Koszt przydziału: 100 jednostek

      Wywołaj metodę search.list i wyszukaj GoogleDevelopers.

    • Koszt przydziału: 6 jednostek

      Aby znaleźć odpowiedni identyfikator kanału, wywołaj metodę channels.list. Ustaw parametr forUsername na GoogleDevelopers, a parametr part na contentDetails. W odpowiedzi interfejsu API właściwość contentDetails.relatedPlaylists.uploads określa identyfikator playlisty z przesłanymi filmami na kanale.

      Następnie wywołaj metodę playlistItems.list i ustaw parametr playlistId na przechwycony identyfikator, a parametr part na snippet.

8 października 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Zasób channel zawiera 2 nowe właściwości:

    • Właściwość status.longUploadsStatus wskazuje, czy kanał może przesyłać filmy dłuższe niż 15 minut. Ta właściwość jest zwracana tylko wtedy, gdy właściciel kanału autoryzował żądanie interfejsu API. Prawidłowe wartości właściwości to:

      • allowed – kanał może przesyłać filmy dłuższe niż 15 minut;
      • eligible – kanał może przesyłać filmy dłuższe niż 15 minut, ale najpierw musi włączyć tę funkcję.
      • disallowed – kanał nie może przesyłać filmów dłuższych niż 15 minut lub nie kwalifikuje się do tego.

      Więcej informacji o tych wartościach znajdziesz w definicji usługi. Więcej informacji o tej funkcji znajdziesz w Centrum pomocy YouTube.

    • Właściwość invideoPromotion.useSmartTiming wskazuje, czy kampania promocyjna kanału korzysta z „inteligentnego harmonogramu”. Ta funkcja próbuje wyświetlać promocje w momencie filmu, w którym jest większe prawdopodobieństwo, że zostaną kliknięte, a mniejsze, że zakłócą oglądanie. Ta funkcja wybiera też jedną promocję, która będzie wyświetlana w każdym filmie.

  • Definicje właściwości snippet.titlesnippet.categoryId zasobu video zostały zaktualizowane, aby wyjaśnić sposób obsługi przez interfejs API wywołań metody videos.update. Jeśli wywołasz tę metodę, aby zaktualizować część snippet zasobu video, musisz ustawić wartość obu tych właściwości.

    Jeśli spróbujesz zaktualizować część snippet zasobu video i nie ustawisz wartości obu tych właściwości, interfejs API zwróci błąd invalidRequest. Opis tego błędu również został zaktualizowany.

  • Właściwość contentDetails.contentRating.oflcRating zasobu video, która określa ocenę filmu przyznaną przez nowozelandzki urząd ds. klasyfikacji filmów i literatury, obsługuje teraz 2 nowe oceny: oflcRp13oflcRp16. Odpowiadają one odpowiednio ocenom RP13RP16.

  • Metoda channelBanners.insert obsługuje teraz ten błąd:

    Typ błędu Szczegóły błędu Opis
    badRequest bannerAlbumFull Album Grafika kanału w YouTube właściciela kanału zawiera za dużo obrazów. Właściciel kanału powinien wejść na http://photos.google.com, przejść na stronę albumów i usunąć z albumu niektóre obrazy.

12 września 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Koszt limitu dla wywołania metody search.list zmienił się z 1 jednostki na 2 jednostki, oprócz kosztu określonych części zasobów.

13 sierpnia 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Metoda subscriptions.insert obsługuje teraz ten błąd:

    Typ błędu Szczegóły błędu Opis
    badRequest subscriptionLimitExceeded Subskrybent zidentyfikowany w żądaniu przekroczył limit częstotliwości subskrypcji. Kolejne subskrypcje można wykupić za kilka godzin.

12 sierpnia 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy przewodnik Migrating Your Application to YouTube Data API (v3) (Migracja aplikacji do interfejsu YouTube Data API w wersji 3) wyjaśnia, jak używać interfejsu YouTube Data API w wersji 3 do wykonywania funkcji dostępnych w interfejsie YouTube Data API w wersji 2. Starszy interfejs API został oficjalnie wycofany 4 marca 2014 r. Ten przewodnik ma pomóc w migracji aplikacji, które nadal korzystają z interfejsu API w wersji 2, do najnowszej wersji interfejsu API.

8 lipca 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Metoda playlists.insert obsługuje teraz ten błąd:

    Typ błędu Szczegóły błędu Opis
    badRequest maxPlaylistExceeded Ten błąd występuje, gdy nie można utworzyć playlisty, ponieważ kanał ma już maksymalną dozwoloną liczbę playlist.

18 czerwca 2014 r.

Ta aktualizacja zawiera następujące zmiany:

28 maja 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Metoda search.list obsługuje teraz parametry locationlocationRadius, które umożliwiają wyszukiwanie filmów powiązanych z lokalizacją geograficzną. Aby pobrać wyniki na podstawie lokalizacji, żądanie musi zawierać wartości obu parametrów. Jeśli żądanie zawiera tylko jeden z tych parametrów, interfejs API zwraca błąd.

    • Parametr location określa współrzędne geograficzne środka okrągłego obszaru geograficznego.

    • Parametr locationRadius określa maksymalną odległość, w jakiej lokalizacja powiązana z filmem może znajdować się od środka obszaru, aby film nadal był uwzględniany w wynikach wyszukiwania.

13 maja 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • W artykule dotyczącym zasobu channel zaktualizowaliśmy informację o właściwości invideoPromotion.items[], aby zaznaczyć, że zwykle możesz ustawić tylko 1 promowany produkt na kanale. Jeśli spróbujesz wstawić zbyt wiele promowanych produktów, interfejs API zwróci błąd tooManyPromotedItems, który ma kod stanu HTTP 400.

  • channelSection może teraz zawierać informacje o kilku nowych typach polecanych treści. Właściwość snippet.type zasobu channelSection obsługuje teraz te wartości:

    • postedPlaylists – playlisty, które właściciel kanału opublikował w strumieniu aktywności kanału;
    • postedVideos – filmy, które właściciel kanału opublikował w strumieniu aktywności kanału;
    • subscriptions – kanały, które subskrybuje właściciel kanału;

  • Nowa właściwość contentDetails.contentRating.ifcoRating zasobu video określa ocenę, jaką film otrzymał od irlandzkiego urzędu ds. klasyfikacji filmów.

  • Definicja właściwości watermark zasobu position.cornerPosition została zaktualizowana, aby uwzględnić informację, że znak wodny zawsze pojawia się w prawym górnym rogu odtwarzacza.

  • Zaktualizowaliśmy definicję parametru q dla metody search.list, aby uwzględnić informację, że w zapytaniu można użyć operatora logicznego NOT (-) w celu wykluczenia filmów powiązanych z określonym wyszukiwanym hasłem. Wartość może też używać operatora logicznego LUB (|), aby znaleźć filmy powiązane z jednym z kilku wyszukiwanych haseł.

  • Zaktualizowaliśmy definicję właściwości pageInfo.totalResults, która jest zwracana w odpowiedzi interfejsu API na wywołanie search.list. Dodaliśmy informację, że wartość jest przybliżona i może nie być dokładna. Maksymalna wartość to 1 000 000. Nie używaj tej wartości do tworzenia linków do podziału na strony. Zamiast tego użyj wartości właściwości nextPageToken i prevPageToken, aby określić, czy wyświetlać linki do podziału na strony.

  • Metody watermarks.setwatermarks.unset zostały zaktualizowane, aby odzwierciedlać fakt, że w przypadku żądań zakończonych powodzeniem interfejs API zwraca kod odpowiedzi HTTP 204.

2 maja 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy zasób i18nLanguage określa język aplikacji, który jest obsługiwany przez witrynę YouTube. Język aplikacji jest też nazywany językiem interfejsu. W przypadku witryny YouTube język aplikacji może być wybierany automatycznie na podstawie ustawień konta Google, języka przeglądarki lub lokalizacji IP. Użytkownik może też ręcznie wybrać żądany język interfejsu w stopce witryny YouTube.

    Interfejs API obsługuje metodę wyświetlania obsługiwanych języków aplikacji. Obsługiwane języki mogą być używane jako wartość parametru hl podczas wywoływania metod interfejsu API, takich jak videoCategories.listguideCategories.list.

  • Nowy zasób i18nRegion identyfikuje obszar geograficzny, który użytkownik YouTube może wybrać jako preferowany region treści. Region treści może być też określany jako lokalizacja treści. W przypadku witryny YouTube region treści może być wybierany automatycznie na podstawie heurystyk, takich jak domena YouTube lub lokalizacja IP użytkownika. Użytkownik może też ręcznie wybrać żądany region treści w stopce witryny YouTube.

    API obsługuje metodę listowania obsługiwanych regionów treści. Obsługiwane kody regionów można używać jako wartości parametru regionCode podczas wywoływania metod interfejsu API, takich jak search.list, videos.list, activities.listvideoCategories.list.

7 kwietnia 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy zasób channelSection zawiera informacje o zestawie filmów, które kanał wybrał do wyróżnienia. Na przykład sekcja może zawierać najnowsze lub najpopularniejsze filmy przesłane na kanał albo filmy z jednej lub kilku playlist.

    Interfejs API obsługuje metody wyświetlania, wstawiania, aktualizowaniausuwania sekcji kanału. Możesz pobrać listę sekcji kanału uwierzytelnionego użytkownika, podając konkretny identyfikator kanału lub listę unikalnych identyfikatorów sekcji kanału.

    Zaktualizowaliśmy też dokumentację błędów, aby opisać komunikaty o błędach, które interfejs API obsługuje w przypadku tych nowych metod.

  • Definicja obiektu fileDetails zasobu video została zaktualizowana, aby wyjaśnić, że ten obiekt będzie zwracany tylko wtedy, gdy właściwość processingDetails.fileDetailsAvailability filmu ma wartość available.

    Podobnie zaktualizowaliśmy definicję obiektu suggestions zasobu video, aby wyjaśnić, że ten obiekt będzie zwracany tylko wtedy, gdy właściwość processingDetails.tagSuggestionsAvailability filmu lub jego właściwość processingDetails.editorSuggestionsAvailability ma wartość available.

  • Zaktualizowaliśmy dokumentację metod videos.insert i videos.update, aby uwzględnić informację, że podczas wywoływania tych metod można ustawić właściwość status.publishAt.

  • Zaktualizowaliśmy definicję obiektu invideoPromotion zasobu channel, aby wyjaśnić, że obiekt może pobrać tylko właściciel kanału.

  • Lista parametrów metody videos.rate została zaktualizowana, aby odzwierciedlać fakt, że ta metoda nie obsługuje parametru onBehalfOfContentOwner. Był to błąd w dokumentacji, ponieważ żądania videos.rate, w których ustawiono ten parametr, zwracają błąd 500.

31 marca 2014 r.

Ta aktualizacja zawiera następujące zmiany:

13 marca 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Interfejs API obsługuje teraz parametr contentOwnerDetails w przypadku zasobów channel. Nowa część zawiera dane kanału istotne dla partnerów YouTube powiązanych z kanałem, w tym identyfikator właściciela treści powiązanego z kanałem oraz datę i godzinę powiązania właściciela treści z kanałem. Pamiętaj, że ta nowa część nie podlega zasadom wycofywania.

  • W dokumentacji podano teraz maksymalną obsługiwaną długość znaków w przypadku tych właściwości:

    Zasób Właściwość Maksymalna długość
    channel invideoPromotion.items[].customMessage 40 znaków
    video snippet.title 100 znaków
    video snippet.description 5000 bajtów
    video snippet.tags 500 znaków. Pamiętaj, że wartość właściwości to lista, a przecinki między elementami listy wliczają się do limitu.
  • Właściwość brandingSettings.watch.featuredPlaylistId zasobu channel została wycofana. Jeśli spróbujesz ustawić jego wartość, interfejs API zwróci błąd.

  • Do listy wartości, które można ustawić podczas wstawiania lub aktualizowania filmu, dodaliśmy te właściwości zasobu video:

  • W dokumentacji błędów podajemy teraz kod odpowiedzi HTTP dla każdego typu błędu.

  • Interfejs API obsługuje teraz te błędy:

    Typ błędu Szczegóły błędu Opis
    badRequest (400) invalidCriteria Metoda channels.list zwraca ten błąd, jeśli żądanie określa parametry filtra, których nie można używać razem.
    badRequest (400) channelTitleUpdateForbidden Metoda channels.update zwraca ten błąd, jeśli spróbujesz zaktualizować część brandingSettings kanału i zmienisz wartość właściwości brandingSettings.channel.title. (Pamiętaj, że jeśli pominiesz tę właściwość, interfejs API nie zwróci błędu).
    badRequest (400) invalidRecentlyUploadedBy Metoda channels.update zwraca ten błąd, jeśli właściwość invideoPromotion.items[].id.recentlyUploadedBy określa nieprawidłowy identyfikator kanału.
    badRequest (400) invalidTimingOffset Metoda channels.update zwraca ten błąd, jeśli część invideoPromotion określa nieprawidłowe przesunięcie czasowe.
    badRequest (400) tooManyPromotedItems Metoda channels.update zwraca ten błąd, jeśli część invideoPromotion określa więcej promowanych produktów niż jest dozwolone.
    forbidden (403) promotedVideoNotAllowed Metoda channels.update zwraca ten błąd, jeśli właściwość invideoPromotion.items[].id.videoId określa identyfikator filmu, którego nie można znaleźć lub którego nie można użyć jako promowanego elementu.
    forbidden (403) websiteLinkNotAllowed Metoda channels.update zwraca ten błąd, jeśli właściwość invideoPromotion.items[].id.websiteUrl określa niedozwolony adres URL.
    required (400) requiredTimingType Metoda channels.update zwraca ten błąd, jeśli żądanie nie określa domyślnych ustawień czasu, w którym YouTube ma wyświetlać promowany produkt.
    required (400) requiredTiming Metoda channels.update musi określać obiekt invideoPromotion.items[].timing dla każdego promowanego produktu.
    required (400) requiredWebsiteUrl Metoda channels.update musi określać właściwość invideoPromotion.items[].id.websiteUrl dla każdego promowanego produktu.
    badRequest (400) invalidPublishAt Metoda videos.insert zwraca ten błąd, jeśli metadane żądania określają nieprawidłowy zaplanowany czas publikacji.

4 marca 2014 r.

Ta aktualizacja zawiera następujące zmiany:

5 grudnia 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Dokumentacja metody search.list została zaktualizowana, aby prawidłowo odzwierciedlać fakt, że podczas przesyłania żądania wyszukiwania nie musisz określać wartości dokładnie jednego parametru filtra. Możesz ustawić wartość dla 0 lub 1 parametru filtra.

  • Zaktualizowaliśmy definicje parametrów metody search.list, aby zaznaczyć, że jeśli określisz wartość dowolnego z tych parametrów:typevideo

    • eventType
    • videoCaption
    • videoCategoryId
    • videoDefinition
    • videoDimension
    • videoDuration
    • videoEmbeddable
    • videoLicense
    • videoSyndicated
    • videoType

  • Minimalny rozmiar przesyłanych obrazów banera kanału został zmniejszony do 2048 x 1152 pikseli. (Wcześniej minimalny rozmiar wynosił 2120 x 1192 pikseli). Pamiętaj też, że channeldokumentacja zasobów określa maksymalne rozmiary wszystkich obrazów banerów wyświetlanych z interfejsu API. Na przykład maksymalny rozmiar brandingSettings.image.bannerTvImageUrl obrazu w przypadku aplikacji telewizyjnych to 2120 x 1192 piksele, ale rzeczywisty obraz może mieć rozmiar 2048 x 1152 piksele. Dodatkowe wskazówki dotyczące optymalizacji grafiki kanału pod kątem wyświetlania na różnych urządzeniach znajdziesz w Centrum pomocy YouTube.

  • Zaktualizowaliśmy definicje kilku właściwości zasobówchannel, aby odzwierciedlały te informacje:

    • Wartość właściwości brandingSettings.channel.description może mieć maksymalnie 1000 znaków.
    • Właściwość brandingSettings.channel.featuredChannelsTitle może mieć maksymalnie 30 znaków.
    • W usłudze brandingSettings.channel.featuredChannelsUrls[] można teraz wyświetlać maksymalnie 100 kanałów.
    • Wartość właściwości brandingSettings.channel.unsubscribedTrailer, jeśli jest ustawiona, musi określać identyfikator filmu w YouTube, który jest własnością właściciela kanału i ma status publiczny lub niepubliczny.

  • Metoda channels.update obsługuje teraz aktualizacje właściwości invideoPromotion.items[].promotedByContentOwner. Ta właściwość określa, czy podczas wyświetlania promocji będzie widoczna nazwa właściciela treści. Można go ustawić tylko wtedy, gdy żądanie API, które ustawia wartość właściwości, jest wysyłane w imieniu właściciela treści za pomocą parametru onBehalfOfContentOwner.

  • Metody playlistItems.listplaylistItems.insert obsługują teraz parametr onBehalfOfContentOwner, który jest już obsługiwany w przypadku kilku innych metod.

  • Właściwość contentDetails.contentRating.acbRating może teraz określać ocenę przyznaną przez Australian Classification Board (ACB) w przypadku filmów lub przez Australian Communications and Media Authority (ACMA) w przypadku programów telewizyjnych dla dzieci.

  • Nowe właściwości contentDetails.contentRating.catvRating i contentDetails.contentRating.catvfrRating określają oceny, jakie film otrzymał w ramach kanadyjskiego systemu klasyfikacji programów telewizyjnych i francuskojęzycznego systemu ocen Régie du cinéma, który jest używany w Quebecu.

  • Nowa właściwość snippet.assignable zasobu videoCategory wskazuje, czy z daną kategorią filmów można powiązać zaktualizowane lub nowo przesłane filmy.

  • Dodaliśmy przykłady kodu dla tych metod:

24 października 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Interfejs API obejmuje 2 dodatkowe funkcje, które pomagają znajdować i wyświetlać treści transmitowane na żywo:

    Nowa właściwość snippet.liveBroadcastContent w wynikach wyszukiwania wskazuje, czy zasób wideo lub kanał zawiera treści transmitowane na żywo. Prawidłowe wartości właściwości to upcoming, activenone.

    • Nowa właściwość snippet.liveBroadcastContent zasobu video wskazuje, czy film jest nadchodzącą czy aktywną transmisją na żywo. Poniżej znajdziesz możliwe wartości właściwości:

      • upcoming – film jest transmisją na żywo, która jeszcze się nie rozpoczęła.
      • active – film jest transmitowany na żywo.
      • none – film nie jest nadchodzącą ani trwającą transmisją na żywo. Będzie to wartość właściwości dla zakończonych transmisji, które nadal można oglądać w YouTube.
    • Nowa właściwość liveStreamingDetails zasobu video to obiekt zawierający metadane dotyczące transmisji wideo na żywo. Aby pobrać te metadane, uwzględnij liveStreamingDetails na liście części zasobu w wartości parametru part. Metadane zawierają te nowe właściwości:

      Aby pobrać te metadane, podczas wywoływania metody videos.list, videos.insert lub videos.update uwzględnij liveStreamingDetails w wartości parametru part.

    Pamiętaj, że 1 października 2013 r. udostępniliśmy 2 inne funkcje do identyfikowania treści transmisji na żywo: parametr eventType metody search.list i właściwość snippet.liveBroadcastContent wyniku wyszukiwania.

  • Metoda videos.insert obsługuje teraz parametr notifySubscribers, który określa, czy YouTube ma wysyłać powiadomienia o nowym filmie do użytkowników, którzy subskrybują kanał, na którym został on opublikowany. Domyślna wartość parametru to True, co oznacza, że subskrybenci będą otrzymywać powiadomienia o nowo przesłanych filmach. Właściciel kanału, który przesyła wiele filmów, może jednak ustawić wartość False, aby uniknąć wysyłania powiadomień o każdym nowym filmie do subskrybentów kanału.

  • Lista właściwości, które można modyfikować podczas wywoływania metody channels.update, została zaktualizowana i obejmuje teraz właściwości invideoPromotion.items[].customMessageinvideoPromotion.items[].websiteUrl. Dodatkowo lista została zmodyfikowana, aby wskazywać brandingSettings właściwości, które można modyfikować. Te właściwości brandingSettings można było już modyfikować, więc zmiana w dokumentacji nie odzwierciedla zmiany w dotychczasowej funkcjonalności interfejsu API.

  • Metody playlists.insert, playlists.updateplaylists.delete obsługują teraz parametr onBehalfOfContentOwner, który jest już obsługiwany w przypadku kilku innych metod.

  • Metoda playlists.insert obsługuje teraz parametr onBehalfOfContentOwnerChannel, który jest już obsługiwany w przypadku kilku innych metod.

  • Właściwość contentDetails.contentRating.tvpgRating zasobu video obsługuje teraz wartość pg14, która odpowiada ocenie TV-14.

  • Definicja właściwości snippet.liveBroadcastContent, która jest częścią wyników wyszukiwania, została poprawiona, aby odzwierciedlała fakt, że live jest prawidłową wartością właściwości, ale active nie jest prawidłową wartością właściwości.

  • Właściwość contentDetails.contentRating.mibacRating zasobu video obsługuje teraz 2 dodatkowe oceny:

    • mibacVap (VAP) – dzieci powinny być pod opieką osoby dorosłej.
    • mibacVm6 (V.M.6) – tylko dla osób, które ukończyły 6 lat.
    • mibacVm12 (V.M.12) – tylko dla osób, które ukończyły 12 lat.

  • Nowa właściwość channel zasobu invideoPromotion.items[].promotedByContentOwner wskazuje, czy podczas wyświetlania promocji będzie widoczna nazwa właściciela treści. To pole można ustawić tylko wtedy, gdy żądanie API, które ustawia wartość, jest wysyłane w imieniu właściciela treści. Więcej informacji znajdziesz w sekcji dotyczącej parametru onBehalfOfContentOwner.

1 października 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy obiekt auditDetails zasobu channel zawiera dane kanału, które sieć wielokanałowa ocenia podczas podejmowania decyzji o przyjęciu lub odrzuceniu danego kanału. Pamiętaj, że każde żądanie interfejsu API, które pobiera tę część zasobu, musi zawierać token autoryzacji z zakresem https://www.googleapis.com/auth/youtubepartner-channel-audit. Ponadto każdy token, który używa tego zakresu, musi zostać unieważniony, gdy sieć wielokanałowa zdecyduje się zaakceptować lub odrzucić kanał, lub w ciągu 2 tygodni od daty wydania tokena.

  • Właściwość invideoPromotion.items[].id.type zasobu channel obsługuje teraz wartość recentUpload, która oznacza, że promowany element to najnowszy film przesłany z określonego kanału.

    Domyślnie kanał jest taki sam jak ten, dla którego ustawione są dane promocji w filmie. Możesz jednak promować najnowszy film przesłany z innego kanału, ustawiając wartość nowej właściwości invideoPromotion.items[].id.recentlyUploadedBy na identyfikator tego kanału.

  • Zasób channel zawiera 3 nowe właściwości – brandingSettings.image.bannerTvLowImageUrl, brandingSettings.image.bannerTvMediumImageUrlbrandingSettings.image.bannerTvHighImageUrl – które określają adresy URL obrazów banerów wyświetlanych na stronach kanałów w aplikacjach telewizyjnych.

  • Nowa właściwość snippet.liveBroadcastContent w wynikach wyszukiwania wskazuje, czy zasób wideo lub kanał zawiera treści transmitowane na żywo. Prawidłowe wartości właściwości to upcoming, activenone.

    • W przypadku zasobu video wartość upcoming oznacza, że film jest transmisją na żywo, która jeszcze się nie rozpoczęła, a wartość active oznacza, że film jest trwającą transmisją na żywo.
    • W przypadku zasobu channel wartość upcoming oznacza, że kanał ma zaplanowaną transmisję, która jeszcze się nie rozpoczęła, a wartość acive oznacza, że kanał ma trwającą transmisję na żywo.

  • W zasobie watermark właściwość targetChannelId została zmieniona z obiektu na ciąg znaków. Zamiast zawierać usługę podrzędną, która określa identyfikator kanału YouTube, do którego prowadzi link z obrazu znaku wodnego, właściwość targetChannelId określa teraz tę wartość samodzielnie. W związku z tym usunięto właściwość targetChannelId.value zasobu.

  • Metoda thumbnails.set obsługuje teraz parametr onBehalfOfContentOwner, który jest już obsługiwany w przypadku kilku innych metod.

  • Metoda search.list obsługuje teraz parametr eventType, który ogranicza wyszukiwanie do aktywnych, nadchodzących lub zakończonych wydarzeń transmitowanych.

  • Nowa właściwość contentDetails.contentRating.mibacRating określa ocenę, jaką film otrzymał od włoskiego Ministerstwa Kultury i Turystyki.

  • Interfejs API obsługuje teraz te błędy:

    Typ błędu Szczegóły błędu Opis
    badRequest invalidImage Metoda thumbnails.set zwraca ten błąd, jeśli podane treści obrazu są nieprawidłowe.
    forbidden videoRatingDisabled Metoda videos.rate zwraca ten błąd, jeśli właściciel ocenianego filmu wyłączył ocenianie.

27 sierpnia 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy zasób watermark określa obraz wyświetlany podczas odtwarzania filmów z określonego kanału. Możesz też określić kanał docelowy, do którego będzie prowadzić link z obrazu, oraz szczegóły dotyczące czasu, które określają, kiedy znak wodny ma się pojawiać podczas odtwarzania filmów i jak długo ma być widoczny.

    Metoda watermarks.set przesyła i ustawia obraz znaku wodnego kanału. Metoda watermarks.unset usuwa obraz znaku wodnego kanału.

    Dokumentacja błędów zawiera opisy komunikatów o błędach, które interfejs API obsługuje w przypadku metod watermarks.setwatermarks.unset.

  • Nowa właściwość statistics.hiddenSubscriberCount zasobu channel zawiera wartość logiczną wskazującą, czy liczba subskrybentów kanału jest ukryta. Wartość właściwości to false, jeśli liczba subskrybentów kanału jest widoczna publicznie.

  • Metoda playlists.list obsługuje teraz parametry onBehalfOfContentOwneronBehalfOfContentOwnerChannel. Oba parametry są już obsługiwane w przypadku kilku innych metod.

  • Metoda videos.list obsługuje teraz parametr regionCode, który określa region treści, dla którego należy pobrać wykres. Tego parametru można używać tylko w połączeniu z parametrem chart. Wartość parametru to kod kraju w formacie ISO 3166-1 alpha-2.

  • error documentation opisano ten nowy typ błędu powszechnego, który może wystąpić w przypadku wielu metod interfejsu API:

    Typ błędu Szczegóły błędu Opis
    forbidden insufficientPermissions Zakresy powiązane z tokenem OAuth 2.0 podanym w żądaniu są niewystarczające do uzyskania dostępu do żądanych danych.

15 sierpnia 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Obiekt invideoPromotion zasobu channel ma te nowe i zaktualizowane właściwości:

  • Metoda subscriptions.list obsługuje teraz parametry onBehalfOfContentOwneronBehalfOfContentOwnerChannel. Oba parametry są już obsługiwane w przypadku kilku innych metod.

  • W odpowiedzi interfejsu API na żądanie thumbnails.set wartość właściwości kind zmieniła się z youtube#thumbnailListResponse na youtube#thumbnailSetResponse.

  • Dodaliśmy przykłady kodu dla tych metod:

    Pamiętaj, że usunęliśmy też przykład w języku Python dla metody playlistItems.insert, ponieważ funkcjonalność, którą demonstrował, jest teraz obsługiwana przez metodę videos.rate.

  • error documentation opisuje ten nowy błąd kontekstu żądania, który może wystąpić w przypadku dowolnej metody interfejsu API obsługującej parametr żądania mine:

    Typ błędu Szczegóły błędu Opis
    badRequest invalidMine Parametru mine nie można używać w przypadku żądań, w których uwierzytelniony użytkownik jest partnerem YouTube. Usuń parametr mine, uwierzytelnij się jako użytkownik YouTube, usuwając parametr onBehalfOfContentOwner, lub działaj jako jeden z kanałów partnera, podając parametr onBehalfOfContentOwnerChannel, jeśli jest dostępny dla wywoływanej metody.

8 sierpnia 2013 r.

Ta aktualizacja zawiera następujące zmiany:

30 lipca 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • W zasobie channelBanner wartość właściwości kind zmieniła się z youtube#channelBannerInsertResponse na youtube#channelBannerResource. Ten zasób jest zwracany w odpowiedzi na żądanie channelBanners.insert.

  • Nowa właściwość brandingSettings.channel.profileColor zasobu channel określa dominujący kolor, który uzupełnia treści na kanale. Wartość właściwości to znak funta (#) i 6-znakowy ciąg szesnastkowy, np. #2793e6.

  • Interfejs API umożliwia teraz określenie, czy subskrypcja dotyczy wszystkich aktywności na kanale, czy tylko nowych przesłanych filmów. Nowa właściwość contentDetails.activityType zasobu subscription określa typy działań, o których subskrybent będzie otrzymywać powiadomienia. Prawidłowe wartości właściwości to all i uploads.

  • Metoda videos.list obsługuje nowe parametry pobierania listy najpopularniejszych filmów w YouTube:

    • Parametr chart określa wykres, który chcesz pobrać. Obecnie jedyną obsługiwaną wartością jest mostPopular. Pamiętaj, że parametr chart jest parametrem filtra, co oznacza, że nie można go używać w tym samym żądaniu co inne parametry filtra (idmyRating).
    • Parametr videoCategoryId określa kategorię filmu, dla której ma zostać pobrana lista. Tego parametru można używać tylko w połączeniu z parametrem chart. Domyślnie wykresy nie są ograniczone do określonej kategorii.

  • Nowa właściwość topicDetails.relevantTopicIds[] zasobu video zawiera listę identyfikatorów tematów Freebase, które są powiązane z filmem lub jego treścią. Tematy te mogą być wspomniane w filmie lub mogą się w nim pojawiać.

  • Nazwa właściwości recordingDetails.location.elevation zasobu video została zmieniona na recordingDetails.location.altitude, a nazwa właściwości fileDetails.recordingLocation.location.elevation została zmieniona na fileDetails.recordingLocation.location.altitude.

  • Obiekt video zasobu contentDetails.contentRating określa oceny, jakie otrzymał film w ramach różnych systemów oceniania, w tym ocen MPAA, TVPG itp. W przypadku każdego systemu oceniania interfejs API obsługuje teraz wartość oceny, która wskazuje, że film nie został oceniony. Pamiętaj, że w przypadku ocen MPAA ocena „bez oceny” jest często używana do identyfikowania nieocenzurowanych wersji filmów, których ocenzurowana wersja otrzymała oficjalną ocenę.

  • Nowa właściwość contentDetails.contentRating.ytRating zasobu video określa treści z ograniczeniem wiekowym. Wartość właściwości będzie wynosić ytAgeRestricted, jeśli YouTube uzna, że film zawiera treści nieodpowiednie dla użytkowników poniżej 18 roku życia. Jeśli właściwość jest nieobecna lub jej wartość jest pusta, oznacza to, że treść nie została zidentyfikowana jako objęta ograniczeniem wiekowym.

  • Parametr mySubscribers metody channels.list został wycofany. Użyj metody subscriptions.list i jej parametru mySubscribers, aby pobrać listę subskrybentów kanału uwierzytelnionego użytkownika.

  • Metody channelBanners.insert, channels.update, videos.getRatingvideos.rate obsługują teraz parametr onBehalfOfContentOwner. Ten parametr wskazuje, że uwierzytelniony użytkownik działa w imieniu właściciela treści określonego w wartości parametru.

  • Zaktualizowaliśmy dokumentację metody channels.update, aby odzwierciedlić fakt, że można jej używać do aktualizowania obiektu brandingSettings zasobu channel i jego właściwości podrzędnych. Dokumentacja zawiera też zaktualizowaną listę właściwości, które możesz ustawić dla obiektu invideoPromotion zasobu channel.

  • Formularz error documentation zawiera następujące nowe błędy:

    Typ błędu Szczegóły błędu Opis
    forbidden accountDelegationForbidden Ten błąd nie jest związany z konkretną metodą API. Oznacza to, że uwierzytelniony użytkownik nie ma uprawnień do działania w imieniu określonego konta Google.
    forbidden authenticatedUserAccountClosed Ten błąd nie jest związany z konkretną metodą API. Oznacza to, że konto YouTube uwierzytelnionego użytkownika jest zamknięte. Jeśli użytkownik działa w imieniu innego konta Google, ten błąd oznacza, że to inne konto jest zamknięte.
    forbidden authenticatedUserAccountSuspended Ten błąd nie jest związany z konkretną metodą API. Oznacza to, że konto YouTube uwierzytelnionego użytkownika jest zawieszone. Jeśli użytkownik działa w imieniu innego konta Google, ten błąd oznacza, że to konto jest zawieszone.
    forbidden authenticatedUserNotChannel Ten błąd nie jest związany z konkretną metodą API. Oznacza to, że serwer interfejsu API nie może zidentyfikować kanału powiązanego z żądaniem interfejsu API. Jeśli żądanie jest autoryzowane i używa parametru onBehalfOfContentOwner, należy też ustawić parametr onBehalfOfContentOwnerChannel.
    forbidden cmsUserAccountNotFound Ten błąd nie jest związany z konkretną metodą API. Użytkownik CMS nie może działać w imieniu określonego właściciela treści.
    notFound contentOwnerAccountNotFound Ten błąd nie jest związany z konkretną metodą API. Nie znaleziono podanego konta właściciela treści.
    badRequest invalidPart Ten błąd nie jest związany z konkretną metodą API. Parametr part w żądaniu określa części, których nie można zapisywać w tym samym czasie.
    badRequest videoChartNotFound Metoda videos.list zwraca ten błąd, gdy żądanie określa nieobsługiwaną lub niedostępną listę przebojów wideo.
    notFound videoNotFound Metoda videos.update zwraca ten błąd, aby wskazać, że nie można znaleźć filmu, który próbujesz zaktualizować. Sprawdź, czy wartość właściwości id w treści żądania jest prawidłowa.

10 czerwca 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy parametr forUsername metody channels.list umożliwia pobieranie informacji o kanale przez podanie jego nazwy użytkownika w YouTube.

  • Metoda activities.list obsługuje teraz parametr regionCode, który nakazuje interfejsowi API zwracanie wyników związanych z określonym krajem. YouTube używa tej wartości, gdy poprzednia aktywność autoryzowanego użytkownika w YouTube nie dostarcza wystarczających informacji do wygenerowania kanału aktywności.

  • Zasoby playlisty zawierają teraz właściwość snippet.tags. Właściwość będzie zwracana tylko upoważnionym użytkownikom, którzy pobierają dane o swoich playlistach. Autoryzowani użytkownicy mogą też ustawiać tagi playlisty podczas wywoływania metod playlists.insert lub playlists.update.

  • Parametr onBehalfOfContentOwner, który był wcześniej obsługiwany w przypadku metod channels.listsearch.list, jest teraz obsługiwany także w przypadku metod videos.insert, videos.updatevideos.delete. Pamiętaj, że gdy ten parametr jest używany w wywołaniu metody videos.insert, żądanie musi też zawierać wartość nowego parametru onBehalfOfContentOwnerChannel, który identyfikuje kanał, do którego zostanie dodany film. Kanał musi być połączony z właścicielem treści określonym w parametrze onBehalfOfContentOwner.

    Ten parametr wskazuje, że dane logowania autoryzacji żądania identyfikują użytkownika systemu CMS YouTube, który działa w imieniu właściciela treści określonego w wartości parametru. Konto CMS, za pomocą którego użytkownik się uwierzytelnia, musi być połączone z określonym właścicielem treści w YouTube.

    Ten parametr jest przeznaczony dla partnerów treści, którzy są właścicielami wielu różnych kanałów YouTube i nimi zarządzają. Ten parametr umożliwia partnerom jednokrotne uwierzytelnianie i uzyskiwanie dostępu do wszystkich danych dotyczących filmów i kanałów bez konieczności podawania danych uwierzytelniających dla każdego kanału z osobna.

    W przypadku tej wersji parametr umożliwia partnerowi treści wstawianie, aktualizowanie i usuwanie filmów na dowolnym kanale YouTube, którego jest właścicielem.

  • Formularz error documentation zawiera następujące nowe błędy:

    Typ błędu Szczegóły błędu Opis
    forbidden insufficientCapabilities Ten błąd nie jest związany z konkretną metodą API. Oznacza to, że użytkownik systemu CMS wywołujący interfejs API nie ma wystarczających uprawnień do wykonania żądanej operacji. Ten błąd jest związany z użyciem parametru onBehalfOfContentOwner, który jest obsługiwany w przypadku kilku metod interfejsu API.
    unauthorized authorizationRequired Metoda activities.list zwraca ten błąd, gdy żądanie używa parametru home, ale nie jest prawidłowo autoryzowane.
  • W zasobie channels usunięto właściwość invideoPromotion.channelId, ponieważ identyfikator kanału jest już określony za pomocą właściwości id zasobu.

  • Nowy przewodnik Praca z identyfikatorami kanałów wyjaśnia, jak interfejs API używa identyfikatorów kanałów. Ten przewodnik może być szczególnie przydatny dla deweloperów, którzy przechodzą z poprzedniej wersji interfejsu API i mają aplikacje, które wysyłają prośby o treści dla default użytkownika lub opierają się na założeniu, że każdy kanał w YouTube ma unikalną nazwę użytkownika, co nie jest już prawdą.

22 maja 2013 r.

Ta aktualizacja zawiera następujące zmiany:

14 maja 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Na stronach samodzielnych znajdują się teraz przykłady kodu w językach Java, .NET, PHPRuby.

  • Strona z przykładami kodu w języku Python zawiera teraz przykłady dodawania subskrypcji, tworzenia playlisty i aktualizowania filmu.

10 maja 2013 r.

Ta aktualizacja zawiera następujące zmiany:

8 maja 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Zasoby kanału obsługują teraz obiekt inVideoPromotion, który zawiera informacje o kampanii promocyjnej powiązanej z kanałem. Kanał może używać kampanii promocyjnej w filmie, aby wyświetlać miniatury promowanego filmu w odtwarzaczu podczas odtwarzania filmów z kanału.

    Możesz pobrać te dane, uwzględniając invideoPromotion w wartości parametru part w żądaniu channels.list.

  • Nowa metoda channels.update umożliwia aktualizowanie danych kampanii promujących w filmach na kanale. Pamiętaj, że ta metoda obsługuje tylko aktualizacje części invideoPromotion zasobu channel i nie obsługuje jeszcze aktualizacji innych części tego zasobu.

2 maja 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Zasoby kanału obsługują teraz właściwość status.isLinked, która wskazuje, czy dane kanału identyfikują użytkownika, który jest już połączony z nazwą użytkownika YouTube lub kontem Google+. Użytkownik, który ma jeden z tych linków, ma już publiczną tożsamość w YouTube, która jest wymagana w przypadku wielu działań, takich jak przesyłanie filmów.

  • Zasoby subskrypcji obsługują teraz parametr subscriberSnippet. Ten obiekt zawiera dane fragmentu dotyczące kanału subskrybenta.

  • Interfejs API obsługuje teraz metodę videos.getRating, która pobiera oceny przyznane przez uwierzytelnionego użytkownika liście co najmniej 1 filmu.

  • Nowy parametr myRating metody videos.list umożliwia pobranie listy filmów, które uwierzytelniony użytkownik ocenił jako like lub dislike.

    Parametry myRatingid są teraz uznawane za parametry filtra, co oznacza, że żądanie do interfejsu API musi zawierać dokładnie jeden z tych parametrów. (Wcześniej parametr id był wymagany w przypadku tej metody).

    W przypadku żądań, które próbują pobrać informacje o ocenie filmu, ale nie mają do tego odpowiednich uprawnień, metoda zwraca błąd forbidden.

  • Wraz z wprowadzeniem parametru myRating zaktualizowaliśmy też metodę videos.list, aby obsługiwała stronicowanie. Pamiętaj jednak, że parametry stronicowania są obsługiwane tylko w przypadku żądań korzystających z parametru myRating. (Parametry i informacje dotyczące stronicowania nie są obsługiwane w przypadku żądań, które używają parametru id).

    • Parametr maxResults określa maksymalną liczbę filmów, które interfejs API może zwrócić w zestawie wyników, a parametr pageToken identyfikuje konkretną stronę w zestawie wyników, którą chcesz pobrać.

    • Zasób youtube#videoListResponse, który jest zwracany w odpowiedzi na żądanie videos.list, zawiera teraz obiekt pageInfo, który zawiera szczegóły takie jak łączna liczba wyników i liczba wyników uwzględnionych w bieżącym zestawie wyników. Zasób youtube#videoListResponse może też zawierać właściwości nextPageTokenprevPageToken, z których każda zawiera token, który można wykorzystać do pobrania konkretnej strony w zbiorze wyników.

  • Metoda videos.insert obsługuje te nowe parametry:

    • autoLevels – ustaw wartość tego parametru na true, aby poinstruować YouTube, że ma automatycznie poprawić oświetlenie i kolor filmu.
    • stabilize – ustaw tę wartość parametru na true, aby poinstruować YouTube, aby dostosował film, usuwając drgania wynikające z ruchów kamery.

  • Właściwość channelTitle została dodana do snippet w przypadku tych zasobów:

    • playlistItem – właściwość określa nazwę kanału, który dodał element playlisty.
    • playlist – właściwość określa nazwę kanału, który utworzył playlistę.
    • subscription – właściwość określa nazwę subskrybowanego kanału.

  • Dodaliśmy przykłady kodu dla tych metod:

  • Nowy parametr mySubscribers metody subscriptions.list umożliwia pobranie listy subskrybentów aktualnie uwierzytelnionego użytkownika. Tego parametru można używać tylko w odpowiednio autoryzowanym żądaniu.

    Uwaga: ta funkcja ma zastąpić parametr mySubscribers, który jest obecnie obsługiwany w przypadku metody channels.list. Ten parametr zostanie wycofany.

  • W zasobie video wartość właściwości unspecified nie jest już możliwą wartością żadnej z tych właściwości:

  • Żądania do interfejsu API, które zawierają nieoczekiwany parametr, zwracają teraz błąd badRequest, a zgłoszona przyczyna błędu to unexpectedParameter.

  • Zaktualizowaliśmy błąd, który metoda playlistItems.insert zwraca, gdy playlista zawiera już maksymalną dozwoloną liczbę elementów. Błąd jest teraz zgłaszany jako błąd forbidden, a jego przyczyna to playlistContainsMaximumNumberOfVideos.

19 kwietnia 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowa metoda videos.rate umożliwia użytkownikowi ustawienie oceny like lub dislike filmu albo usunięcie oceny filmu.

    Zaktualizowaliśmy też dokumentację błędów, aby zawierała listę błędów, które interfejs API może zwracać w odpowiedzi na wywołanie metody videos.rate.

  • W dokumentacji interfejsu API miniatury są teraz identyfikowane jako osobny zasób, a nowa metoda thumbnails.set umożliwia przesyłanie niestandardowej miniatury filmu do YouTube i ustawianie jej dla filmu.

    Zaktualizowaliśmy też dokumentację błędów, aby zawierała listę błędów, które interfejs API może zwracać w odpowiedzi na wywołanie metody thumbnails.set.

    Pamiętaj, że ta zmiana nie ma wpływu na istniejące zasoby, które zwracają miniatury. Miniatury są zwracane w tych zasobach w taki sam sposób jak wcześniej, ale w dokumentacji podano teraz nazwy różnych rozmiarów miniatur, które mogą być zwracane przez interfejs API.

  • Nowa część brandingSettings zasobu channel określa ustawienia, tekst i obrazy na stronie kanału i stronach odtwarzania filmów.

  • Zasób playlistItem zawiera te nowe właściwości:

    • Nowy obiekt status zawiera informacje o stanie elementu playlisty, a właściwość status.privacyStatus określa stan prywatności elementu playlisty.

  • Zasób video zawiera te nowe właściwości:

  • Zaktualizowaliśmy dokumentację metody playlistItems.update, aby odzwierciedlała fakt, że właściwość snippet.resourceId musi być określona w zasobie wysłanym jako treść żądania.

  • Metoda search.list obsługuje teraz te funkcje:

    • Nowy parametr forMine ogranicza wyszukiwanie tylko do filmów uwierzytelnionego użytkownika.

    • Parametr order obsługuje teraz możliwość sortowania wyników alfabetycznie według tytułu (order=title) lub według liczby filmów w kolejności malejącej (order=videoCount).

    • Nowy parametr safeSearch określa, czy wyniki wyszukiwania mają zawierać treści podlegające ograniczeniom.

  • Metoda videos.insert obsługuje kilka nowych błędów, które są wymienione w tabeli poniżej:

    Typ błędu Szczegóły błędu Opis
    badRequest invalidCategoryId Właściwość snippet.categoryId określa nieprawidłowy identyfikator kategorii. Aby pobrać obsługiwane kategorie, użyj metody videoCategories.list.
    badRequest invalidRecordingDetails Symbol metadata wskazuje nieprawidłowe szczegóły nagrania.
    badRequest invalidVideoGameRating Metadane żądania zawierają nieprawidłową ocenę gry wideo.
    badRequest invalidVideoMetadata Metadane żądania są nieprawidłowe.
  • Parametr onBehalfOfContentOwner został usunięty z listy obsługiwanych parametrów metod videos.updatevideos.delete.

12 marca 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Właściwość channelTitle została dodana do snippet w przypadku tych zasobów:

    • activity – właściwość określa nazwę kanału odpowiedzialnego za działanie.
    • search – właściwość określa nazwę kanału powiązanego z zasobem, który jest identyfikowany przez wynik wyszukiwania.
    • video – właściwość określa nazwę kanału, na który przesłano film.

  • Metoda search.list obsługuje te nowe parametry:

    • Parametr channelType umożliwia ograniczenie wyszukiwania kanałów do wszystkich kanałów lub tylko programów.

    • Parametr videoType pozwala ograniczyć wyszukiwanie filmów, aby pobrać wszystkie filmy, tylko filmy lub tylko odcinki seriali.

  • Definicja części recordingDetails zasobu video została zaktualizowana. Zawiera teraz informację, że obiekt będzie zwracany w przypadku filmu tylko wtedy, gdy ustawione są dane geolokalizacyjne filmu lub czas nagrania.

  • Metoda playlistItems.update zwraca teraz błąd invalidSnippet, który jest zwracany, jeśli żądanie interfejsu API nie określa prawidłowego fragmentu kodu.

  • Kilka metod interfejsu API obsługuje nowe parametry przeznaczone wyłącznie dla partnerów YouTube. Partnerzy treści w YouTube to studia filmowe i telewizyjne, wytwórnie płytowe oraz inni twórcy, którzy udostępniają swoje treści w YouTube.

    • Parametr onBehalfOfContentOwner wskazuje, że dane logowania autoryzacji żądania identyfikują użytkownika systemu CMS YouTube, który działa w imieniu właściciela treści określonego w wartości parametru. Konto CMS, za pomocą którego użytkownik się uwierzytelnia, musi być połączone z określonym właścicielem treści w YouTube.

      Ten parametr jest przeznaczony dla partnerów treści, którzy są właścicielami wielu różnych kanałów YouTube i nimi zarządzają. Ten parametr umożliwia partnerom jednokrotne uwierzytelnienie i uzyskanie dostępu do wszystkich danych dotyczących filmów i kanałów bez konieczności podawania danych uwierzytelniających dla każdego kanału z osobna.

      Ten parametr jest obsługiwany przez metody channels.list, search.list, videos.delete, videos.list i videos.update.

    • Parametr managedByMe, który jest obsługiwany przez metodę channels.list, nakazuje interfejsowi API zwrócenie wszystkich kanałów należących do właściciela treści określonego przez parametr onBehalfOfContentOwner.

    • Parametr forContentOwner, który jest obsługiwany przez metodę search.list, nakazuje interfejsowi API ograniczenie wyników wyszukiwania do zasobów należących do właściciela treści określonego przez parametr onBehalfOfContentOwner.

25 lutego 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Interfejs API obsługuje kilka nowych części i właściwości zasobów video:

    • Nowe sekcje fileDetails, processingDetails i suggestions zawierają informacje o przesłanych filmach dla ich właścicieli. Te dane są bardzo przydatne w aplikacjach, które umożliwiają przesyłanie filmów. Obejmują one:

      • stan i postęp przetwarzania,
      • błędy lub inne problemy napotkane podczas przetwarzania filmu;
      • dostępność miniatur,
      • sugestie dotyczące poprawy jakości filmu lub metadanych;
      • szczegóły oryginalnego pliku przesłanego do YouTube;

      Wszystkie te części może pobrać tylko właściciel filmu. Poniżej znajdziesz krótki opis nowych części, a w videodokumentacji zasobów znajdziesz definicje wszystkich właściwości, które zawiera każda z nich.

      • Obiekt fileDetails zawiera informacje o pliku wideo przesłanym do YouTube, w tym rozdzielczość pliku, czas trwania, kodeki audio i wideo, szybkość transmisji strumieniowej i inne dane.

      • Obiekt processingProgress zawiera informacje o postępach YouTube w przetwarzaniu przesłanego pliku wideo. Właściwości obiektu określają bieżący stan przetwarzania i szacują czas pozostały do zakończenia przetwarzania filmu przez YouTube. Ta część wskazuje też, czy dla filmu są dostępne różne typy danych lub treści, takie jak szczegóły pliku lub miniatury.

        Ten obiekt jest przeznaczony do odpytywania, aby osoba przesyłająca film mogła śledzić postępy YouTube w przetwarzaniu przesłanego pliku wideo.

      • Obiekt suggestions zawiera sugestie, które wskazują możliwości poprawy jakości filmu lub metadanych przesłanego filmu.

    • Część contentDetails zawiera 4 nowe właściwości. Te właściwości można pobierać za pomocą nieuwierzytelnionych żądań.

      • dimension – wskazuje, czy film jest dostępny w 2D czy 3D.
      • definition – określa, czy film jest dostępny w standardowej czy wysokiej rozdzielczości.
      • caption – wskazuje, czy napisy są dostępne w filmie.
      • licensedContent – informuje, czy film zawiera treści, do których prawa zgłosił partner treści YouTube.

    • Część status zawiera 2 nowe właściwości. Właściciele filmów mogą ustawiać wartości obu właściwości podczas wstawiania lub aktualizowania filmu. Te właściwości można też pobierać za pomocą nieuwierzytelnionych żądań.

      • embeddable – określa, czy film może być umieszczany w innej witrynie.
      • license – określa licencję filmu. Prawidłowe wartości to creativeCommonyoutube.

  • Definicja parametru part została zaktualizowana w przypadku metod videos.list, videos.insertvideos.update, aby uwzględniać nowo dodane części opisane powyżej, a także część recordingDetails, która została przypadkowo pominięta.

  • Nowa właściwość contentDetails.googlePlusUserId zasobu channel określa identyfikator profilu Google+ powiązanego z kanałem. Tej wartości można użyć do wygenerowania linku do profilu Google+.

  • Każdy obiekt miniatury zawiera teraz szerokość i wysokość obrazu. Obecnie miniatury są zwracane w zasobach activity, channel, playlist, playlistItem, search result, subscriptionvideo.

  • playlistItems.list obsługuje teraz parametr videoId, którego można używać w połączeniu z parametrem playlistId, aby pobierać tylko element playlisty reprezentujący określony film.

    Jeśli film, który identyfikuje parametr, nie zostanie znaleziony na playliście, interfejs API zwróci notFoundbłąd.

  • W dokumentacji błędów opisano nowy błąd forbidden, który oznacza, że żądanie nie jest odpowiednio autoryzowane do wykonania żądanego działania.

  • Właściwość snippet.channelId zasobu channel została usunięta. Właściwość id zasobu ma tę samą wartość.

30 stycznia 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowa strona błędów zawiera listę błędów, które może zwrócić interfejs API. Strona zawiera ogólne błędy, które mogą wystąpić w przypadku wielu różnych metod interfejsu API, a także błędy specyficzne dla poszczególnych metod.

16 stycznia 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Przykłady kodu są teraz dostępne w przypadku metod i języków wymienionych na liście poniżej:

  • activity Zasób może teraz zgłaszać channelItem działanie, które ma miejsce, gdy YouTube dodaje film do automatycznie wygenerowanego kanału w YouTube. (Algorytm YouTube identyfikuje tematy, które cieszą się na naszej platformie dużą popularnością, i automatycznie tworzy dla nich kanały).

  • Zaktualizowaliśmy te parametry search.list:

    • Parametr q nie jest już oznaczony jako filtr, co oznacza, że…
    • Parametr relatedToVideo nosi teraz nazwę relatedToVideoId.
    • Parametr published został zastąpiony 2 nowymi parametrami: publishedAfterpublishedBefore, które zostały opisane poniżej.

  • Metoda search.list obsługuje te nowe parametry:

    Nazwa parametru Wartość Opis
    channelId string Zwraca zasoby utworzone przez określony kanał.
    publishedAfter datetime Zwraca zasoby utworzone po określonym czasie.
    publishedBefore datetime Zwraca zasoby utworzone przed określonym czasem.
    regionCode string Zwraca zasoby dla określonego kraju.
    videoCategoryId string Filtruj wyniki wyszukiwania filmów, aby uwzględniać tylko filmy powiązane z określoną kategorią filmu.
    videoEmbeddable string Filtruj wyniki wyszukiwania filmów, aby uwzględniać tylko te, które można odtworzyć w odtwarzaczu umieszczonym na stronie internetowej. Aby pobrać tylko filmy, które można umieścić na stronie, ustaw wartość parametru na true.
    videoSyndicated string Filtruj wyniki wyszukiwania filmów, aby uwzględniać tylko te, które można odtwarzać poza YouTube.com. Aby pobierać tylko filmy udostępniane w ramach syndykacji, ustaw wartość parametru na true.
  • Kilka zasobów interfejsu API obsługuje nowe właściwości. W tabeli poniżej znajdziesz zasoby i ich nowe właściwości:

    Zasób Nazwa usługi Wartość Opis
    activity contentDetails.playlistItem.playlistItemId string Identyfikator elementu playlisty przypisany przez YouTube, który jednoznacznie identyfikuje element na playliście.
    activity contentDetails.channelItem object Obiekt zawierający informacje o zasobie, który został dodany do kanału. Ta właściwość występuje tylko wtedy, gdy element snippet.type ma wartość channelItem.
    activity contentDetails.channelItem.resourceId object Obiekt, który identyfikuje zasób dodany do kanału. Podobnie jak inne właściwości resourceId zawiera ona właściwość kind, która określa typ zasobu, np. film lub playlista. Zawiera też dokładnie jedną z kilku właściwości – videoId, playlistId itp. – która określa identyfikator jednoznacznie identyfikujący ten zasób.
    channel status object Ten obiekt zawiera informacje o stanie prywatności kanału.
    channel status.privacyStatus string Stan prywatności kanału. Prawidłowe wartości to privatepublic.
    playlist contentDetails object Ten obiekt zawiera metadane dotyczące treści playlisty.
    playlist contentDetails.itemCount unsigned integer Liczba filmów na playliście.
    playlist player object Ten obiekt zawiera informacje, które umożliwiają odtwarzanie playlisty w odtwarzaczu umieszczonym na stronie.
    playlist player.embedHtml string Tag <iframe>, który umieszcza odtwarzacz wideo odtwarzający playlistę.
    video recordingDetails object Ten obiekt zawiera informacje, które identyfikują lub opisują miejsce i czas nagrania filmu.
    video recordingDetails.location object Ten obiekt zawiera informacje o geolokalizacji powiązane z filmem.
    video recordingDetails.location.latitude double Szerokość geograficzna w stopniach.
    video recordingDetails.location.longitude double Długość geograficzna w stopniach.
    video recordingDetails.location.elevation double Wysokość nad ziemią w metrach.
    video recordingDetails.locationDescription string Tekstowy opis miejsca, w którym nagrano film.
    video recordingDetails.recordingDate datetime Data i godzina nagrania filmu. Wartość jest podana w formacie ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
  • W dokumentacji kilku metod interfejsu API znajdują się teraz informacje o właściwościach, które muszą być określone w treści żądania lub które są aktualizowane na podstawie wartości w treści żądania. W tabeli poniżej znajdziesz listę tych metod oraz wymagane i modyfikowalne właściwości.

    Uwaga: dokumentacja innych metod może już zawierać listę wymaganych i modyfikowalnych właściwości.

    Metoda Właściwości
    activities.insert Właściwości wymagane:
    • snippet.description
    Właściwości, które można modyfikować:
    • snippet.description
    • contentDetails.bulletin.resourceId
    playlists.update Właściwości wymagane:
    • id
    playlistItems.update Właściwości wymagane:
    • id
    videos.update Właściwości wymagane:
    • id
  • Interfejs API nie zgłasza już playlistAlreadyExists błędu, jeśli spróbujesz utworzyć lub zaktualizować playlistę, która miałaby taki sam tytuł jak playlista, która już istnieje na tym samym kanale.

  • Kilka metod interfejsu API obsługuje nowe typy błędów. W tabeli poniżej znajdziesz metodę i nowo obsługiwane błędy:

    Metoda Typ błędu Szczegóły błędu Opis
    guideCategories.list notFound notFound Nie można znaleźć kategorii przewodnika określonej przez parametr id. Aby pobrać listę prawidłowych wartości, użyj metody guideCategories.list.
    playlistItems.delete forbidden playlistItemsNotAccessible Żądanie nie jest odpowiednio autoryzowane do usunięcia określonego elementu playlisty.
    videoCategories.list notFound videoCategoryNotFound Nie znaleziono kategorii filmu określonej przez parametr id. Aby pobrać listę prawidłowych wartości, użyj metody videoCategories.list.