Historia zmian

Na tej stronie znajdziesz informacje o zmianach w YouTube Data API (v3) i aktualizacjach dokumentacji. Zasubskrybuj ten dziennik zmian. Subskrybuj

13 marca 2024 r.

Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

Ta aktualizacja zawiera następujące zmiany:

Parametr sync metod captions.insert i captions.update został wycofany. Od 12 kwietnia 2024 r. YouTube przestanie obsługiwać ten parametr.

Z tego powodu podczas wstawiania lub aktualizowania ścieżek napisów deweloperzy muszą podać informacje o czasie. W przeciwnym razie przesyłanie się nie powiedzie.

12 marca 2024 r.

Ta aktualizacja zawiera następujące zmiany:

Dokumentacja zasobu captions została zaktualizowana, aby uwzględnić, ż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 powiadomienie o wycofaniu tych funkcji.

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 określenie jego nicka w YouTube.

9 listopada 2023 r.

Wszystkie odniesienia do zasobu videoId w domenie Comments zostały usunięte, ponieważ zasób videoId nie jest zwracany za pomocą wywołania interfejsu API.

12 września 2023 r.

Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

Metoda comments.markAsSpam jest wycofywana od kilku lat. Ta metoda nie jest już obsługiwana w YouTube i nie jest obsługiwana przez interfejs API.

Do wszystkich dokumentów odnoszących się do metody comments.markAsSpam zostało dodane powiadomienie o wycofaniu.

22 sierpnia 2023 r.

Metoda search.list obsługuje teraz parametr videoPaidProductPlacement. Umożliwia on filtrowanie wyników wyszukiwania, by uwzględniać tylko te filmy, które twórca oznaczył jako płatną promocję.

18 sierpnia 2023 r.

Zaktualizowaliśmy definicję atrybutu liveStreamingDetails.concurrentViewers zasobu video, aby uwzględnić, że liczba równoczesnych widzów zwracanych przez interfejs YouTube Data API może różnić się od liczby przetworzonych, pozbawionych spamu liczby równoczesnych widzów dostępnej w Statystykach YouTube. Więcej informacji o danych transmisji na żywo znajdziesz w Centrum pomocy YouTube.

7 sierpnia 2023 r.

zgodnie z zapowiedzią z 12 czerwca 2023 r. parametr relatedToVideoId metody search.list został wycofany. Ten parametr nie jest już obsługiwany, a odniesienia 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 kanał przesłano zbyt wiele miniatur. Spróbuj ponownie później.

12 czerwca 2023 r.

Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

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

W dokumentacji metody search.list pojawiło się teraz powiadomienie o wycofaniu. Ten parametr zostanie całkowicie usunięty z dokumentacji search.list 7 sierpnia 2023 r. lub później.

Poza tym z przewodnika po implementacji interfejsu API usunęliśmy przykład pokazujący, jak pobierać podobne filmy.

22 sierpnia 2022 r.

Poprawiono adnotacje typu w polach video.statistics na ciąg znaków z niepodpisanym ciągiem znaków.

5 sierpnia 2022 r.

Zmieniliśmy sposób generowania identyfikatorów napisów. W ramach tej zmiany do wszystkich ścieżek z napisami przypisujemy nowe identyfikatory. Ta zmiana może być niekompatybilną wstecznie w przypadku aplikacji, które przechowują wartości caption_id, ale nie będzie to miało 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. W tym momencie wywołanie dowolnej z tych metod interfejsu API ze starym identyfikatorem ścieżki napisów będzie powodować błąd captionNotFound.

Aby przygotować się na tę zmianę, do 1 grudnia 2022 roku musisz całkowicie zastąpić wszystkie zapisane dane ścieżek napisów. Oznacza to, że w przypadku każdego filmu, w którym przechowujesz dane ścieżek napisów, musisz usunąć obecnie zapisane 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.

Warunki korzystania z usług YouTube API zostały zaktualizowane. Aby uzyskać więcej informacji, zapoznaj się z Warunkami korzystania z usług YouTube API – historia zmian.

27 kwietnia 2022 r.

Zaktualizowaliśmy opis metody videos.insert, by uwzględnić, że maksymalny rozmiar przesyłanych filmów zwiększył się z 128 GB do 256 GB.

8 kwietnia 2022 r.

Definicje parametrów myRecentSubscribers i mySubscribers metody subscriptions.list zostały zaktualizowane, aby uwzględnić, że maksymalna liczba subskrybentów zwracanych przez interfejs API może być ograniczona. Ta zmiana jest poprawką w dokumentacji, a nie zmianą działania interfejsu API.

15 grudnia 2021 r.

Zgodnie z zapowiedzią z 18 listopada 2021 r. w związku ze zmianami, które sprawią, że liczba ocen „Nie podoba mi się” będzie prywatna na całej platformie YouTube, właściwość statistics.dislikeCount zasobu video jest teraz prywatna.

Więcej informacji na temat tej zmiany znajdziesz na oficjalnym blogu YouTube.

18 listopada 2021 r.

Wraz ze zmianami, które powodują, że liczba ocen negatywnych filmów jest prywatna na całej platformie YouTube, od 13 grudnia 2021 r. wartość statistics.dislikeCount zasobu video zostanie ustawiona jako prywatna. Oznacza to, że właściwość zostanie uwzględniona w odpowiedzi interfejsu API z punktu końcowego videos.list tylko wtedy, gdy żądanie do interfejsu 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 ocen negatywnych, a mimo to potrzebują tej liczby, by ich klient korzystający z interfejsu API używał jej, mogą poprosić o umieszczenie ich na liście dozwolonych i zezwolić na wyjątek. Aby ubiegać się o zwolnienie, musisz wypełnić ten formularz zgłoszeniowy.

Więcej informacji na temat tej zmiany znajdziesz na oficjalnym blogu YouTube.

2 lipca 2021 r.

Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

Punkt końcowy commentThreads.update został wycofany i nie jest już obsługiwany. Ten punkt końcowy zawiera zduplikowane funkcje dostępne w innych punktach końcowych interfejsu API. Zamiast tego możesz wywołać funkcję comments.update

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

1 lipca 2021 r.

Aby otrzymać więcej niż wynosi domyślny limit 10 000 jednostek,wszyscy deweloperzy korzystający z usług API YouTube muszą przejść kontrolę zgodności interfejsów API. Do tej pory zarówno proces kontroli zgodności, jak i prośby o zwiększenie przydziału jednostek limitów były prowadzone przez deweloperów wypełniających i przesyłających formularz dotyczący audytu i zwiększania limitów w ramach usług interfejsu API YouTube.

Aby sprecyzować te procesy i lepiej zaspokoić potrzeby deweloperów korzystających z naszych usług interfejsu API, dodaliśmy 3 nowe formularze i poradnik na temat ich wypełniania:

  • Formularz próśb deweloperów o sprawdzenie: deweloperzy, którzy przeszli już audyt zgodności interfejsu API, mogą wypełnić i przesłać ten krótszy formularz, aby poprosić o zwiększenie limitu.
  • Formularz odwołania: deweloperzy, których projekty interfejsu API nie przeszły kontroli zgodności (lub którym odmówiono zwiększenia limitu liczby jednostek), mogą wypełnić i przesłać ten formularz.
  • Zmiana formularza kontroli: deweloperzy lub dowolne podmioty obsługujące klienta interfejsu API w imieniu dewelopera doświadczają zmiany kontroli (np. w wyniku zakupu lub sprzedaży akcji, fuzji przedsiębiorstw bądź innego rodzaju transakcji firmowej) związanej z projektem API muszą wypełnić i przesłać ten formularz. Dzięki temu zespół YouTube ds. interfejsów API może aktualizować nasze dane, kontrolować zgodność z przypadkami użycia nowego projektu API i weryfikować obecny przydział dewelopera.

Każdy nowy formularz będzie zawierał informację o tym, jak zamierzasz używać interfejsu API YouTube, i ułatwi nam udzielanie lepszej pomocy.

Więcej informacji znajdziesz w naszym nowym przewodniku po audytach zgodności interfejsów API.

12 maja 2021 r.

Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

Ta aktualizacja obejmuje następujące zmiany w interfejsie API:

  • Właściwość contentDetails.relatedPlaylists.favorites zasobu channel została wycofana. Funkcja ulubionych filmów jest już wycofywana od kilku lat, jak wskazaliśmy w artykule historii zmian 28 kwietnia 2016 r.

    Przed tą aktualizacją interfejs API nadal tworzył nową playlistę, jeśli klient API próbował dodać film do nieistniejącej playlisty Ulubione. Od tej pory w tym przypadku nie będzie można utworzyć playlisty, a interfejs API zwróci błąd. Próby modyfikacji playlist ulubionych przez dodanie, zmodyfikowanie lub usunięcie elementów również są wycofywane zgodnie z wcześniejszymi ogłoszeniami i mogą w każdej chwili zacząć zwracać błędy.

  • Poniższe właściwości zasobów channel zostały wycofane. Te właściwości nie są już obsługiwane w interfejsie YouTube Studio ani w YouTube. Dlatego też nie są 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 właściwości zostały usunięte z reprezentacji zasobu channel, a ich definicje zostały usunięte z listy właściwości zasobu. Z dokumentacji konkretnej metody usunęliśmy też błędy związane z tymi właściwościami.

  • Poniższe właściwości zasobów channelSection zostały wycofane. Te właściwości nie są już obsługiwane w interfejsie YouTube Studio ani w YouTube. Dlatego też nie są 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ą wycofaliśmy też parametr hl metody channelSection.list, ponieważ obsługiwane przez nią funkcje nie są obsługiwane.

    Wszystkie właściwości zostały usunięte z reprezentacji zasobu channelSection, a ich definicje zostały usunięte z listy właściwości zasobu. Z dokumentacji konkretnej metody usunęliśmy też błędy związane z tymi właściwościami.

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

    • likedPlaylists
    • likes
    • postedPlaylists
    • postedVideos
    • recentActivity
    • recentPosts
  • Właściwość snippet.tags[] zasobu playlist została wycofana. Ta właściwość nie jest już obsługiwana w YouTube, dlatego nie jest 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.list i playlists.update obsługują nowy błąd playlistOperationUnsupported. Ten błąd występuje, gdy żądanie próbuje wykonać operację, która nie jest dozwolona w przypadku konkretnej playlisty. Użytkownik nie może na przykład usunąć filmu z playlisty z przesłanymi filmami ani samej playlisty.

    We wszystkich przypadkach ten błąd zwraca kod odpowiedzi HTTP 400 (Bad Request).

  • Błędy watchHistoryNotAccessible i watchLaterNotAccessible metody playlistItems.list zostały usunięte z dokumentacji. Choć historia oglądania użytkowników i listy Do obejrzenia są w rzeczywistości niedostępne przez interfejs API, interfejs API nie zwraca tych błędów.

15 października 2020 r.

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

  • Nowa sekcja III.E.4.i zawiera dodatkowe informacje na temat danych zbieranych i przesyłanych za pomocą umieszczonego odtwarzacza YouTube. Ponosisz odpowiedzialność za wszelkie dane użytkownika, które przesyłasz za pomocą dowolnego odtwarzacza YouTube umieszczonego na stronie, zanim użytkownik wejdzie w interakcję z nim, aby określić zamiar odtwarzania. Jeśli chcesz ograniczyć dane udostępniane YouTube, zanim użytkownik wejdzie w interakcję z odtwarzaczem, ustaw autoodtwarzanie na Fałsz.
  • Nowa sekcja III.E.4.j dotyczy sprawdzania stanu treści przeznaczonych dla dzieci przed umieszczeniem ich w swoich witrynach i aplikacjach. Ponosisz odpowiedzialność za fakt, że filmy umieszczone przez Ciebie w kliencie API są przeznaczone dla dzieci, oraz za odpowiednie traktowanie danych zbieranych z umieszczonego odtwarzacza. W związku z tym musisz sprawdzić stan treści, korzystając z interfejsu YouTube Data API, zanim umieścisz je w kliencie API za pomocą odtwarzacza umieszczonego w YouTube.

Nowy przewodnik Sprawdzanie stanu filmu na podstawie statusu MadeForKids wyjaśnia, jak sprawdzić stan filmu jako przeznaczony dla dzieci za pomocą usługi YouTube Data API.

W związku z tymi zmianami w dokumentacji dotyczącej osadzonych parametrów dodaliśmy przypomnienie, że po włączeniu autoodtwarzania odtwarzanie będzie odbywać się bez interakcji użytkownika z odtwarzaczem. Dane o odtwarzaniu będą zbierane i udostępniane już po wczytaniu strony.

