Przegląd
Ten przewodnik jest przeznaczony dla deweloperów aplikacji klienckich interfejsu API, które używają domyślnych zasobów liveStream
i liveBroadcast
kanałów YouTube do przesyłania strumieniowego treści na żywo. Ma ona pomóc Ci w zapewnieniu, że Twoja aplikacja będzie prawidłowo obsługiwać wycofanie domyślnych transmisji i domyślnych strumieni. Jest ona przydatna, jeśli którekolwiek z tych stwierdzeń dotyczy Twojej aplikacji:
- Sprawdza wartość właściwości
liveBroadcast
zasobuisDefaultBroadcast
. - Sprawdza wartość właściwości
liveStream
zasobuisDefaultStream
. Wywołuje metodę
liveBroadcasts.list
i ustawia wartość parametrubroadcastType
napersistent
. Od daty wycofania:- Jeśli wartość parametru
broadcastType
topersistent
, metodaliveBroadcasts.list
nie zwróci żadnych wyników. - Jeśli wartość parametru
broadcastType
toall
, metodaliveBroadcasts.list
nie zwróci trwałych transmisji, które istniały wcześniej.
- Jeśli wartość parametru
Jeśli Twoja aplikacja jest objęta tą zmianą, zapoznaj się z sekcją Aktualizowanie aplikacji, w której wyjaśniamy zmiany proceduralne, jakie mogą być konieczne w Twojej aplikacji w wyniku wycofania tej funkcji. W tej sekcji znajdziesz konkretne kroki z przewodnika Życie transmisji, których klient interfejsu API może zwykle nie wykonywać, jeśli obecnie korzysta z domyślnej transmisji i strumienia.
Co się dzieje?
Od 2015 roku YouTube automatycznie tworzy domyślną transmisję i domyślną audycję na kanale, gdy włączona jest na nim transmisja na żywo. Strumień domyślny istniał bezterminowo i nie można go było usunąć. Podobnie domyślna transmisja była uznawana za trwałą. Zawsze istniało, nie miało powiązanej godziny rozpoczęcia ani zakończenia i nie było powiązane z konkretnym wydarzeniem.
Od podanej powyżej daty wycofania YouTube nie będzie już tworzyć domyślnych transmisji strumieniowych i transmisji. Ta zmiana ma wpływ na aplikacje klienckie, które korzystają z tych zasobów do transmitowania treści na żywo. Wpłynie to również na aplikacje, w których interfejs użytkownika jest dostosowany do odróżniania tych domyślnych zasobów od innych transmisji i strumieni utworzonych przez właścicieli kanałów.
Zamiast korzystać z zasobów domyślnych, klienci API muszą tworzyć zasoby liveBroadcast
i liveStream
oraz nimi zarządzać, a także łączyć je ze sobą.
Aktualizowanie aplikacji
Aby szybko przypomnieć sobie terminologię, transmisja to wydarzenie, które można oglądać w YouTube na żywo, a strumień to mechanizm wysyłania rzeczywistej treści wideo do YouTube. Transmisja może być i musi być powiązana z dokładnie jednym strumieniem.
Migracja z domyślnych transmisji
Przed wycofaniem tej funkcji klienci interfejsu API mogli wybrać domyślną transmisję kanału lub utworzyć transmisję związaną z konkretnym wydarzeniem. Domyślna transmisja była trwałym zasobem, którego można było używać w przypadku wielu wydarzeń, a zasób transmisji związany z wydarzeniem jest zasobem jednorazowym, który odpowiada dokładnie jednemu filmowi w YouTube.
Aplikacja kliencka używa domyślnego rozgłaszania, jeśli wywołuje metodę liveBroadcasts.list
i wykonuje jedną z tych czynności:
- Ustawia wartość parametru
broadcastType
napersistent
. To żądanie pobiera tylko domyślną transmisję. - Ustawia wartość parametru
broadcastType
naall
, a następnie w odpowiedzi interfejsu API identyfikuje zasóbliveBroadcast
, dla którego wartość właściwościisDefaultBroadcast
totrue
.
Po wycofaniu tej funkcji YouTube będzie obsługiwać tylko transmisje związane z wydarzeniami.
Oznacza to, że zamiast korzystać z domyślnego przekazu aplikacje klienckie muszą tworzyć liveBroadcast
zasoby
dla każdego indywidualnego zdarzenia transmisji.
Aby utworzyć zasób liveBroadcast
, wywołaj metodę liveBroadcasts.insert
.
Ten proces jest opisany w kroku 1.1 przewodnika „Życie transmisji”.
Jeśli interfejs użytkownika jeszcze tego nie robi, musi też udostępniać użytkownikom mechanizmy rozróżniania i wybierania nadchodzących transmisji związanych z wydarzeniem.
Migracja ze strumieni domyślnych
Strumień umożliwia przesyłanie treści audio-wideo do YouTube i określa ustawienia przesyłania strumieniowego treści do YouTube. Nadawcy często używają tego samego strumienia do wielu różnych transmisji, jeśli odbywają się one w różnych terminach.
Mimo że aplikacja nie może używać domyślnego strumienia, może utworzyć strumień wielokrotnego użytku, który można wykorzystać w przypadku każdej transmisji. Aby utworzyć liveStream
zasób, wywołaj metodę liveStreams.insert
, postępując zgodnie z instrukcjami w kroku 1.2 przewodnika „Życie transmisji”. Domyślnie nowo utworzone strumienie można ponownie wykorzystywać. Jeśli jednak wolisz, możesz ustawić właściwość
contentDetails.isReusable
na false
, aby tworzyć strumienie jednorazowe i mieć relację 1:1 między transmisjami a strumieniami.
Poniżej znajdziesz listę 4 właściwości, które możesz ustawić podczas tworzenia nowego strumienia. Oprócz nich możesz też ustawić tytuł strumienia i opis strumienia. Lista zawiera wartości, których domyślne strumienie używają w przypadku poszczególnych usług. Są to prawdopodobnie ustawienia, których chcesz używać w aplikacji klienckiej, jeśli rezygnujesz z domyślnych strumieni.
cdn.frameRate
-variable
cdn.ingestionType
-rtmp
cdn.resolution
-variable
contentDetails.isReusable
-true
Powiązywanie transmisji ze strumieniami
Każdy zasób liveBroadcast
musi być powiązany z dokładnie 1 strumieniem, zanim będzie można rozpocząć transmisję na żywo w YouTube. (W momencie tworzenia transmisja nie jest powiązana z żadnymi strumieniami).
Proces wiązania został przeprowadzony automatycznie w przypadku domyślnej transmisji, która była nierozerwalnie związana ze strumieniem domyślnym. Po dacie wycofania aplikacje klienckie będą musiały zarządzać tym procesem w przypadku wszystkich transmisji.
Aby powiązać transmisję ze strumieniem, wywołaj metodę
liveBroadcasts.bind
zgodnie z opisem w kroku 1.3 przewodnika „Życie transmisji”.
- Jeśli używasz strumienia wielokrotnego użytku, możesz utworzyć go raz, a następnie powiązać z nim każdą transmisję.
- Jeśli nie używasz strumienia wielokrotnego użytku, musisz utworzyć transmisję i strumień, a następnie je ze sobą powiązać.
Testowanie transmisji
Jeśli nie używasz domyślnej transmisji, możesz ją przetestować. Aby przeprowadzić test, umieść odtwarzacz, który umożliwia wyświetlenie podglądu transmisji wideo w taki sposób, w jaki będzie ona widoczna dla widzów YouTube. Transmisja nie będzie jednak widoczna dla innych widzów.
Jeśli Twój klient API wcześniej korzystał z domyślnej transmisji i strumienia, a chcesz dodać fazę testowania do procesu przesyłania strumieniowego, zapoznaj się z etapem 3 przewodnika „Życie transmisji”.
Jeśli chcesz przetestować strumień, podczas wstawiania transmisji musisz ustawić wartość właściwości contentDetails.monitorStream.enableMonitorStream na true
, a właściwości contentDetails.enableAutoStart na false
. Są to domyślne wartości obu właściwości.
Korzystanie z funkcji automatycznego uruchamiania i zatrzymywania
Domyślna transmisja rozpoczynała się automatycznie, gdy zaczynałeś przesyłać strumieniowo wideo w domyślnym strumieniu. Podobnie domyślna transmisja zakończyła się po zatrzymaniu transmisji wideo. Każda sesja strumieniowania z wykorzystaniem tych domyślnych zasobów stała się później filmem na Twoim kanale.
Funkcje automatycznego rozpoczynania i zatrzymywania były domyślnie włączone w przypadku domyślnych transmisji, ale są opcjonalne i muszą być włączone w przypadku innych transmisji. Jeśli chcesz korzystać z tych funkcji, podczas wstawiania transmisji musisz ustawić wartości właściwości contentDetails.enableAutoStart i contentDetails.enableAutoStop na true
. Te funkcje są niezależne, więc możesz używać jednej z nich, a nie drugiej.
Jeśli nie włączysz funkcji automatycznego rozpoczynania i zatrzymywania nowych transmisji, klient API będzie musiał wywoływać metodę liveBroadcasts.transition, aby aktualizować stan transmisji po rozpoczęciu i zakończeniu strumieniowania wideo. W przewodniku „Life of a Broadcast” (Życie transmisji) znajdziesz instrukcje zarządzania tymi przejściami na początku i na końcu transmisji w kroku 4.3 i kroku 5.2.