8 października 2020 r.

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

  • Obiekt snippet.thumbnails, który identyfikuje obrazy miniatur kanału, może być pusty w przypadku nowo utworzonych kanałów. Wypełnienie może potrwać 1 dzień.
  • Właściwość statistics.videoCount pokazuje tylko liczbę publicznych filmów na kanale (nawet dla właścicieli). Wynika to z liczb wyświetlanych w witrynie YouTube.
  • Słowa kluczowe w kanale wskazane we właściwości brandingSettings.channel.keywords mogą zostać obcięte, jeśli przekraczają maksymalną dozwoloną długość 500 znaków lub zawierają cudzysłów bez zmiany znaczenia ("). Pamiętaj, że limit 500 znaków to nie limit na słowo kluczowe, ale o łączną długość wszystkich słów kluczowych. Jest to podobne do tego na stronie YouTube.

9 września 2020 r.

Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

Ta aktualizacja obejmuje podane niżej zmiany w interfejsie API. Wszystkie zmiany wejdą w życie nie wcześniej niż 9 września 2020 roku (dzień ogłoszenia). W związku z tym deweloperzy nie powinni już korzystać z wymienionych poniżej funkcji interfejsu API.

  • Następujące zasoby, metody, parametry i właściwości zasobów interfejsu API zostały natychmiast wycofane i przestaną działać nie wcześniej niż w dniu tego ogłoszenia:
    • Te właściwości zasobu channel:
      • Właściwość statistics.commentCount
      • Obiekt brandingSettings.image i wszystkie jego właściwości podrzędne
      • Lista brandingSettings.hints i wszystkie jej 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 do interfejsu API ustawia wartość parametru 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 jakichkolwiek żądań.
  • 11 sierpnia 2016 r. właściwości contentDetails.relatedPlaylists.watchLater i contentDetails.relatedPlaylists.watchHistory zasobu channel zostały ogłoszone jako wycofane. Metody playlistItems.insert i playlistItems.delete także zostały w pełni wycofane, a obie właściwości zostały usunięte z dokumentacji.
  • Parametr mySubscribers metody channels.list, który 30 lipca 2013 r. ogłosiliśmy jako wycofany, został usunięty z dokumentacji. Użyj metody subscriptions.list i jej parametru mySubscribers, aby pobrać listę subskrybentów kanału uwierzytelnionego użytkownika.
  • Obiekt invideoPromotion zasobu channel i wszystkie jego właściwości podrzędne, które 27 listopada 2017 r. ogłosiliśmy jako wycofane, zostały usunięte z dokumentacji.

29 lipca 2020 r.

Uprościliśmy proces naliczania opłat za żądania do interfejsu API, usuwając dodatkowe koszty związane z parametrem part. Od razu będziemy naliczać tylko koszt podstawowy wywołanej metody. Więcej informacji o uproszczonym limicie znajdziesz tutaj.

Efektem tej zmiany jest to, że większość wywołań interfejsu API będzie miała nieco niższy limit, podczas gdy niektóre wywołania interfejsu API będą nadal generowały ten sam koszt. Ta zmiana nie zwiększy kosztów żadnych wywołań interfejsu API. Ogólnie prawdopodobnym wpływem jest to, że przydzielony limit, który można zobaczyć w konsoli Google Cloud, schodzi nieco dalej.

Zdecydowanie zalecamy wszystkim deweloperom przeprowadzenie kontroli zgodności w swoich projektach, aby zapewnić nieprzerwany dostęp do usług interfejsu YouTube API.

Ten wpis historii zmian został pierwotnie opublikowany 20 lipca 2020 r.

28 lipca 2020 r.

Wszystkie filmy z niezweryfikowanych projektów API utworzonych po 28 lipca 2020 r. przesłane przez punkt końcowy videos.insert będą ograniczone do trybu wyświetlania prywatnego. Aby usunąć to ograniczenie, każdy projekt musi przejść kontrolę w celu zweryfikowania zgodności z Warunkami korzystania z usługi.

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

Obecnie ta zmiana nie ma wpływu na projekty API utworzone przed 28 lipca 2020 r. Zdecydowanie zalecamy jednak wszystkim deweloperom przejście audytu zgodności w swoich projektach, aby zapewnić nieprzerwany dostęp do usług interfejsu YouTube API.

21 lipca 2020 r.

[Zaktualizowano 28 lipca 2020 r.] Aktualizacja dokumentacji, do której odwołuje się ten wpis historii zmian, została ponownie opublikowana 28 lipca 2020 r.

Wczoraj opublikowaliśmy aktualizację dokumentacji dotyczącą procesu naliczania limitu. Jednak ze względu na nieprzewidziane okoliczności zmiana limitu nie została jeszcze wprowadzona. W związku z tym cofnęliśmy dokumentację, aby zapewnić ich dokładność. Aby uniknąć nieporozumień, wpis historii zmian wyjaśniający tę zmianę został usunięty i w najbliższej przyszłości opublikujemy go ponownie.

7 lipca 2020 r.

Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

Parametry autoLevels i stabilize metody videos.insert zostały wycofane, a obydwa parametry zostały usunięte z dokumentacji. Ich wartości są ignorowane i nie mają wpływu na sposób przetwarzania nowo przesyłanych filmów.

15 czerwca 2020 r.

Nowy przewodnik Zgodność z zasadami dla deweloperów w YouTube zawiera wskazówki i przykłady, które pomogą Ci zadbać o to, by Twoi klienci korzystający z interfejsu API przestrzegali określonych warunków oraz zasad dotyczących usług interfejsu API YouTube.

Te wskazówki pokazują, jak YouTube egzekwuje niektóre aspekty Warunków korzystania z interfejsu API, ale nie zastępuje żadnych istniejących dokumentów. Ten przewodnik zawiera odpowiedzi na niektóre z najczęstszych pytań, jakie deweloperzy zadają podczas kontroli zgodności z interfejsami API. Mamy nadzieję, że ułatwi to proces tworzenia funkcji, ponieważ pomoże Ci zrozumieć, jak interpretujemy i egzekwujemy nasze zasady.

4 czerwca 2020 r.

Uwaga: to jest aktualizacja dotycząca wcześniejszego wycofania.

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

17 kwietnia 2020 r.

Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

Wycofujemy funkcję biuletynu o kanałach w YouTube. Z tego powodu metoda activities.insert zostanie wycofana, a metoda activities.list przestanie zwracać biuletyny kanałów. Zmiany te wejdą w życie w interfejsie API 18 maja 2020 roku 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 osobę wspierającą kanał w YouTube. Wspierający zapewnia cyklicznie wsparcie finansowe twórcy i otrzymuje wyjątkowe korzyści. Na przykład wspierający mogą rozmawiać na czacie, gdy twórca włączy tryb tylko dla wspierających.

      Ten zasób zastępuje zasób sponsor, który jest udokumentowany w ramach interfejsu YouTube Live Streaming API. Zasób sponsor został wycofany, a klienty interfejsu API powinny aktualizować wywołania metody sponsors.list, aby używały zamiast niej metody members.list.

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

Styczeń 10, 2020

Interfejs API umożliwia teraz identyfikowanie treści skierowanych do dzieci, które YouTube nazywa „przeznaczone dla dzieci”. Więcej informacji o treściach przeznaczonych dla dzieci znajdziesz w Centrum pomocy YouTube.

Zasoby channel i video obsługują 2 nowe usługi, 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ł, czy film jest przeznaczony 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 metody videos.insert lub videos.update.

    Pamiętaj, że ta właściwość jest uwzględniana w odpowiedziach interfejsu API tylko wtedy, gdy właściciel kanału autoryzował żądanie do interfejsu API.channelvideo
  • Właściwość madeForKids umożliwia każdemu użytkownikowi sprawdzenie, czy kanał lub film jest oznaczony jako przeznaczony dla dzieci. Stan może być np. określany na podstawie wartości właściwości selfDeclaredMadeForKids. Więcej informacji o określaniu odbiorców kanału, filmów i transmisji znajdziesz w Centrum pomocy YouTube.

Zaktualizowaliśmy również Warunki korzystania z usług YouTube API oraz zasady dla deweloperów. Aby uzyskać więcej informacji, zapoznaj się z Warunkami korzystania z usług YouTube API – historia zmian. Zmiany w Warunkach korzystania z usług YouTube API oraz zasadach dla deweloperów zaczną obowiązywać 10 stycznia 2020 r. czasu pacyficznego.

10 września 2019 r.

Dokumentacja API dotycząca interfejsów API została zaktualizowana, aby uwzględnić zmianę sposobu raportowania liczby subskrybentów w YouTube i tym samym w odpowiedziach interfejsu API. W wyniku tej zmiany liczba subskrybentów zwracana przez YouTube Data API jest zaokrąglana w dół do 3 znaczących wartości w przypadku osób, które mają ponad 1000 subskrybentów. Ta zmiana wpływa na właściwość statistics.subscriberCount zasobu channel.

Uwaga: ta zmiana wpływa na tę wartość usługi nawet w przypadku, gdy użytkownik wysyła autoryzowane żądanie udostępnienia danych dotyczących jego kanału. Właściciele kanałów nadal mogą sprawdzić dokładną liczbę subskrybentów w YouTube Studio.

Jeśli np. 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 interfejsu API i ich skracania w innych publicznie widocznych interfejsach YouTube:

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:

  • Zaktualizowaliśmy dokumentację interfejsu API, aby lepiej wyjaśnić typowe przypadki użycia każdej metody i dostarczać dynamicznych próbek kodu wysokiej jakości za pomocą widżetu Eksploratora interfejsów API. Przykład znajdziesz w dokumentacji metody channels.list. Na stronach pojawiły się teraz 2 nowe elementy opisujące metody interfejsu API:

    • Widżet Eksploratora interfejsów API pozwala wybierać zakresy autoryzacji, wpisywać przykładowe parametry i wartości właściwości, a następnie wysyłać rzeczywiste żądania do interfejsu API i wyświetlać rzeczywiste odpowiedzi interfejsu API. Widżet umożliwia też widok pełnoekranowy, w którym widać pełne przykłady kodu, które dynamicznie się aktualizują, tak aby korzystały z wpisanych przez Ciebie zakresów i wartości.

    • W sekcji Typowe przypadki użycia opisano co najmniej 1 typowy przypadek użycia metody opisanej 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.

      Korzystając z linków w tej sekcji, możesz wypełnić narzędzie APIs Explorer przykładowymi wartościami na potrzeby danego przypadku użycia lub otworzyć pełnoekranowe eksplorator interfejsów API z wypełnionymi już wartościami. Zmiany te mają ułatwić przeglądanie przykładów kodu, które mają bezpośrednie zastosowanie w swoim przypadku użycia, który próbujesz zaimplementować w swojej aplikacji.

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

  • Narzędzie przykładowego kodu zostało również zaktualizowane o nowy interfejs użytkownika, który udostępnia wszystkie funkcje opisane powyżej. Za jego pomocą możesz poznać przypadki użycia różnych metod, wczytać wartości w interfejsie APIs Explorer i otworzyć pełnoekranowy interfejs API Explorer, aby uzyskać przykłady kodu w językach Java, JavaScript, PHP i Python.

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

  • Zaktualizowaliśmy krótkie przewodniki dotyczące Java, JavaScript, PHP i Pythona. W poprawionych przewodnikach wyjaśniamy, jak uruchomić jeden przykład z kluczem interfejsu API i drugi z identyfikatorem klienta OAuth 2.0, korzystając z przykładowego kodu w Eksploratorze interfejsów API.

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

9 lipca 2018 r.

Ta aktualizacja zawiera następujące zmiany:

  • Definicja właściwości snippet.thumbnails zasobu channel została zaktualizowana, 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ą zwracane w odpowiedziach interfejsu API. Na przykład aplikacja nie powinna używać domeny http zamiast domeny https w adresie URL zwróconym w odpowiedzi interfejsu API.

    Od lipca 2018 roku adresy URL miniatur kanału będą dostępne tylko w domenie https, czyli tak będą wyglądać w odpowiedziach interfejsu API. Po upływie tego czasu możesz zobaczyć w aplikacji uszkodzone obrazy, jeśli będzie ona próbowała wczytać obrazy z YouTube z domeny http.

  • Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

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

22 czerwca 2018 r.

Przewodnik po implementacji (nazywany wcześniej przewodnikiem po implementacji i migracji) został zaktualizowany, aby usunąć instrukcje migracji z interfejsu API w wersji 2 do wersji 3. Usunęliśmy też instrukcje związane z funkcjami, które zostały wycofane w interfejsie API w wersji 3, takimi jak ulubione filmy.

27 listopada 2017 r.

Ta aktualizacja zawiera następujące zmiany:

  • Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

    YouTube wycofuje obsługę funkcji Polecany film i Polecana strona internetowa, które są obsługiwane w interfejsie API za pomocą obiektu invideoPromotion zasobu channel. W związku z tym obiekt wraz ze wszystkimi jego właściwościami podrzędnymi jest wycofywany.

    Dane z usługi invideoPromotion możesz pobrać i ustawić do 14 grudnia 2017 r. Po tej dacie:

    • Próby pobrania części invideoPromotion przy wywołaniu metody channels.list spowodują zwrócenie pustego pola invideoPromotion lub nie zwrócą żadnych danych invideoPromotion.
    • Próba zaktualizowania danych invideoPromotion podczas wywoływania metody channels.update zwróci prawidłową odpowiedź do co najmniej 27 maja 2018 roku, ale będzie uznawana za niedziałającą, co oznacza, że nie przeprowadzi aktualizacji.

    Po 27 maja 2018 roku żądania te mogą zwracać komunikaty o błędach, które wskazują na przykład, że element invalidPromotion jest nieprawidłowy.

16 listopada 2017 r.

Ta aktualizacja zawiera następujące zmiany:

  • Narzędzie do interaktywnego fragmentu kodu obsługuje teraz przykładowy kod w środowisku Node.js. Przykłady są też widoczne w dokumentacji prawie wszystkich metod interfejsu API, np. channels.list.

    Przykłady z możliwością dostosowania mają być punktem wyjścia dla aplikacji Node.js w konkretnym przypadku użycia. Ta funkcja jest podobna do kodu opisanego w krótkim przewodniku Node.js. W tych przykładach znajdują się jednak pewne funkcje, których nie ma w krótkim wprowadzeniu:

    • Funkcja removeEmptyParameters pobiera listę par klucz-wartość odpowiadających parametrom żądania API i usuwa parametry, które nie mają wartości.
    • Funkcja createResource pobiera listę par klucz-wartość odpowiadających właściwościom w zasobie API. Następnie przekształca właściwości w obiekt JSON, którego można używać w operacjach insert i update. Poniższy przykład zawiera zbiór nazw i wartości właściwości oraz obiekt JSON, który dla nich utworzy 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 przykłady można pobierać i uruchamiać lokalnie. Więcej informacji znajdziesz w wymaganiach wstępnych dotyczących lokalnego uruchamiania pełnych przykładów kodu w instrukcjach narzędzia do fragmentów kodu.

25 października 2017 r.

Ta aktualizacja zawiera następujące zmiany:

  • Przykładowe fragmenty kodu w języku Python w narzędziu do interaktywnego fragmentu kodu zostały zaktualizowane i używają bibliotek google-auth i google-auth-oauthlib zamiast biblioteki oauth2client, która została już wycofana.

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

    1. Otwórz narzędzie do interaktywnego fragmentu kodu lub przejrzyj dokumentację dowolnej metody interfejsu API, np. channels.list.
    2. Kliknij kartę Python nad przykładowym kodem.
    3. Kliknij przełącznik nad kartami, aby przełączyć się z wyświetlania fragmentu do pełnego przykładu.
    4. Karta powinna teraz wyświetlać pełny przykładowy kod, który korzysta z procesu autoryzacji InstalledAppFlow. Opis powyżej tego przykładu wyjaśnia to, a także zawiera link do przykładowej aplikacji serwera WWW.
    5. Kliknij go, aby przełączyć się na przykładowy serwer WWW. W tym przykładzie korzystamy z platformy aplikacji internetowej Flask i innego procesu autoryzacji.

    Wszystkie przykłady można pobierać i uruchamiać lokalnie. Jeśli chcesz uruchomić ten przykładowy kod, zapoznaj się z instrukcjami lokalnego uruchamiania pełnego przykładowego kodu 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 pamiętać, że jeśli ten parametr ma wartość true, parametr type musi mieć wartość video.
  • Definicja parametru regionCode metody search.list została zaktualizowana, aby doprecyzować, że ogranicza on wyniki wyszukiwania do filmów, które można wyświetlić w wybranym regionie.
  • Zaktualizowaliśmy logo i ikony marki. Nowe logo „Opracowane z YouTube” można pobrać ze strony ze wskazówkami dotyczącymi promowania marki. Na tej stronie wyświetlane są również inne nowe logo i ikony YouTube, które można pobrać z witryny YouTube marki.

24 lipca 2017 r.

Ta aktualizacja zawiera następujące zmiany:

  • Dla użytkowników iOS dostępny jest nowy krótki przewodnik po interfejsie YouTube Data API. Ten przewodnik wyjaśnia, jak korzystać z interfejsu YouTube Data API w prostej aplikacji na iOS napisanej w języku Objective-C lub Swift.
  • W narzędziu do interaktywnego fragmentu kodu interfejsu YouTube Data API znajdziesz teraz dokumentację objaśniającą niektóre jego funkcje:
    • Wykonywanie żądań do interfejsu API
    • Przełączanie się między fragmentami kodu i pełnymi przykładami kodu
    • Korzystanie z funkcji stałych
    • Wczytuję istniejące zasoby (na potrzeby metod aktualizacji)

    Uwaga: narzędzie jest też umieszczone w dokumentacji referencyjnej interfejsu API dotyczącej metod 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:

  • Dokumentacja API została zaktualizowana, aby fragmenty kodu były dostępne i interaktywne. Strony wyjaśniające metody interfejsu API, takie jak channels.list czy videos.rate, zawierają teraz interaktywne narzędzie umożliwiające 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 pokazuje fragmenty kodu dla co najmniej jednego przypadku użycia, a każdy przypadek użycia opisuje powszechny sposób jej wywoływania. Możesz na przykład wywołać metodę channels.list, aby pobrać dane o konkretnym kanale lub kanale bieżącego użytkownika.

    Możesz też korzystać z przykładowych kodów:

    • Gdy zmodyfikujesz wartości parametrów i właściwości, fragmenty kodu będą dynamicznie aktualizowane, tak aby odzwierciedlały podane przez Ciebie wartości.

    • przełączać się między fragmentami kodu a pełnymi przykładami; Fragment kodu pokazuje tę część, która wywołuje metodę API. Pełny przykład zawiera ten fragment, a także stały kod do autoryzacji i wysyłania żądań. Pełne przykłady można skopiować i uruchomić z wiersza poleceń lub z lokalnego serwera WWW.

    • Wykonuj żądania, klikając przycisk. (Aby wykonywać żądania, musisz autoryzować narzędzie do wywoływania interfejsu API w Twoim imieniu).

    To narzędzie zastąpiło narzędzie APIs Explorer na stronach, na których jest dostępne. Na każdej stronie jest wyświetlany link, który umożliwia wczytanie żądania, nad którym pracujesz, w narzędziu APIs Explorer.

  • Zaktualizowaliśmy też narzędzie Fragmenty kodu interfejsu Data API o nowy interfejs, który zapewnia dostęp do tych samych funkcji, które opisaliśmy powyżej. Główne nowe funkcje dostępne na tej stronie to:

    • Obsługa żądań do interfejsu API zapisujących dane.
    • Obsługa przykładów w języku Java.
    • Bardziej elastyczny i uniwersalny kod stały 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ą zawartość 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 wskazuje czas dodania elementu do playlisty.
  • Podobnie jak w przypadku zasobu channel, zasób video zwraca teraz właściwość topicDetails.topicCategories[], która zawiera listę adresów URL z Wikipedii, które opisują treść filmu. W przypadku zasobów video adresy URL odpowiadają identyfikatorom tematów zwróconym we właściwości topicDetails.relevantTopicIds[] zasobu.
  • Nowa właściwość contentDetails.contentRating.mpaatRating zasobu video określa ocenę nadaną przez stowarzyszenie Motion Picture Association of America zwiastunowi filmu lub jego wersji przedpremierowej.

27 lutego 2017 r.

Zgodnie z pierwotną zapowiedzią z 11 sierpnia 2016 roku zmieniliśmy listę obsługiwanych identyfikatorów tematów w listę wyselekcjonowaną. Pełna lista obsługiwanych identyfikatorów tematów znajduje się we właściwościach topicDetails zasobów channel i video, a także w parametrze topicId metody search.list.

Pamiętaj, że na wybranej liście pojawiło się kilka zmian:

  • Następujące 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 wcześniej był podrzędny dla grupy Entertainment, został usunięty.
  • Temat Children's music, który wcześniej był podrzędny dla grupy Music, został usunięty.

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

29 listopada 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Lista identyfikatorów tematów, które będą obsługiwane od 10 lutego 2017 roku, zawiera 3 niewielkie zmiany:

    • Kategoria Professional wrestling, która wcześniej była podrzędna kategorii Sports, jest teraz podrzędna wobec kategorii Entertainment.
    • Kategoria TV shows, która jest podrzędna wobec elementu Entertainment, jest nowa.
    • Kategoria Health, która wcześniej była podrzędna dla kategorii Lifestyle, została usunięta.

    Pamiętaj też, że istnieje kilka kategorii nadrzędnych (Entertainment, Gaming, Lifestyle, Music i Sports). Każdy film, który jest powiązany z kategorią podrzędną, np. Tennis, zostanie też powiązany z kategorią nadrzędną (Sports).

10 listopada 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Zgodnie z pierwszą zapowiedzią z 11 sierpnia 2016 r. wycofanie interfejsów Freebase i Freebase API wymaga wprowadzenia kilku zmian związanych z identyfikatorami tematów. Identyfikatory tematów określają tematy powiązane z zasobami channel i video. 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 będzie zwracać niewielki zestaw identyfikatorów tematów zamiast znacznie bardziej szczegółowego zbioru zwróconych do tej pory. Pamiętaj też, że nie możemy zagwarantować, że kanały i filmy będą powiązane z żadnymi tematami, co jest zgodne z aktualnym działaniem interfejsu API.

    Aby ułatwić Ci przygotowanie klientów API na te zmiany, zaktualizowaliśmy definicje podanych niżej parametrów i właściwości API, podając identyfikatory tematów, które po tej dacie będą obsługiwane. Pamiętaj, że lista kategorii jest taka sama w przypadku wszystkich usług.

  • Uwaga: to jest powiadomienie o wycofaniu tych funkcji.

    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. Ta usługa nie będzie zawierać wartości po 10 lutego 2017 r. (Po tym terminie wartość właściwości topicDetails.relevantTopicIds[] będzie wskazywać wszystkie tematy powiązane z filmem).

  • Ponieważ usługa Freebase została już wycofana, przewodnik Wyszukiwanie z użyciem tematów Freebase został usunięty z dokumentacji. W tym przewodniku znajdował się przykładowy kod pokazujący, jak aplikacja będzie działać z interfejsem Freebase API.

    Usunęliśmy też kilka przykładów kodu związanych z identyfikatorami tematów z dokumentacji metody search.list.

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>, który służy do umieszczenia odtwarzacza odtwarzającego film. Nowe właściwości player.embedHeight i player.embedWidth określają wymiary umieszczonego odtwarzacza. Te właściwości są zwracane tylko wtedy, gdy żądanie do interfejsu API określa wartość co najmniej jednego z parametrów maxHeight lub maxWidth. Omówiliśmy te dwa nowe parametry w dalszej części tego wpisu historii zmian.

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

      • Nowy fpbRatingReasons[] określa powody, dla których film otrzymał ocenę FPB (RPB).

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

    • Metoda videos.list obsługuje 2 nowe parametry: maxHeight i maxWidth. Możesz użyć dowolnego z parametrów lub obu parametrów podczas pobierania części player w zasobach video.

      Domyślnie wysokość elementu <iframe> zwracanego we właściwości player.embedHtml wynosi 360 pikseli. Szerokość dostosowuje się do proporcji obrazu filmu, dzięki czemu w umieszczonym odtwarzaczu nie są wyświetlane czarne pasy otaczające obraz. Jeśli na przykład współczynnik proporcji filmu wynosi 16:9, szerokość odtwarzacza będzie wynosić 640 pikseli.

      Dzięki nowym parametrom możesz określić, że zamiast domyślnych wymiarów kod do umieszczenia powinien używać wysokości lub szerokości dostosowanej do układu aplikacji. Serwer API skaluje wymiary odtwarzacza odpowiednio do potrzeb, aby film nie był uwydatniony czarnych pasów w ramkach. Pamiętaj, że oba parametry określają maksymalne wymiary umieszczonego odtwarzacza. Jeśli więc określisz oba parametry, jeden z wymiarów może być mniejszy od maksymalnej dozwolonej wartości dla tego wymiaru.

      Załóżmy, że współczynnik proporcji filmu to 16:9. Jeśli więc nie ustawiono parametru maxHeight lub maxWidth, tag player.embedHtml będzie zawierał odtwarzacz o wymiarach 640 x 360.

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

      Nowe właściwości player.embedHeight i player.embedWidth, które są opisane powyżej, określają wymiary odtwarzacza.

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

    • Zaktualizowaliśmy opis zasobu channelSection, aby uwzględnić, że kanał może utworzyć maksymalnie 10 półek bez ustawiania danych kierowania oraz maksymalnie 100 półek z danymi kierowania.

      Zaktualizowaliśmy też właściwość targeting zasobu channelSection, aby uwzględniała fakt, że opcje kierowania można ustawiać tylko za pomocą interfejsu API. Opcje kierowania są usuwane, jeśli sekcja kanału została zmodyfikowana w interfejsie YouTube.

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

    • Zaktualizowaliśmy właściwość contentDetails.note zasobu playlistItem, by uwzględnić, że maksymalna długość wartości właściwości to 280 znaków.

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

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

    • Parametry publishedBefore i publishedAfter metody search.list zostały zaktualizowane, aby wskazać, że wartości parametrów się zawierają. Jeśli na przykład jest ustawiony parametr publishedBefore, interfejs API zwraca zasoby utworzone przed lub o określonej godzinie.

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

    • Zaktualizowaliśmy opis metody videos.insert, by uwzględnić maksymalny rozmiar przesyłanych filmów z 64 GB do 128 GB.

  • Nowe i zaktualizowane błędy

    • Interfejs API obsługuje następujące 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 przez ten interfejs 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. Jedną z przyczyn tego błędu jest to, że 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 playlisty „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 playlisty z serii „Do obejrzenia”, ale nie można ich pobrać przy użyciu interfejsu API.
      badRequest (400) uploadLimitExceeded Metoda videos.insert zwraca ten błąd, aby wskazać, że na kanale przekroczono maksymalną liczbę filmów, które można przesłać.
      forbidden (403) forbiddenEmbedSetting Metoda videos.update zwraca ten błąd, aby wskazać, że żądanie do interfejsu API próbuje ustawić nieprawidłowe ustawienie umieszczania filmu. Pamiętaj, że niektóre kanały mogą nie mieć uprawnień do oferowania osadzonych odtwarzaczy podczas transmisji na żywo. Więcej informacji znajdziesz w Centrum pomocy YouTube.
    • Metoda playlistItems.insert nie zwraca już błędu, jeśli wstawisz do playlisty zduplikowany film. Wcześniej ten błąd występował w przypadku niektórych playlist (np. ulubionych filmów), który nie zezwalał na duplikaty, ale nie jest już obsługiwany. Ogólnie na playlistach można przesyłać duplikaty filmów.

  • Inne powiadomienia

    • Wpis historii zmian z 15 września 2016 roku został zaktualizowany, aby doprecyzować, że za każdym razem, gdy w odpowiedzi właściwości contentDetails.relatedPlaylists.watchHistory i contentDetails.relatedPlaylists.watchLater zasobu channel są zawarte w odpowiedzi, zawsze zawierają one odpowiednio wartości HL i WL. Co więcej, właściwości te są uwzględniane tylko wtedy, gdy autoryzowany użytkownik pobiera dane o własnym kanale użytkownika.

15 września 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Aktualizacja historii zmian z 11 sierpnia 2016 roku obejmowała kilka zmian związanych z identyfikatorami tematów, w tym fakt, że od 10 lutego 2017 roku zmieni się zestaw obsługiwanych identyfikatorów tematów. Lista obsługiwanych tematów zostanie opublikowana do 10 listopada 2016 roku.

  • Poniższe zmiany zostały wprowadzone. Powiadomienie o tych zmianach pojawiło się w aktualizacji historii zmian 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 tego, co zobaczy na stronie głównej niezalogowany użytkownik YouTube.

      To drobna zmiana wprowadzona w celu zwiększenia wygody użytkowników w porównaniu z aktualizacją historii zmian z 11 sierpnia 2016 roku. Ta aktualizacja zawierała informację, że żądania używające parametru home zwracają pustą listę.

    • Właściwości contentDetails.relatedPlaylists.watchHistory i contentDetails.relatedPlaylists.watchLater zasobu channel zawierają teraz odpowiednio wartości HL i WL dla wszystkich kanałów.

      Dla jasności: właściwości te są widoczne tylko dla autoryzowanego użytkownika pobierającego dane o jego kanale. Właściwości zawsze zawierają wartości HL i WL, nawet w przypadku pobierania danych o swoim kanale przez autoryzowanego użytkownika. Oznacza to, że identyfikatory historii oglądania i playlisty Do obejrzenia nie są pobierane za pomocą interfejsu API.

      Dodatkowo prośby o pobranie informacji o playlistie (playlists.list) lub elementów playlisty (playlistItems.list) z historii oglądania kanału lub playlisty Do obejrzenia zwracają teraz puste listy. Dotyczy to nowych wartości HL i WL, a także identyfikatorów playlist w historii oglądania i playlist do obejrzenia, 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 (takie jak nadrzędny obiekt fileDetails) mogły zostać pobrane tylko przez właściciela filmu.

11 sierpnia 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Niedawno opublikowane Warunki korzystania z usług interfejsu YouTube API („Zaktualizowane Warunki”), które są szczegółowo omówione na blogu YouTube dla programistów i programistów, zawierają wiele aktualizacji bieżących Warunków korzystania z usługi. Oprócz zaktualizowanych Warunków, które zaczną obowiązywać 10 lutego 2017 roku, ta aktualizacja zawiera kilka dokumentów pomocniczych, które wyjaśniają zasady, których muszą przestrzegać deweloperzy.

    Pełny zestaw nowych dokumentów opisano w historii zmian zaktualizowanych Warunków. Historia zmian będzie również wyjaśniana w przypadku przyszłych zmian zaktualizowanych Warunków lub dokumentów pomocniczych. Możesz zasubskrybować kanał RSS z listą zmian w historii zmian, korzystając z linku w dokumencie.

  • Wycofanie interfejsów Freebase i 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 i kanałów związanych z określonym tematem.

    Zmiany w tych funkcjach to:

    • Od 10 lutego 2017 r. YouTube będzie zwracać niewielki zestaw identyfikatorów tematów zamiast znacznie bardziej szczegółowego zbioru zwróconych do tej pory. Ten zestaw obsługiwanych tematów będzie wskazywać kategorie ogólne, takie jak Sport czy Koszykówka, ale nie wskażą na przykład konkretnych drużyn lub zawodników. Ogłosimy listę obsługiwanych tematów, aby zapewnić Ci czas na przygotowanie się do tej zmiany.

    • Wszystkie identyfikatory tematów Freebase, które zostały już pobrane, będą używane do wyszukiwania treści do 10 lutego 2017 roku. Jednak po upływie tego czasu będzie można używać tylko mniejszego zestawu tematów określonych w poprzednim elemencie do pobierania wyników wyszukiwania według tematów.

    • Jeśli po 10 lutego 2017 roku spróbujesz wyszukać wyniki przy użyciu identyfikatora tematu, który nie należy do mniejszego zestawu obsługiwanych identyfikatorów tematów, interfejs API zwróci pusty zbiór wyników.

  • 12 września 2016 r. wycofamy niektóre pola i parametry interfejsu API:

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

    • Właściwości contentDetails.relatedPlaylists.watchHistory i contentDetails.relatedPlaylists.watchLater zasobu channel są widoczne tylko dla autoryzowanego użytkownika pobierającego dane o jego kanale. Po 12 września 2016 r. contentDetails.relatedPlaylists.watchHistory zwróci wartość HL, a właściwość contentDetails.relatedPlaylists.watchLater – wartość WL dla wszystkich kanałów.

      Po 12 września 2016 r. prośby o pobranie informacji o playliście (playlists.list) z historii oglądania kanału lub playlisty Do obejrzenia będą zwracać pustą listę. Żądanie pobrania elementów playlisty (playlistItems.list) z którejś z tych playlist również zwróci pustą listę po tym czasie. Dotyczy to nowych wartości (HL i WL), a także identyfikatorów playlist w historii oglądania i playlist do obejrzenia później, które Twój klient 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ż nadrzędny obiekt fileDetails może pobrać tylko właściciel 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 usługa była dostępna tylko wtedy, gdy kanał był powiązany z profilem Google+. Po wycofaniu usługa nie będzie już uwzględniana w żadnych zasobach channel.

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

Po wycofaniu żadna z tych właściwości nie zostanie zwrócona, dlatego obie 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 dany kanał.

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

  • Zaktualizowaliśmy definicję właściwości snippet.thumbnails.(key) zasobów activity, playlistItem, playlist, wynik wyszukiwania, miniaturę i film. W przypadku niektórych filmów dostępne są dodatkowe rozmiary obrazów miniatur.

    • Obraz standard ma 640 pikseli szerokości i 480 pikseli wysokości.
    • Obraz maxres ma 1280 pikseli szerokości i 720 pikseli wysokości.
  • Definicja parametru part metody channelSection.list została zaktualizowana, aby uwzględnić, że część targeting można pobrać za cenę równą 2 jednostkom limitu.

  • Metoda videos.list zwraca teraz błąd zabroniony (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 udostępnia krótkie fragmenty kodu przeznaczone do typowych zastosowań interfejsu YouTube Data API. Fragmenty kodu są obecnie dostępne dla wszystkich metod interfejsu API tylko do odczytu w Apps Script, Go, JavaScript, PHP, Pythonie i Ruby.

Dla każdej metody narzędzie pokazuje przykłady kodu dla co najmniej jednego przypadku użycia. Zawiera na przykład 5 fragmentów kodu dla metody search.list:

  • Lista filmów według słów kluczowych
  • Wyświetl filmy według lokalizacji
  • Wyświetlenie listy wydarzeń na żywo
  • Wyszukaj filmy uwierzytelnionego użytkownika.
  • Wyświetl listę podobnych filmów

W każdym przypadku użycia narzędzie wyświetla parametry użyte w żądaniu do interfejsu API. Można zmodyfikować 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 parametry żądania zostały zmienione, odpowiedź interfejsu API będzie oparta na podanych wartościach parametrów. Pamiętaj, że aby wyświetlać odpowiedzi interfejsu API, musisz upoważnić 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.location i fileDetails.recordingLocation zasobu video zostały zaktualizowane, aby wyjaśnić różnicę między tymi 2 właściwościami:

    • 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 wyszukać w przypadku publicznych filmów, a także może być wyświetlana użytkownikom w przypadku filmów publicznych.
    • Wartość właściwości fileDetails.recordingLocation jest stała i reprezentuje lokalizację powiązaną z pierwotnym przesłanym plikiem wideo. Ta wartość jest widoczna tylko dla właściciela filmu.

  • Zaktualizowaliśmy definicję właściwości contentDetails.relatedPlaylists.favorites zasobu channel, by uwzględnić, że wartość właściwości może zawierać identyfikator playlisty, który odnosi się do pustej playlisty i nie można jej pobrać. Wynika to z faktu, że funkcja ulubionych filmów została już wycofana. Pamiętaj, że ta usługa nie podlega zasadom wycofywania interfejsów API.

  • Definicja błędu ineligibleAccount, którą można zwrócić za pomocą metody comments.insert, comments.update, commentThreads.insert lub commentThreads.update, została zaktualizowana tak, aby odzwierciedlała, że błąd występuje, gdy konto YouTube użyte do autoryzacji żądania API nie zostało scalone z kontem Google użytkownika.

20 kwietnia 2016 r.

Ta aktualizacja zawiera następujące zmiany:

  • Definicja parametru part metody channels.update została zaktualizowana, aby pamiętać, że localizations jest również prawidłową wartością tego parametru.

  • Sekcja Wykorzystanie limitu w przewodniku dla początkujących została zaktualizowana i zawiera link do Google Developers Console, gdzie możesz sprawdzić 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ę zasobów channelBanner, by uwzględnić, że zalecany rozmiar obrazu banera kanału to 2560 na 1440 pikseli. Minimalny rozmiar (2048 na 1152 piksele) nie uległ zmianie.

    • Nowa właściwość snippet.customUrl zasobu channel identyfikuje niestandardowy adres URL powiązany z kanałem. (Nie wszystkie kanały mają niestandardowe adresy URL). W Centrum pomocy YouTube znajdziesz wymagania dotyczące uzyskiwania niestandardowego adresu URL oraz instrukcje, jak go skonfigurować.

    • Obiekt brandingSettings.watch zasobu channel i wszystkie jego właściwości podrzędne zostały wycofane.

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

      Wartość właściwości to dwuliterowy kod ISO kraju, który identyfikuje region. Metoda i18nRegions.list zwraca listę obsługiwanych regionów. Wartością domyślną jest US. Jeśli określisz nieobsługiwany region, YouTube może wybrać do obsługi zapytania inny region zamiast wartości domyślnej.

    • Definicje właściwości snippet.label i snippet.secondaryReasons[].label zasobu videoAbuseReportReason zostały zaktualizowane, by uwzględnić, że zawierają one zlokalizowany tekst etykiety z powodu zgłaszania nadużyć.

      Dodatkowo metoda videoAbuseReportReasons.list obsługuje teraz parametr hl, który określa język tekstu etykiety w odpowiedzi interfejsu API. Domyślną wartością parametru jest en_US.

    • Nowa właściwość contentDetails.contentRating.ecbmctRating zasobu video określa ocenę filmu nadaną przez turecką Radę Ewaluacji i Klasyfikacji Ministerstwa Kultury i Turystyki.

      Właściwości interfejsu API w innych systemach ocen obsługują też te nowe wartości właściwości:

      • contentDetails.contentRating.fpbRating (Republika Południowej Afryki)
        Ocena: 10; wartość usługi: fpb10
      • contentDetails.contentRating.moctwRating (Tajwan)
        Ocena: R-12; wartość właściwości: moctwR12
      • contentDetails.contentRating.moctwRating (Tajwan)
        Ocena: R-15; wartość usługi: moctwR15
    • Właściwość liveStreamingDetails.activeLiveChatId zasobu video zawiera identyfikator aktywnego czatu na żywo powiązanego z filmem. Wartość właściwości jest widoczna tylko wtedy, gdy film jest transmisją na żywo, w której włączony jest czat na żywo. Po zakończeniu transmisji i czacie na żywo właściwość pokazana w filmie nie będzie już zwracana.

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

  • Interfejs API obsługuje następujące 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 podanej sekcji kanału nie można utworzyć, zaktualizować ani usunąć.
    badRequest (400) styleRequired Metody channelSections.insert i channelSections.update zwracają ten błąd, aby wskazać, że zasób channelSection przesłany w żądaniu do interfejsu API musi określać wartość właściwości snippet.style.
    badRequest (400) typeRequired Metody channelSections.insert i channelSections.update zwracają ten błąd, aby wskazać, że zasób channelSection przesłany w żądaniu do interfejsu API musi określać wartość właściwości snippet.type.
    badRequest (400) processingFailure Metoda commentThreads.list zwraca ten błąd, aby wskazać, że serwer interfejsu API nie przetworzył żądania. Chociaż może to być błąd przejściowy, 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 wskazanego 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, znajduje się już na innej playliście serialu. Więcej informacji o playlistach 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 ich zbyt wiele w ostatnim czasie. W takim przypadku możesz spróbować ponownie 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 ma 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 ma 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 ma nieprawidłowe szczegóły rejestrowania.
    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 określa 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 dla właściwości snippet.title ani snippet.categoryId.

18 grudnia 2015 r.

Przepisy Unii Europejskiej (UE) wymagają udostępnienia określonych informacji użytkownikom z Unii Europejskiej oraz uzyskania od nich zgody. Użytkownicy z Unii Europejskiej muszą więc przestrzegać polityki w zakresie zgody użytkownika z UE. Dodaliśmy informację o tym wymaganiu w Warunkach korzystania z interfejsu API YouTube.

19 listopada 2015 r.

Interfejs API obsługuje teraz ustawianie i pobieranie zlokalizowanego tekstu na potrzeby właściwości snippet.title i snippet.description zasobów playlist i video, właściwości snippet.title zasobu channelSection oraz właściwości snippet.description zasobu channel.

  • Ustawianie przetłumaczonych tytułów i opisów

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

    • Upewnij się, że jest ustawiona wartość właściwości snippet.defaultLanguage zasobu. Ta właściwość określa język właściwości snippet.title i snippet.description zasobu. Jego wartością może być dowolny obsługiwany język aplikacji lub większość innych kodów języków w formacie ISO 639-1:2002. Jeśli na przykład przesyłasz film w angielskim tytule i opisie, ustaw właściwość snippet.defaultLanguage na en.

      Uwaga na temat 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 jest ciągiem znaków określającym język aplikacji lub kod języka zgodny z normą ISO 639-1:2002. Każdy klucz jest mapowany na obiekt zawierający zlokalizowany tytuł (i opis) zasobu.

      Przykładowy fragment kodu poniżej ustawia domyślny język zasobu na angielski. Dodaje też do filmu przetłumaczone 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 gdy aktualizujesz zlokalizowane dane zasobu, żądanie do interfejsu API musi zawierać wszystkie istniejące zlokalizowane wersje tych danych. Jeśli na przykład prześlesz kolejne żądanie dodania do filmu danych w języku portugalskim z przykładu powyżej, musi ono zawierać dane zlokalizowane w języku niemieckim, hiszpańskim i portugalskim.

  • Pobieranie zlokalizowanych wartości

    Interfejs API obsługuje 2 sposoby pobierania zlokalizowanych wartości zasobów:

    • Dodaj parametr hl do żądania channels.list, channelSections.list, playlists.list lub videos.list, aby pobierać dane zlokalizowane na potrzeby konkretnego języka aplikacji obsługiwanego w witrynie YouTube. Jeśli szczegóły zasobów są dostępne w tym języku, obiekt snippet.localized zasobu będzie zawierał te 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 żądanie videos.list pobrało dane dotyczące opisanego powyżej filmu ze zlokalizowanymi danymi z języka niemieckim i hiszpańskim. Gdyby parametr hl miał 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 ma wartość fr, obiekt snippet.localized zawierałby tytuł i opis w języku angielskim, ponieważ językiem domyślnym zasobu jest angielski, a zlokalizowane szczegóły w języku francuskim nie są dostępne.

      Ważne: parametr hl obsługuje tylko wartości wskazujące języki aplikacji obsługiwane w witrynie YouTube. Aby sprawdzić, czy przetłumaczony tekst jest dostępny w innych językach, pobierz część localizations dla zasobu i filtra w celu określenia, czy taki tekst istnieje.

      Musisz na przykład pobrać pełną listę lokalizacji, aby sprawdzić, czy lokalny tekst jest dostępny w języku angielskim w Appalachach.

    • Podczas pobierania zasobu umieść localizations w wartości parametru part, aby pobrać wszystkie zlokalizowane szczegóły tego zasobu. Jeśli pobierasz zlokalizowane dane w języku innym niż obecny język aplikacji YouTube, musisz użyć tej metody, by pobrać wszystkie lokalizacje, a następnie zastosować filtr, aby sprawdzić, czy takie zlokalizowane dane istnieją.

  • Błędy związane ze zlokalizowanymi wartościami tekstowymi

    Interfejs API obsługuje też te nowe błędy w przypadku wartości w zlokalizowanym tekście:

    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, kończy się niepowodzeniem, ponieważ dla tego zasobu nie ustawiono właściwości snippet.defaultLanguage. Metody channels.update, channelSections.insert, channelSections.update, playlists.insert, playlists.update, videos.insert i videos.update obsługują ten błąd.
    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. Metody channels.update, channelSections.insert, channelSections.update, playlists.insert i playlists.update obsługują ten błąd.

4 listopada 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Aktualizacje istniejących zasobów i metod

    • Parametr order metody search.list został zaktualizowany, aby uwzględnić, że jeśli posortujesz transmisje na żywo według parametru viewCount, wyniki interfejsu API zostaną posortowane według liczby widzów oglądających transmisję w trakcie trwania transmisji.

    • Parametr relatedToVideoId metody search.list został zaktualizowany, aby zaznaczyć, że jeśli jest on skonfigurowany, jedynymi obsługiwanymi parametrami są part, maxResults, pageToken, regionCode, relevanceLanguage, safeSearch, type (musi być ustawiony na wartość video) i fields. Ta aktualizacja nie odzwierciedla zmian w działaniu interfejsu API.

    • Zaktualizowaliśmy definicję właściwości snippet.publishedAt zasobu video, by uwzględnić, że wartość właściwości, która określa datę i godzinę opublikowania filmu, może się różnić od czasu przesłania filmu. Jeśli na przykład film został przesłany jako prywatny, a później upubliczniony, wartość właściwości określa czas, kiedy film stał się publiczny. Zaktualizowana definicja wyjaśnia też, w jaki sposób wartość jest wypełniana w przypadku filmów prywatnych i niepublicznych.

      Nie odzwierciedla to zmian w działaniu interfejsu API.

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

      • 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 żądanie zaplanuje publikację filmu w przeszłości, zostaje on opublikowany od razu. W efekcie ustawienie właściwości status.publishAt na datę i godzinę z przeszłości jest takie samo jak zmiana parametru privacyStatus filmu z private na public.
    • Właściwość contentDetails.contentRating.cncRating zasobu video określa ocenę filmu przyznaną przez francuską komisję ds. klasyfikacji filmów. Ta właściwość zastępuje właściwość contentDetails.contentRating.fmocRating, która została już wycofana.

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

    • Dokumentacja metody thumbnails.set została zaktualizowana, aby dokładnie odzwierciedlać fakt, że treść żądania zawiera obraz miniatury, który przesyłasz i który jest powiązany z filmem. Treść żądania nie zawiera zasobu thumbnail. Wcześniej w dokumentacji stwierdzono, że nie należy podawać treści żądania podczas wywoływania tej metody. Ta aktualizacja nie odzwierciedla zmian 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ż snippet.type i contentDetails.comment zasobu.

  • Nowe i zaktualizowane błędy

    • Interfejs API obsługuje teraz następujące błędy:

      Szczegóły błędu
      activities.insert
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynainvalidMetadata
      OpisWłaściwość kind nie pasuje do typu podanego identyfikatora.
      commentThreads.update
      comments.insert
      comments.update
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynacommentTextTooLong
      OpisWstawiane lub aktualizowane zasób comment zawiera za dużo znaków we właściwości snippet.topLevelComment.snippet.textOriginal.
      playlistItems.insert
      playlistItems.update
      Kod odpowiedzi HTTPforbidden (403)
      PrzyczynaplaylistItemsNotAccessible
      OpisŻądanie nie ma uprawnień do wstawiania, aktualizowania lub usuwania określonego elementu playlisty.
      playlists.delete
      playlists.insert
      playlists.update
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynaplaylistForbidden
      OpisTa operacja jest zabroniona lub żądanie nie jest prawidłowo autoryzowane.
      search.list
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynainvalidLocation
      OpisWartość parametru location lub locationRadius była nieprawidłowo sformatowana.
      search.list
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynainvalidRelevanceLanguage
      OpisWartość parametru relevanceLanguage była nieprawidłowo sformatowana.
      subscriptions.insert
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynasubscriptionForbidden
      OpisTen błąd występuje, gdy spełniony jest dowolny 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. Odczekaj kilka godzin, zanim spróbujesz ponownie.
      videos.update
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynainvalidDefaultBroadcastPrivacySetting
      OpisWystąpiła próba ustawienia nieprawidłowego ustawienia 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 usługa będzie nadal uwzględniana w zasobach usługi video przez co najmniej rok po tym ogłoszeniu. Wartość właściwości jest 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 dostarczyć więcej informacji o tym, jak serwer API oblicza długość wartości właściwości. Ta aktualizacja nie odzwierciedla zmian w działaniu interfejsu API.

      W szczególności definicja wyjaśnia teraz, że jeśli tag zawiera spację, serwer API obsługuje wartość tagu tak, jakby była ona ujęta w cudzysłów, a cudzysłowy są uwzględniane w limicie znaków. Na potrzeby limitów znaków tag Foo-Baz zawiera siedem znaków, ale tag Foo Baz zawiera dziewięć znaków.

    • Metoda commentThreads.insert nie obsługuje już parametru shareOnGooglePlus, który określał, czy komentarz i odpowiedzi na niego powinny zostać też opublikowane w profilu Google+ autora. Jeśli żądanie przesyła parametr, serwer interfejsu API go zignoruje, ale 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 której odpowiedź interfejsu API powinna wyświetlać wątki komentarzy. Wątki mogą być uporządkowane według czasu lub trafności. Domyślnym zachowaniem jest uporządkowanie ich według czasu.

    • Nowa właściwość snippet.defaultAudioLanguage zasobu video określa język używany na domyślnej ścieżce audio filmu.

    • Zaktualizowaliśmy definicję właściwości contentDetails.licensedContent zasobu video, aby doprecyzować, że treści muszą zostać pierwotnie przesłane na kanał połączony z partnerem w YouTube, a dopiero potem partner będzie objęty roszczeniem. Nie oznacza to zmiany rzeczywistego działania interfejsu API.

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

  • Nowe i zaktualizowane błędy

    • Interfejs API obsługuje teraz następujące błędy:

      Szczegóły błędu
      videos.rate
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynaemailNotVerified
      OpisUżytkownik musi zweryfikować swój adres e-mail przed wystawieniem oceny filmu.
      videos.rate
      Kod odpowiedzi HTTPbadRequest (400)
      PrzyczynavideoPurchaseRequired
      OpisWypożyczone filmy mogą oceniać tylko te użytkowników, którzy je wypożyczyli.
    • Metody subscriptions.delete i subscriptions.insert nie obsługują już błędów accountClosed i accountSuspended.

27 kwietnia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowe zasoby i metody

    • Nowy zasób videoAbuseReportReason zawiera informacje o tym, dlaczego film zawiera nieodpowiednie treści. Metoda videoAbuseReportReasons.list umożliwia pobranie listy wszystkich powodów, dla których filmy mogą zostać oznaczone.

    • Nowa metoda videos.reportAbuse pozwala zgłosić film zawierający nieodpowiednie treści. Treść żądania zawiera obiekt JSON określający film oraz przyczynę, dla której uznaje się, że zawiera nieodpowiednie treści. Prawidłowe przyczyny można znaleźć, korzystając z opisanej powyżej metody videoAbuseReportReason.list.

      Do przewodnika po migracji dodaliśmy też przykład zgłoszenia nadużycia. W związku z tą zmianą interfejs API w wersji 3 obsługuje wszystkie funkcje, które planuje obsługiwać. Wszystkie te funkcje zostały omówione w przewodniku po migracji.

  • Aktualizacje istniejących zasobów i metod

    • Nowy parametr filtra forDeveloper metody search.list ogranicza wyszukiwanie tylko do filmów przesłanych za pomocą aplikacji lub witryny dewelopera. Parametr forDeveloper może być używany w połączeniu z opcjonalnymi parametrami wyszukiwania, np. z parametrem q.

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

      Gdy w żądaniu wyszukiwania parametr forDeveloper zostanie ustawiony na true, serwer interfejsu API identyfikuje dewelopera na podstawie danych uwierzytelniających żądania. Dlatego deweloper może ograniczyć wyniki do filmów przesłanych za pomocą swojej aplikacji lub witryny, ale nie do filmów przesyłanych za pomocą innych aplikacji lub witryn.

      Oferuje funkcje podobne do funkcji tagów dewelopera obsługiwanych przez interfejs API w wersji 2, choć nie identycznie.

    • Nowa właściwość snippet.country zasobu channel pozwala właścicielom kanałów powiązać swoje kanały z konkretnym 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 pozwala ograniczyć widoczność 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łnić wszystkie ustawienia kierowania.

    • Definicja właściwości contentDetails.duration zasobu video została poprawiona, aby odzwierciedlała, że wartość może odzwierciedlać godziny, dni itp.

    • Dokumentacja metod channelSections.delete, playlistItems.delete, playlists.delete, subscriptions.delete i videos.delete została poprawiona, aby odzwierciedlała, że jeśli operacja się uda, wszystkie te metody zwracają kod odpowiedzi HTTP 204 (No Content).

  • Nowe i zaktualizowane błędy

    • Interfejs API obsługuje teraz następujące błędy:

      Typ błędu Szczegóły błędu Opis
      badRequest (400) targetInvalidCountry Metody channelSections.insert i channelSections.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.insert i channelSections.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.insert i channelSections.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 wskazany przez właściwość snippet.parentId. W zasobie commentThread właściwość snippet.canReply wskazuje, czy bieżąca osoba przeglądająca może odpowiedzieć w wątku.
      badRequest (400) invalidChannelId Metoda search.list zwraca ten błąd, jeśli parametr channelId w żądaniu podał nieprawidłowy identyfikator kanału.
      badRequest (400) subscriptionForbidden Metoda subscriptions.insert zwraca ten błąd, jeśli użytkownik interfejsu API próbuje zasubskrybować kanał użytkownika.
    • Metoda captions.update nie obsługuje już błędów invalidMetadata i videoNotFound.

16 kwietnia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Przewodnik po migracji został zaktualizowany, aby wyjaśnić, jak przenieść aplikacje, które nadal używają funkcji komentarzy z interfejsu API w wersji 2.

    W przewodniku wspomniano też o kilku funkcjach komentowania, których interfejs API w wersji 2 nie obsługiwał, ale które są obsługiwane przez ten interfejs. Są to między innymi:

    • Pobieranie komentarzy na temat kanału
    • Pobieranie wszystkich wątków komentarzy związanych z kanałem. Oznacza to, że odpowiedź interfejsu API może zawierać komentarze na temat kanału lub dowolnych filmów na nim.
    • Aktualizowanie tekstu komentarza
    • Oznaczanie komentarza jako spamu
    • Ustawianie stanu moderowania komentarza

  • Przewodnik Subskrybowanie powiadomień push został zaktualizowany, aby uwzględnić fakt, że powiadomienia są przekazywane tylko do centrum Google PubSubHubBub, a nie do centrum Superfeedr, jak wskazano wcześniej.

9 kwietnia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowe zasoby commentThread i comment interfejsu API 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 oraz ewentualnych odpowiedzi na ten komentarz. Zasób commentThread może reprezentować komentarze na temat filmu lub kanału.

      Komentarz najwyższego poziomu i odpowiedzi to tak naprawdę zasoby comment, które są zagnieżdżone w zasobie commentThread. Zwróć uwagę, że zasób commentThread nie zawsze zawiera wszystkie odpowiedzi na komentarz. Aby pobrać wszystkie odpowiedzi na dany komentarz, musisz użyć metody comments.list. Na niektóre komentarze nie ma odpowiedzi.

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

      • commentThreads.list – pobierz listę wątków komentarzy. Użyj tej metody, aby pobrać komentarze powiązane z określonym 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 – zmodyfikuj komentarz najwyższego poziomu.

    • Zasób comment zawiera informacje o pojedynczym komentarzu w YouTube. Zasób comment może reprezentować komentarz na temat filmu lub kanału. Może to być komentarz najwyższego poziomu lub odpowiedź na komentarz najwyższego poziomu.

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

      • comments.list – pobierz listę komentarzy. Użyj tej metody, aby pobrać wszystkie odpowiedzi na określony komentarz.
      • comments.insert – utwórz odpowiedź na istniejący komentarz.
      • comments.update – zmień komentarz.
      • comments.markAsSpam – zgłoś co najmniej jeden komentarz jako spam.
      • comments.setModerationStatus – ustaw stan moderowania co najmniej jednego komentarza. Możesz na przykład usunąć komentarz, który nie będzie widoczny publicznie, lub odrzucić komentarz, który nie nadaje się do wyświetlenia. Żądanie do interfejsu API musi być autoryzowane przez właściciela kanału lub filmu powiązanego z komentarzami.
      • comments.delete – usuń komentarz.

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

  • Nowy przewodnik Subskrybowanie powiadomień push wyjaśnia nową obsługę powiadomień push w interfejsie API za pomocą PubSubHubBub – protokołu publikowania/subskrybowania zasobów dostępnych w internecie między serwerami. Twój serwer wywołania zwrotnego PubSubHubBub może otrzymywać powiadomienia z kanału 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ć nową obsługę powiadomień push. Ponieważ jednak interfejs API w wersji 2 obsługiwał wiele innych typów powiadomień push, które nie są obsługiwane w wersji 3, wzmianka o obsłudze PubSubHubBub jest nadal wymieniona w sekcji Wycofane w tym przewodniku.

  • Nowy zakres interfejsu API https://www.googleapis.com/auth/youtube.force-ssl 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 następujące błędy:

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

2 kwietnia 2015 r.

Ta aktualizacja zawiera następujące zmiany:

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

    Interfejs API obsługuje metody tworzenia listy, wstawiania, aktualizowania, pobierania i usuwania ścieżek napisów.

  • Zaktualizowaliśmy też przewodnik po migracji, aby wyjaśnić, jak przenieść aplikacje, które nadal używają 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 ten sam dostęp co zakresowi https://www.googleapis.com/auth/youtube. W rzeczywistości te 2 zakresy są funkcjonalnie identyczne, ponieważ serwer 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, w rzeczywistości nie ma innego sposobu na wysłanie żądania do interfejsu API.

    Nowy zakres jest wymagany do 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 New in the v3 API (Nowa) z listą funkcji, które są obsługiwane przez interfejs API v3 oraz których nie obsługuje. Te same funkcje były wcześniej wymienione na innych kartach przewodnika. Na przykład nowa funkcja objaśniająca sposób aktualizowania danych dotyczących kampanii promocyjnych In-Video na kanale jest również wymieniona na karcie Kanały (profile).

  • Przewodnik po migracji interfejsu YouTube Data API (v3) został zaktualizowany, aby uwzględnić, że wersja 3 API obsługuje następującą funkcję API w wersji 2:

  • Przewodnik po migracji do interfejsu YouTube Data API (v3) został zaktualizowany, aby uwzględnić, że następujące funkcje interfejsu API w wersji 2 nie będą obsługiwane w wersji 3 interfejsu API:

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

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

    • Pobieranie sugerowanych kanałów

    • Pobieranie nowych filmów objętych subskrypcją – interfejs API w wersji 3 nie pobiera listy zawierającej tylko filmy, które zostały ostatnio przesłane na kanały subskrybowane przez użytkownika interfejsu API. Jednak do znajdowania nowych filmów w ramach subskrypcji możesz używać interfejsu API w wersji 3. Aby to zrobić, wywołaj metodę activities.list i ustaw wartość parametru home na true.

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

    • Obsługa kanału RSS

    • Powiadomienia push o aktualizacjach kanału – powiadomienia push obsługiwane przez interfejs API w wersji 2 za pomocą protokołu Simple Update Protocol (SUP) lub za pomocą protokołu PubSubHubbub służące do monitorowania kanałów aktywności użytkowników YouTube. Otrzymujesz powiadomienia o subskrybowaniu nowych kanałów oraz o tym, że filmy zostały ocenione, udostępnione, oznaczone jako ulubione, skomentowane lub przesłane.

      Interfejs API w wersji 3 obsługuje powiadomienia push za pomocą protokołu PubSubHubbub, ale powiadomienia dotyczą tylko przesłanych filmów i aktualizacji ich tytułów lub opisów.

    • Lokalizacja kanału – interfejs API w wersji 2 wykorzystał tag <yt:location> do zidentyfikowania lokalizacji użytkownika podanej w publicznym profilu YouTube kanału. Niektórzy deweloperzy używają tego pola do powiązania kanału z konkretnym krajem, ale dane z tego pola nie mogą być używane do tego celu.

    • Ustawianie lub pobieranie tagów programisty – interfejs API w wersji 2 obsługiwał możliwość powiązania słów kluczowych lub tagów dewelopera z filmem w momencie jego przesyłania. Tagi dewelopera nie będą wyświetlane użytkownikom YouTube, ale właściciele filmów mogą pobierać filmy, które pasują do określonego tagu dewelopera.

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

    • Uporządkuj filmy według daty publikacji, liczby wyświetleń lub oceny – w interfejsie API 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 playlist są zwykle sortowane według pozycji w kolejności rosnącej, a inne opcje sortowania są niedostępne.

      Jest kilka wyjątków. W przypadku tych typów playlist nowy przesłany, ulubiony film, film, który Ci się podoba, lub ostatnio oglądany film jest automatycznie dodawany jako pierwszy element (snippet.position=0) w przypadku tych typów playlist. Lista jest więc sortowana od najnowszych do najstarszych elementów na podstawie czasu dodania elementów do listy.

      • pliki przesłane przez użytkowników
      • ulubione filmy
      • polubione filmy
      • historia oglądania

      Pamiętaj jednak, że nowy element dodany do playlisty „Do obejrzenia” jest dodawany jako ostatni na tej liście, dzięki czemu jest ona sortowana od najstarszego do najnowszego elementu.

    • Przetwarzanie wsadowe – interfejs API w wersji 3 obsługuje jeden z przypadków przetwarzania wsadowego obsługiwanych przez interfejs API wersji 2. Metody channels.list, channelSections.list, guideCategories.list, playlistItems.list, playlists.list, subscriptions.list, videoCategories.list i videos.list interfejsu API w wersji 3 obsługują parametr id, którego można używać do określania listy identyfikatorów rozdzielonych przecinkami (identyfikatorów filmów, kanałów itd.). Za pomocą tych metod możesz pobrać listę wielu zasobów za pomocą jednego żądania.

    Po wprowadzeniu tych zmian w przewodniku wymieniono wszystkie funkcje, które były obsługiwane w poprzedniej wersji interfejsu API (v2), które zostaną wycofane w obecnej wersji interfejsu API (v3).

4 marca 2015 r.

Ta aktualizacja zawiera następujące zmiany:

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

  • Te właściwości oraz ich usługi podrzędne zostały wycofane:

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

    Uwaga: żadna z tych usług nie podlegała zasadom wycofania interfejsu API.

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

  • Interfejs API obsługuje teraz następujące błędy:

    Typ błędu Szczegóły błędu Opis
    notFound (404) channelNotFound Metoda channels.update zwraca ten błąd, jeśli parametr id żądania określa kanał, którego nie można znaleźć.
    badRequest (400) manualSortRequiredinvalidValue Metody playlistItems.insert i playlistItems.update zwracają ten błąd, jeśli żądanie próbuje ustawić pozycję elementu playlisty, ale playlista nie obsługuje sortowania ręcznego. Na przykład elementy playlisty mogą być sortowane 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 miał określoną pozycję na liście, musisz najpierw zmienić ustawienie kolejności na playliście na Ręcznie. To ustawienie można zmienić w Menedżerze filmów YouTube.
    forbidden (403) channelClosed Metoda playlists.list zwraca ten błąd, jeśli parametr channelId żądania określa kanał, który został zamknięty.
    forbidden (403) channelSuspended Metoda playlists.list zwraca ten błąd, jeśli parametr channelId żądania określa kanał, który został zawieszony.
    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 żądania 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 żądania 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 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 interfejsu YouTube Data API (v3), aby wyjaśnić, jak używać interfejsu API v3 do przesyłania filmów przy użyciu JavaScriptu. Szczegółowe informacje znajdziesz w sekcji Przesyłanie filmu. Ta funkcja jest porównywalna z funkcjami przesyłania w przeglądarce, które obsługuje interfejs API w wersji 2. Pamiętaj, że ta zmiana w przewodniku po migracji nie odzwierciedla faktycznej zmiany w interfejsie API, ale raczej dostępność nowego przykładowego kodu do przesyłania filmów przy użyciu JavaScriptu po stronie klienta.

    Ze względu na obsługę przesyłania filmów za pomocą biblioteki klienta JavaScript i CORS w przewodniku po migracji nie jest już wymieniona funkcja przesyłania w przeglądarce jako funkcja, która może zostać wycofana z interfejsu API w wersji 3.

  • Dokumentacja metody videos.insert została zaktualizowana, aby uwzględnić opisany powyżej nowy przykładowy kod JavaScript. Zaktualizowaliśmy też listę przykładowych kodów JavaScript interfejsu YouTube Data API (v3).

11 listopada 2014 r.

Ta aktualizacja zawiera następujące zmiany:

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

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

    • Koszt limitu: 100 jednostek

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

    • Koszt limitu: 6 jednostek

      Wywołaj metodę channels.list, aby znaleźć właściwy identyfikator kanału. Ustaw parametr forUsername na GoogleDevelopers, a parametr part na contentDetails. W odpowiedzi interfejsu API właściwość contentDetails.relatedPlaylists.uploads określa identyfikator playlisty dla filmów przesłanych na kanał.

      Następnie wywołaj metodę playlistItems.list i ustaw parametr playlistId na zarejestrowany 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 informuje, czy na kanale można 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 do 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 trzeba włączyć tę funkcję.
      • disallowed – kanał nie może przesyłać filmów dłuższych niż 15 minut ani nie kwalifikuje się do tego.

      Więcej informacji o tych wartościach znajdziesz w definicji właściwości. Więcej informacji o tej funkcji znajdziesz też w Centrum pomocy YouTube.

    • Właściwość invideoPromotion.useSmartTiming wskazuje, czy kampania promocyjna kanału wykorzystuje funkcję inteligentnego określania czasu. Ta funkcja próbuje wyświetlać promocje w pewnym momencie filmu, gdy jest większa szansa na to, że zostanie on kliknięty, a mniej prawdopodobne, że nie będzie to zakłócać oglądania. Funkcja umożliwia też wybranie jednej promocji, która będzie wyświetlana przy każdym filmie.

  • Definicje właściwości snippet.title i snippet.categoryId zasobu video zostały zaktualizowane, aby wyjaśnić sposób, w jaki interfejs API obsługuje wywołania metody videos.update. Jeśli wywołujesz tę metodę, aby zaktualizować część snippet zasobu video, musisz ustawić wartość dla obu tych właściwości.

    Jeśli spróbujesz zaktualizować część snippet zasobu video, ale nie ustawisz wartości dla żadnej z 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 identyfikuje ocenę filmu przez nowozelandzki Urząd Klasyfikacji Filmów i Literii, obsługuje teraz 2 nowe klasyfikacje: oflcRp13 i oflcRp16. Odpowiadają one odpowiednio ocenie RP13 i RP16.

  • Metoda channelBanners.insert obsługuje teraz następujący błąd:

    Typ błędu Szczegóły błędu Opis
    badRequest bannerAlbumFull Album właściciela kanału w YouTube z grafiką kanału zawiera zbyt wiele obrazów. Właściciel kanału powinien otworzyć http://photos.google.com, otworzyć stronę albumów i usunąć niektóre zdjęcia z albumu.

12 września 2014 r.

Ta aktualizacja zawiera następujące zmiany:

13 sierpnia 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Metoda subscriptions.insert obsługuje teraz następujący błąd:

    Typ błędu Szczegóły błędu Opis
    badRequest subscriptionLimitExceeded Subskrybent wskazany w żądaniu przekroczył limit liczby subskrypcji. W ciągu kilku godzin możesz spróbować dodać więcej subskrypcji.

12 sierpnia 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy przewodnik zatytułowany Migracja aplikacji do interfejsu YouTube Data API (v3) zawiera wyjaśnienie, jak korzystać z interfejsu YouTube Data API (v3) w celu korzystania z funkcji dostępnych w YouTube Data API (v2). Starsza wersja interfejsu API została oficjalnie wycofana 4 marca 2014 r. Ten przewodnik ma na celu pomoc w migracji do najnowszej wersji aplikacji, które nadal korzystają z interfejsu API w wersji 2.

8 lipca 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Metoda playlists.insert obsługuje teraz następujący błąd:

    Typ błędu Szczegóły błędu Opis
    badRequest maxPlaylistExceeded Ten błąd występuje, gdy nie można utworzyć playlisty, bo na kanale jest już maksymalna dozwolona liczba playlist.

18 czerwca 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Opis każdej metody interfejsu API został zaktualizowany, aby uwzględnić koszt limitu związany z wywołaniem tej metody. Podobnie definicje parametrów part zostały zaktualizowane, aby określić limit kosztów każdej części, którą można pobrać w wywołaniu interfejsu API. Na przykład wywołanie metody subscriptions.insert powoduje, że limit wynosi około 50 jednostek. Zasób subscription też zawiera 3 części (snippet, contentDetails i subscriberSnippet), a każda z nich ma koszt 2 jednostek.

    Pamiętaj, że koszty limitu mogą się zmienić bez ostrzeżenia.

  • Zasób video obsługuje teraz 43 nowe systemy oceny treści, które określają oceny filmów otrzymanych od różnych krajowych agencji oceniających. Nowe obsługiwane systemy oceny: Argentyna, Austria, 5 krajów: Austria, 5 krajów i regiony 100 {lipca 7 krajów}, Austria, 5 krajów i regiony 800 {lipca]

28 maja 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Metoda search.list obsługuje teraz parametry location i locationRadius, które pozwalają na wyszukiwanie filmów powiązanych z lokalizacją geograficzną. Żądanie musi określać wartość obu parametrów, aby można było pobierać wyniki na podstawie lokalizacji. Interfejs API zwróci błąd, jeśli żądanie zawiera tylko jeden z dwóch parametrów.

    • Parametr location określa współrzędne szerokości i długości geograficznej w środku okrągłego obszaru geograficznego.

    • Parametr locationRadius określa maksymalną odległość, w jakiej lokalizacja powiązana z filmem wideo 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:

  • Zaktualizowaliśmy właściwość invideoPromotion.items[] zasobu channel, aby pamiętać, że zwykle możesz ustawić tylko 1 promowany produkt na swoim kanale. Jeśli spróbujesz wstawić zbyt wiele promowanych elementów, interfejs API zwróci błąd tooManyPromotedItems, który zawiera kod stanu HTTP 400.

  • Zasób 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 sekcji aktywności na kanale
    • postedVideos – filmy, które właściciel kanału opublikował w strumieniu aktywności na kanale
    • subscriptions – kanały, które subskrybuje właściciel

  • Nowa właściwość contentDetails.contentRating.ifcoRating zasobu video określa ocenę, jaką film otrzymał od Irlandzkiego Urzędu Klasyfikacji Filmów.

  • Definicja właściwości position.cornerPosition zasobu watermark została zaktualizowana, tak aby znak wodny zawsze jest widoczny w prawym górnym rogu odtwarzacza.

  • Definicja parametru q metody search.list została zaktualizowana, aby uwzględnić, że wyszukiwane hasło może zawierać operator logiczny NIE (-) do wykluczania filmów powiązanych z określonym wyszukiwanym hasłem. Przy użyciu tej wartości możesz też użyć operatora logicznego LUB (|), aby znaleźć filmy powiązane z jednym z kilku wyszukiwanych haseł.

  • Definicja właściwości pageInfo.totalResults zwracana w odpowiedzi interfejsu API na wywołanie search.list została zaktualizowana, aby uwzględniała wartość przybliżoną i może nie odzwierciedlać dokładnej wartości. Maksymalna wartość to 1 000 000. Nie należy używać 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świetlić linki do podziału na strony.

  • Metody watermarks.set i watermarks.unset zostały zaktualizowane, aby uwzględnić, że interfejs API zwraca kod odpowiedzi HTTP 204 w przypadku udanych żądań do tych metod.

2 maja 2014 r.

Ta aktualizacja zawiera następujące zmiany:

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

    Interfejs API obsługuje metodę wyświetlania listy obsługiwanych języków aplikacji. Obsługiwanych języków można używać jako wartości parametru hl podczas wywoływania metod API takich jak videoCategories.list i guideCategories.list.

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

    Interfejs API obsługuje metodę wyświetlania listy obsługiwanych regionów treści. Obsługiwane kody regionów mogą być używane jako wartości parametru regionCode podczas wywoływania metod API takich jak search.list, videos.list, activities.list i videoCategories.list.

7 kwietnia 2014 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy zasób channelSection zawiera informacje o zbiorze filmów polecanych na kanale. Może ona na przykład zawierać najnowsze i najpopularniejsze filmy z kanału albo filmy z jednej lub kilku playlist.

    Interfejs API obsługuje metody tworzenia listy, wstawiania, aktualizowania i usuwania sekcji kanałów. 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, by opisywały komunikaty o błędach, które interfejs API obsługuje w przypadku tych nowych metod.

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

    Podobnie definicja obiektu suggestions zasobu video została zaktualizowana, 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.

  • Dokumentacja metod videos.insert i videos.update została zaktualizowana, aby uwzględnić informację o możliwości skonfigurowania właściwości status.publishAt podczas wywoływania tych metod.

  • Definicja obiektu invideoPromotion zasobu channel została zaktualizowana, aby wyjaśnić, że obiekt może pobrać tylko właściciel kanału.

  • Lista parametrów metody videos.rate została zaktualizowana, aby uwzględniała fakt, że ta metoda nie obsługuje parametru onBehalfOfContentOwner. To był błąd dokumentacji, ponieważ żądania videos.rate ustawiające 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 część contentOwnerDetails w przypadku zasobów channel. Nowa część zawiera dane o kanale, które są istotne dla partnerów YouTube połączonych z kanałem, w tym identyfikator powiązanego z nim właściciela treści oraz datę i godzinę połączenia właściciela treści z kanałem. Uwaga: ta nowa część nie podlega zasadom wycofywania.

  • W dokumentacji znajdziesz teraz informacje o maksymalnej dozwolonej długości 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 ma postać listy i przecinki między elementami na liście 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 wstawienia lub aktualizowania filmu, dodano poniższe właściwości zasobu video:

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

  • Interfejs API obsługuje teraz następujące 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 próbujesz zaktualizować część brandingSettings kanału i zmienić 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 czasu.
    badRequest (400) tooManyPromotedItems Metoda channels.update zwraca ten błąd, jeśli część invideoPromotion określa więcej niż dozwolona liczba promowanych produktów.
    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 produktu.
    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 wyświetlania promowanego produktu w YouTube.
    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 odpowiednio zaznaczyć, że podczas przesyłania żądania wyszukiwania nie musisz określać wartości dokładnie 1 parametru filtra. Zamiast tego możesz ustawić wartość dla 0 parametrów filtra lub dla jednego parametru filtra.

  • Definicje parametrów metody search.list zostały zaktualizowane, aby uwzględnić, że musisz ustawić wartość parametru type na video, jeśli podasz też wartość dowolnego z tych parametrów:

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

  • Minimalny rozmiar przesyłanych obrazów na banerze kanału został zmniejszony do 2048 x 1152 piksele. (Wcześniej minimalny rozmiar wynosił 2120 x 1192 piksele). Zwróć też uwagę na to, że w dokumentacji zasobów channel podane są maksymalne rozmiary wszystkich obrazów banerów wyświetlanych przez interfejs API. Na przykład maksymalny rozmiar obrazu brandingSettings.image.bannerTvImageUrl w przypadku aplikacji telewizyjnych to 2120 x 1192 piksele, a rzeczywisty obraz może mieć 2048 x 1152 piksele. Centrum pomocy YouTube zawiera dodatkowe wskazówki, jak zoptymalizować grafikę kanału pod kątem wyświetlania na różnych rodzajach urządzeń.

  • Zaktualizowano kilka definicji właściwości zasobów channel, aby uwzględniały te informacje:

    • Wartość właściwości brandingSettings.channel.description może mieć maksymalnie 1000 znaków.
    • Maksymalna długość właściwości brandingSettings.channel.featuredChannelsTitle wynosi 30 znaków.
    • Właściwość brandingSettings.channel.featuredChannelsUrls[] może teraz zawierać listę do 100 kanałów.
    • Wartość właściwości brandingSettings.channel.unsubscribedTrailer (jeśli jest ustawiona) musi określać identyfikator publicznego lub niepublicznego filmu w YouTube, który należy do właściciela kanału.

  • Metoda channels.update obsługuje teraz aktualizacje właściwości invideoPromotion.items[].promotedByContentOwner. Ta właściwość wskazuje, czy podczas wyświetlania promocji będzie widoczna nazwa właściciela treści. Można go ustawić tylko wtedy, gdy żądanie do interfejsu API ustawiające wartość właściwości jest wykonywane w imieniu właściciela treści za pomocą parametru onBehalfOfContentOwner.

  • Metody playlistItems.list i playlistItems.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ę filmów przyznaną przez Australian Classification Board (ACB) lub wydaną 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, które film otrzymał w ramach kanadyjskiego systemu klasyfikacji programów telewizyjnych i francuskiego systemu ocen Régie du cinéma, który jest używany odpowiednio w Québecu.

  • 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 do tych metod:

24 października 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Interfejs API udostępnia dwie dodatkowe funkcje ułatwiające wyszukiwanie i promowanie transmisji na żywo:

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

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

      • upcoming – transmisja na żywo jest jeszcze nierozpoczęta.
      • active – film jest nadal transmitowany na żywo.
      • none – film nie jest nadchodzącą ani aktywną transmisją na żywo. Będzie to wartość właściwości w przypadku zakończonych transmisji, które nadal są widoczne w YouTube.

    • Nowa właściwość liveStreamingDetails zasobu video to obiekt zawierający metadane dotyczące transmisji wideo na żywo. Aby pobrać te metadane, umieść liveStreamingDetails na liście części zasobó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 wstaw liveStreamingDetails w wartości parametru part.

    Uwaga: 1 października 2013 roku udostępniliśmy dwie inne funkcje służące do identyfikowania treści transmisji na żywo – parametr eventType metody search.list oraz właściwość snippet.liveBroadcastContent wyniku wyszukiwania.

  • Metoda videos.insert obsługuje teraz parametr notifySubscribers, który wskazuje, czy YouTube ma wysyłać powiadomienia o nowym filmie do użytkowników subskrybujących kanał tego filmu. Domyślna wartość tego parametru to True, co oznacza, że subskrybenci będą powiadamiani o nowych 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, aby zawierała właściwości invideoPromotion.items[].customMessage i invideoPromotion.items[].websiteUrl. Oprócz tego lista została zmodyfikowana, aby zidentyfikować właściwości brandingSettings, które można modyfikować. Te właściwości brandingSettings można już modyfikować, więc zmiana w dokumentacji nie odzwierciedla zmian w dotychczasowych funkcjach interfejsu API.

  • Metody playlists.insert, playlists.update i playlists.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 zmieniona, aby odzwierciedlała, ż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) – dzieciom powinien towarzyszyć osoba dorosła.
    • mibacVm6 (V.M.6) – ograniczony od 6 lat.
    • mibacVm12 (V.M.12) – tylko dla osób, które ukończyły 12 lat.

  • Nowa właściwość invideoPromotion.items[].promotedByContentOwner zasobu channel wskazuje, czy podczas wyświetlania promocji będzie wyświetlana nazwa właściciela treści. To pole można ustawić tylko wtedy, gdy żądanie do interfejsu API ustawiające wartość jest wykonywane w imieniu właściciela treści. Więcej informacji znajdziesz w parametrze 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 (MCN) oceni podczas podejmowania decyzji o zaakceptowaniu lub odrzuceniu konkretnego kanału. Pamiętaj, że każde żądanie do interfejsu API, które pobiera tę część zasobu, musi dostarczyć token autoryzacji zawierający zakres https://www.googleapis.com/auth/youtubepartner-channel-audit. Dodatkowo każdy token korzystający z tego zakresu musi zostać unieważniony, gdy sieć wielokanałowa zdecyduje się zaakceptować lub odrzucić kanał albo w ciągu 2 tygodni od daty jego wystawienia.

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

    Domyślnie jest to kanał, dla którego ustawiono dane promocji In-Video. Możesz jednak promować ostatnio przesłany film z innego kanału, ustawiając wartość nowej usługi invideoPromotion.items[].id.recentlyUploadedBy na identyfikator tego kanału.

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

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

    • W przypadku zasobu video wartość upcoming oznacza, że transmisja na żywo jest jeszcze nierozpoczęta, a wartość active oznacza, że trwa transmisja na żywo.
    • W przypadku zasobu channel wartość upcoming oznacza, że na kanale jest zaplanowana transmisja, która jeszcze się nie rozpoczęła, a wartość acive oznacza, że na kanale trwa transmisja na żywo.

  • W zasobie watermark właściwość targetChannelId zmieniła się z obiektu na ciąg znaków. Zamiast właściwości podrzędnej określającej identyfikator kanału w YouTube, do którego prowadzi obraz znaku wodnego, właściwość targetChannelId określa teraz samą wartość. W związku z tym została usunięta właściwość targetChannelId.value tego 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 tak, aby zwracało tylko aktywne, nadchodzące lub zakończone transmisje.

  • Nowa właściwość contentDetails.contentRating.mibacRating wskazuje ocenę, jaką film otrzymał od włoskiego Ministera dei Beni e delle Attivita Culturei e del Turismo.

  • Interfejs API obsługuje teraz następujące błędy:

    Typ błędu Szczegóły błędu Opis
    badRequest invalidImage Metoda thumbnails.set zwraca ten błąd, jeśli podana treść obrazu jest nieprawidłowa.
    forbidden videoRatingDisabled Metoda videos.rate zwraca ten błąd, jeśli właściciel ocenianego filmu wyłączył możliwość oceny tego filmu.

27 sierpnia 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowy zasób watermark określa obraz, który wyświetla się podczas odtwarzania filmów z konkretnego kanału. Możesz też określić kanał docelowy, do którego będzie prowadzić obraz. Możesz też określić czas, który określa, kiedy znak wodny pojawi się podczas odtwarzania filmu i jak długo jest widoczny.

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

    W dokumentacji o błędach opisano komunikaty o błędach, które interfejs API obsługuje w przypadku metod watermarks.set i watermarks.unset.

  • Nowa właściwość statistics.hiddenSubscriberCount zasobu channel zawiera wartość logiczną, która wskazuje, czy liczba subskrybentów kanału jest ukryta. Dlatego też wartość właściwości wynosi false, jeśli liczba subskrybentów kanału jest widoczna publicznie.

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

  • Metoda videos.list obsługuje teraz parametr regionCode identyfikujący region treści, dla którego należy pobrać wykres. Tego parametru można używać tylko w połączeniu z parametrem chart. Jego wartością jest kod kraju zgodny ze standardem ISO 3166-1 alfa-2.

  • error documentation opisuje nowy typowy błąd żądania, 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 na potrzeby żądania są niewystarczające, aby uzyskać dostęp 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:

    • Interfejs API obsługuje teraz możliwość wskazania witryny jako promowanego produktu. W tym celu ustaw wartość właściwości invideoPromotion.items[].id.type na website i użyj nowej właściwości invideoPromotion.items[].id.websiteUrl do określenia adresu URL. Użyj też nowej właściwości invideoPromotion.items[].customMessage, aby zdefiniować niestandardowy komunikat wyświetlany w przypadku promocji.

      Linki mogą prowadzić do powiązanych witryn, stron sprzedawców lub witryn społecznościowych. Aby dowiedzieć się więcej o włączaniu linków do treści, zapoznaj się z instrukcjami w Centrum pomocy YouTube dotyczącymi powiązanych witryn i stron sprzedawców.

      Dodając linki promocyjne, zgadzasz się, by nie przekierowywały one użytkowników do nieautoryzowanych witryn oraz że nie naruszają one zasad AdWords, zasad dotyczących reklam w YouTube, wytycznych dla społeczności YouTube oraz Warunków korzystania z usługi YouTube.

    • Zmieniliśmy strukturę właściwości związanych z ustawieniami czasu wyświetlania promowanych produktów podczas odtwarzania filmu:

      • Obiekt invideoPromotion.timing został przeniesiony do invideoPromotion.items[].timing. Ten obiekt umożliwia teraz dostosowanie danych czasu dla każdego promowanego produktu na liście invideoPromotion.items[].

      • Nowy obiekt invideoPromotion.defaultTiming określa domyślne ustawienia czasu promocji. Te ustawienia określają, kiedy promowany produkt będzie wyświetlany podczas odtwarzania jednego z filmów na Twoim kanale. Możesz zastąpić domyślny czas dla każdego promowanego produktu za pomocą obiektu invideoPromotion.items[].timing.

      • Nowa właściwość invideoPromotion.items[].timing.durationMs określa czas (w milisekundach), przez jaki promocja powinna być wyświetlana. Obiekt invideoPromotion.defaultTiming zawiera też pole durationMs, które określa domyślny czas wyświetlania promowanego produktu.

    • Właściwości invideoPromotion.items[].type i invideoPromotion.items[].videoId zostały przeniesione do obiektu invideoPromotion.items[].id.

  • Metoda subscriptions.list obsługuje teraz parametry onBehalfOfContentOwner i onBehalfOfContentOwnerChannel. Oba te 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 do tych metod:

    Uwaga: usunęliśmy również przykładowy kod w Pythonie dotyczący metody playlistItems.insert, ponieważ przedstawiona funkcja jest teraz obsługiwana przez metodę videos.rate.

  • Pole error documentation opisuje 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 żądaniach, w których uwierzytelniony użytkownik jest partnerem YouTube. Usuń parametr mine, usuń parametr onBehalfOfContentOwner, aby uwierzytelnić się jako użytkownik YouTube, albo skorzystaj z funkcji jednego 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 kolor, który pasuje do treści kanału. Wartość właściwości to znak funta (#), po którym następuje sześcioznakowy ciąg szesnastkowy, np. #2793e6.

  • Interfejs API pozwala teraz określić, czy subskrypcja dotyczy wszystkich aktywności na kanale, czy tylko nowych filmów. Nowa właściwość contentDetails.activityType zasobu subscription określa typy aktywności, o których subskrybent będzie powiadamiany. Prawidłowe wartości właściwości to all i uploads.

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

    • Parametr chart wskazuje 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 innych parametrów filtra (id i myRating).
    • Parametr videoCategoryId określa kategorię filmu, dla której należy pobrać wykres. Tego parametru można używać tylko w połączeniu z parametrem chart. Domyślnie wykresy nie są ograniczone do konkretnej kategorii.

  • Nowa właściwość topicDetails.relevantTopicIds[] zasobu video zawiera listę identyfikatorów tematów Freebase związanych z filmem lub jego treścią. Tematy poruszane w filmach mogą pojawiać się w filmach lub pojawiać się w nich.

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

  • Obiekt contentDetails.contentRating zasobu video określa oceny, które film otrzymał w ramach różnych schematów klasyfikacji, w tym MPAA, TVPG itd. Dla każdego systemu ocen interfejs API obsługuje teraz wartość oceny, która wskazuje, że film nie został oceniony. Pamiętaj, że w przypadku ocen MPAA często używa się oceny „bez oceny”, aby identyfikować nieedytowane wersje filmów, w przypadku których wycięta wersja filmu otrzymała oficjalną ocenę.

  • Nowa właściwość contentDetails.contentRating.ytRating zasobu video identyfikuje treści z ograniczeniami wiekowymi. Wartość tej właściwości równa się ytAgeRestricted, jeśli YouTube uzna, że film zawiera treści nieodpowiednie dla użytkowników poniżej 18 roku życia. Jeśli brak właściwości lub wartość właściwości jest pusta, treści nie zostały oznaczone jako objęte 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.getRating i videos.rate obsługują teraz parametr onBehalfOfContentOwner. Wskazuje on, że uwierzytelniony użytkownik działa w imieniu właściciela treści określonego w jego wartości.

  • Dokumentacja metody channels.update została zaktualizowana, aby uwzględnić fakt, że tej metody można używać do aktualizowania obiektu brandingSettings zasobu channel i jego właściwości podrzędnych. W dokumentacji znajduje się też zaktualizowana lista właściwości, które możesz ustawić w obiekcie invideoPromotion zasobu channel.

  • W dokumencie error documentation opisano te nowe błędy:

    Typ błędu Szczegóły błędu Opis
    forbidden accountDelegationForbidden Ten błąd nie dotyczy konkretnej metody interfejsu API. Wskazuje on, że uwierzytelniony użytkownik nie ma uprawnień do działania w imieniu podanego konta Google.
    forbidden authenticatedUserAccountClosed Ten błąd nie dotyczy konkretnej metody interfejsu API. Wskazuje on, ż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 konto jest zamknięte.
    forbidden authenticatedUserAccountSuspended Ten błąd nie dotyczy konkretnej metody interfejsu 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 dotyczy konkretnej metody interfejsu API. Wskazuje on, że serwer API nie może zidentyfikować kanału powiązanego z żądaniem do interfejsu API. Jeśli żądanie jest autoryzowane i używa parametru onBehalfOfContentOwner, musisz też ustawić parametr onBehalfOfContentOwnerChannel.
    forbidden cmsUserAccountNotFound Ten błąd nie dotyczy konkretnej metody interfejsu API. Użytkownik systemu CMS nie może działać w imieniu podanego właściciela treści.
    notFound contentOwnerAccountNotFound Ten błąd nie dotyczy konkretnej metody interfejsu API. Nie znaleziono wskazanego konta właściciela treści.
    badRequest invalidPart Ten błąd nie dotyczy konkretnej metody interfejsu API. Parametr part żądania określa fragmenty, których nie można zapisać w tym samym czasie.
    badRequest videoChartNotFound Metoda videos.list zwraca ten błąd, gdy żądanie określa nieobsługiwany lub niedostępny wykres wideo.
    notFound videoNotFound Metoda videos.update zwraca ten błąd, aby wskazać, że nie można znaleźć filmu, którego 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 YouTube.

  • Metoda activities.list obsługuje teraz parametr regionCode, który instruuje interfejs API, aby zwracał wyniki dotyczące określonego kraju. YouTube używa tej wartości, gdy poprzednia aktywność autoryzowanego użytkownika w YouTube nie zapewnia wystarczających informacji do wygenerowania obszaru aktywności.

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

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

    Parametr wskazuje, że dane uwierzytelniające żądanie identyfikują użytkownika YouTube CMS działającego w imieniu właściciela treści określonego w wartości parametru. Konto CMS, za pomocą którego użytkownik uwierzytelnia się, musi być powiązane z określonym właścicielem treści YouTube.

    Jest on przeznaczony dla dostawców treści, którzy są właścicielami wielu różnych kanałów YouTube i zarządzają nimi. Ten parametr umożliwia partnerom jednorazowe uwierzytelnienie się 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.

    W szczególności w przypadku tej wersji parametr umożliwia partnerom w zakresie treści wstawianie, aktualizowanie i usuwanie filmów na dowolnym kanale YouTube, który do niego należy.

  • W dokumencie error documentation opisano te nowe błędy:

    Typ błędu Szczegóły błędu Opis
    forbidden insufficientCapabilities Ten błąd nie dotyczy konkretnej metody interfejsu API. Wskazuje on, ż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 przez kilka 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 właściwość invideoPromotion.channelId została usunięta, ponieważ identyfikator kanału został już określony za pomocą właściwości id zasobu.

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

22 maja 2013 r.

Ta aktualizacja zawiera następujące zmiany:

14 maja 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Na samodzielnych stronach znajduje się teraz lista przykładów kodu w językach Java, .NET, PHP i Ruby.

  • 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. Właściciel kanału może wykorzystać kampanię promocyjną w filmie, aby wyświetlać miniatury promowanego filmu w odtwarzaczu podczas odtwarzania filmów na kanale.

    Te dane możesz pobrać, umieszczając w żądaniu channels.list parametr invideoPromotion jako wartość parametru part.

  • Nowa metoda channels.update może służyć do aktualizowania danych dotyczących kampanii promocyjnych In-Video na kanale. Pamiętaj, że ta metoda obsługuje tylko aktualizacje invideoPromotion części zasobu channel, a 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ż powiązany z nazwą użytkownika YouTube czy kontem Google+. Użytkownik posiadający jeden z tych linków ma już publiczną tożsamość w YouTube, co jest warunkiem wstępnym wykonania kilku czynności, takich jak przesłanie filmów.

  • Zasoby dotyczące subskrypcji obsługują teraz część subscriberSnippet. Ten wewnątrz obiektu znajduje się w skrócie danych kanału subskrybenta.

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

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

    Parametry myRating i id są teraz uznawane za parametry filtra, co oznacza, że żądanie API musi określać dokładnie 1 z nich. Wcześniej parametr id był wymagany w przypadku tej metody.

    Ta metoda zwraca błąd forbidden w przypadku żądań, które próbują pobrać informacje o ocenach wideo, ale nie zostały do tego prawidłowo autoryzowane.

  • Wraz z wprowadzeniem parametru myRating zaktualizowaliśmy też metodę videos.list, aby obsługiwała podział na strony. Pamiętaj jednak, że parametry stronicowania są obsługiwane tylko w przypadku żądań korzystających z parametru myRating. Parametry i informacje dotyczące stron nie są obsługiwane w przypadku żądań korzystających z parametru id.

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

    • Zasób youtube#videoListResponse zwracany w odpowiedzi na żądanie videos.list zawiera teraz obiekt pageInfo z takimi informacjami jak łączna liczba wyników i liczba wyników w bieżącym zbiorze wyników. Zasób youtube#videoListResponse może też zawierać właściwości nextPageToken i prevPageToken, z których każda zawiera token służący do pobierania konkretnej strony z zestawu wyników.

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

    • autoLevels – ustaw wartość tego parametru na true, aby automatycznie poprawić oświetlenie i kolory w filmie.
    • stabilize – ustaw tę wartość na true, by poinformować YouTube, że ma dostosowywać film przez usunięcie drgań wynikających z ruchów kamery.

  • Do interfejsu snippet dodano właściwość channelTitle dla tych zasobów:

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

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

  • Nowy parametr mySubscribers metody subscriptions.list umożliwia pobieranie listy subskrybentów aktualnie uwierzytelnionych użytkownika. Tego parametru można używać tylko w prawidłowo autoryzowanym żądaniu.

    Uwaga: ta funkcja ma na celu zastąpienie parametru 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ą w przypadku ż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.

  • Błąd zwracany przez metodę playlistItems.insert, gdy playlista zawiera już maksymalną liczbę dozwolonych 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 pozwala użytkownikowi ustawić ocenę filmu (like lub dislike) lub usunąć z niego ocenę.

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

  • Miniatury są teraz identyfikowane w dokumentacji interfejsu API jako oddzielne zasoby, a nowa metoda thumbnails.set umożliwia przesłanie niestandardowej miniatury filmu do YouTube i ustawienie jej dla filmu.

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

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

  • Nowa część zasobu channel (brandingSettings) określa ustawienia, tekst i obrazy na stronie kanału oraz 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ści status.privacyStatus określa stan prywatności tego elementu.

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

  • Dokumentacja metody playlistItems.update została zaktualizowana, aby uwzględnić 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 pochodzących od uwierzytelnionego użytkownika.

    • Parametr order umożliwia teraz sortowanie wyników alfabetycznie według tytułu (order=title) lub liczby filmów w porządku malejącym (order=videoCount).

    • Nowy parametr safeSearch wskazuje, czy wyniki wyszukiwania powinny zawierać treści podlegające ograniczeniom.

  • Metoda videos.insert obsługuje kilka nowych błędów wymienionych 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 metadata specifies invalid recording details.
    badRequest invalidVideoGameRating Metadane żądania określają nieprawidłową ocenę gry wideo.
    badRequest invalidVideoMetadata Metadane żądania są nieprawidłowe.
  • Parametr onBehalfOfContentOwner został usunięty z listy obsługiwanych parametrów dla metod videos.update i videos.delete.

12 marca 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Do interfejsu snippet dodano właściwość channelTitle dla tych zasobów:

    • activity – właściwość określa nazwę kanału odpowiedzialnego za aktywność.
    • search – ta właściwość określa nazwę kanału powiązanego z zasobem, który jest wskazany w wynikach wyszukiwania.
    • video – właściwość określa nazwę kanału, który przesłał film.

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

    • Parametr channelType pozwala ograniczyć wyszukiwanie kanałów w celu pobrania wszystkich kanałów lub tylko programów i programów.

    • Parametr videoType pozwala ograniczyć wyszukiwanie filmów w celu pobrania wszystkich filmów albo tylko filmów bądź odcinków programów.

  • Definicja części recordingDetails zasobu video została zaktualizowana, aby uwzględnić, że w przypadku filmu obiekt będzie zwracany tylko wtedy, gdy ustawiono dane geolokalizacyjne lub czas nagrywania.

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

  • Kilka metod interfejsu API obsługuje nowe parametry, które są przeznaczone wyłącznie dla dostawców treści w YouTube. Do partnerów YouTube w zakresie treści należą studia filmowe i telewizyjne, wytwórnie płytowe i inni twórcy treści, którzy udostępniają swoje materiały w YouTube.

    • Parametr onBehalfOfContentOwner wskazuje, że dane uwierzytelniające żądanie identyfikują użytkownika YouTube CMS działającego w imieniu właściciela treści określonego w wartości parametru. Konto CMS, za pomocą którego użytkownik uwierzytelnia się, musi być powiązane z określonym właścicielem treści YouTube.

      Jest on przeznaczony dla dostawców treści, którzy są właścicielami wielu różnych kanałów YouTube i zarządzają nimi. Ten parametr umożliwia partnerom jednorazowe uwierzytelnienie się 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.

      Metody channels.list, search.list, videos.delete, videos.list i videos.update obsługują ten parametr.

    • Parametr managedByMe, który jest obsługiwany przez metodę channels.list, informuje interfejs API, aby zwracał wszystkie kanały należące do właściciela treści, które są określone w parametrze onBehalfOfContentOwner.

    • Parametr forContentOwner, który jest obsługiwany przez metodę search.list, powoduje, że interfejs API ogranicza wyniki wyszukiwania tylko do zasobów należących do właściciela treści określonego w parametrze 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 części fileDetails, processingDetails i suggestions dostarczają właścicielom filmów informacji o przesłanych przez nich filmach. Dane te są bardzo przydatne w aplikacjach, które umożliwiają przesyłanie filmów, i obejmują:

      • stan i postęp przetwarzania
      • błędów lub innych problemów napotkanych podczas przetwarzania filmu
      • dostępność miniaturek
      • sugestie dotyczące poprawy jakości filmu lub metadanych.
      • szczegółowe informacje na temat oryginalnego pliku przesłanego do YouTube;

      Wszystkie te części może pobrać tylko właściciel filmu. Poniższa lista zawiera krótkie opisy nowych części, a w dokumentacji zasobów video zdefiniowane są wszystkie właściwości zawarte w każdej z nich.

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

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

        Ten obiekt jest przeznaczony do ankietowania, dzięki czemu osoba, która przesłała film, może śledzić postępy w przetwarzaniu przesłanego przez YouTube pliku wideo.

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

    • 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 – wskazuje, czy film jest dostępny w standardowej czy wysokiej rozdzielczości.
      • caption – wskazuje, czy w filmie dostępne są napisy.
      • licensedContent – wskazuje, czy film zawiera treści, które zostały objęte roszczeniem przez partnera w zakresie treści YouTube.

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

      • embeddable – wskazuje, czy film można umieszczać na innej stronie.
      • license – określa licencję filmu. Prawidłowe wartości to creativeCommon i youtube.

  • Definicja parametru part została zaktualizowana w przypadku metod videos.list, videos.insert i videos.update, aby uwzględnić nowo dodane elementy opisane powyżej oraz 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. Ta wartość umożliwia wygenerowanie linku do profilu Google+.

  • Każdy obiekt obrazu miniatury określa teraz szerokość i wysokość obrazu. Miniatury obrazów są obecnie zwracane w zasobach activity, channel, playlist, playlistItem, search result, subscription i video.

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

    Jeśli interfejsu API nie można znaleźć na playliście, interfejs API zwraca błąd notFound.

  • W dokumentacji błędu opisano nowy błąd forbidden, który oznacza, że żądanie nie jest prawidłowo autoryzowane dla żądanego działania.

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

30 stycznia 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Nowa strona błędu zawiera listę błędów, które może zwrócić interfejs API. Strona zawiera błędy ogólne, które mogą występować w przypadku wielu różnych metod interfejsu API, a także błędy dotyczące konkretnych metod.

16 stycznia 2013 r.

Ta aktualizacja zawiera następujące zmiany:

  • Na tej liście są teraz dostępne przykładowe kody dla metod i języków:

  • Zasób activity może teraz zgłosić działanie channelItem, które ma miejsce, gdy YouTube doda film do automatycznie wygenerowanego kanału YouTube. (YouTube wykorzystuje algorytm, aby identyfikować tematy, które cieszą się dużą popularnością w YouTube, i automatycznie generuje dla nich kanały).

  • Zaktualizowano te parametry search.list:

    • Parametr q nie jest już oznaczony jako filtr, co oznacza, że...
    • Nazwa parametru relatedToVideo została zmieniona na relatedToVideoId.
    • Parametr published został zastąpiony 2 nowymi parametrami: publishedAfter i publishedBefore, które opisano 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 podanym czasem.
    regionCode string Zwróć zasoby dla określonego kraju.
    videoCategoryId string Filtruj wyniki wyszukiwania filmów, aby uwzględnić tylko filmy powiązane z określoną kategorią.
    videoEmbeddable string Filtruj wyniki wyszukiwania filmów, aby uwzględniać tylko te filmy, które można odtwarzać w osadzonym odtwarzaczu na stronie internetowej. Ustaw wartość tego parametru na true, aby pobrać tylko filmy możliwe do umieszczenia.
    videoSyndicated string Filtruj wyniki wyszukiwania filmów, aby uwzględnić tylko filmy, które można odtwarzać poza YouTube.com. Ustaw wartość parametru na true, aby pobrać tylko filmy redystrybuowane.
  • Kilka zasobów interfejsu API obsługuje nowe właściwości. Tabela poniżej przedstawia 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 do jednoznacznego identyfikowania elementu 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 snippet.type ma wartość channelItem.
    activity contentDetails.channelItem.resourceId object Obiekt identyfikujący zasób, który został dodany do kanału. Podobnie jak inne właściwości resourceId zawiera właściwość kind, która określa typ zasobu, np. film czy playlista. Zawiera też dokładnie jedną z kilku właściwości – videoId, playlistId itd. – która określa identyfikator jednoznacznie identyfikujący ten zasób.
    channel status object Zawiera on informacje o stanie prywatności kanału.
    channel status.privacyStatus string Status prywatności kanału. Prawidłowe wartości to private i public.
    playlist contentDetails object Ten obiekt zawiera metadane dotyczące zawartości playlisty.
    playlist contentDetails.itemCount unsigned integer Liczba filmów na playliście.
    playlist player object Ten obiekt zawiera informacje, które pozwalają odtworzyć playlistę w odtwarzaczu umieszczonym na stronie.
    playlist player.embedHtml string Tag <iframe>, który zawiera odtwarzacz wideo, który odtwarza playlistę.
    video recordingDetails object Zawiera on informacje identyfikujące lub opisujące miejsce i czas nagrania filmu.
    video recordingDetails.location object Ten obiekt zawiera informacje geolokalizacyjne 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 Opis tekstowy lokalizacji, w której nagrano film.
    video recordingDetails.recordingDate datetime Data i godzina nagrania filmu. Wartość należy podać w formacie ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
  • Dokumentacja kilku metod interfejsu API wskazuje teraz właściwości, które muszą być określone w treści żądania lub aktualizowane na podstawie wartości w treści żądania. W tabeli poniżej znajdziesz te metody oraz właściwości wymagane i możliwe do modyfikacji.

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

    Metoda Właściwości
    activities.insert Wymagane właściwości:
    • snippet.description
    Modyfikowalne właściwości:
    • snippet.description
    • contentDetails.bulletin.resourceId
    playlists.update Wymagane właściwości:
    • id
    playlistItems.update Wymagane właściwości:
    • id
    videos.update Wymagane właściwości:
    • id
  • Interfejs API nie zgłasza już błędu playlistAlreadyExists w przypadku próby utworzenia lub zaktualizowania playlisty, która ma taki sam tytuł jak playlista, która już istnieje na tym kanale.

  • Kilka metod interfejsu API obsługuje nowe typy błędów. Poniższa tabela przedstawia metodę i nowo obsługiwane błędy:

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