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 on pomóc Ci w zapewnieniu, że Twoja aplikacja będzie prawidłowo obsługiwać wycofanie domyślnych transmisji i domyślnych strumieni. Jest on przydatny, jeśli do Twojej aplikacji pasuje któreś z tych stwierdzeń:
- Sprawdza wartość właściwości zasobu
liveBroadcastisDefaultBroadcast. - Sprawdza wartość właściwości zasobu
liveStreamisDefaultStream. Wywołuje metodę
liveBroadcasts.listi ustawia wartość parametrubroadcastTypenapersistent. Od daty wycofania:- Jeśli wartość parametru
broadcastTypetopersistent, metodaliveBroadcasts.listnie zwróci żadnych wyników. - Jeśli wartość parametru
broadcastTypetoall, metodaliveBroadcasts.listnie zwróci trwałych transmisji, które istniały przed tą datą.
- Jeśli wartość parametru
Jeśli Twoja aplikacja jest objęta tą zmianą, przeczytaj sekcję Aktualizowanie aplikacji, w której wyjaśniamy, jakie zmiany proceduralne mogą być konieczne w Twojej aplikacji w wyniku tego wycofania. W tej sekcji wskazujemy konkretne kroki w przewodniku „Cykl życia transmisji”, których klient interfejsu API może zwykle nie wykonywać, jeśli obecnie używa domyślnej transmisji i strumienia.
Co się dzieje?
Od 2015 r. YouTube automatycznie tworzy domyślny strumień i domyślną transmisję dla kanału, gdy ten kanał jest włączony do transmisji na żywo. Domyślny strumień istniał bezterminowo i nie można go było usunąć. Podobnie domyślna transmisja była uważana za trwałą. Zawsze istniała, nie miała powiązanego czasu rozpoczęcia ani zakończenia i nie była powiązana z konkretnym wydarzeniem.
Od daty wycofania wymienionej powyżej YouTube nie będzie już tworzyć domyślnych strumieni i transmisji. Ta zmiana dotyczy aplikacji klienckich, które korzystają z tych zasobów do transmitowania treści na żywo. Będzie ona też miała wpływ na aplikacje, w których interfejs użytkownika jest dostosowany do rozróżniania tych domyślnych zasobów od innych transmisji i strumieni utworzonych przez właścicieli kanałów.
Zamiast korzystać z domyślnych zasobów, klienci interfejsu API muszą tworzyć zasoby liveBroadcast i liveStream oraz nimi zarządzać, a także łączyć te zasoby ze sobą.
Aktualizowanie aplikacji
Aby szybko przypomnieć terminologię, transmisja to wydarzenie, które można oglądać na YouTube na żywo, a strumień to mechanizm wysyłania rzeczywistych 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 klienci interfejsu API mogli wybrać, czy chcą używać domyślnej transmisji kanału, czy utworzyć transmisję związaną z wydarzeniem. Domyślna transmisja była trwałym zasobem, który można było ponownie wykorzystać w przypadku wielu wydarzeń, natomiast zasób transmisji związanej z wydarzeniem jest zasobem jednorazowym, który odpowiada dokładnie jednemu filmowi na YouTube.
Aplikacja kliencka używa domyślnej transmisji, jeśli wywołuje metodę liveBroadcasts.list i wykonuje jedną z tych czynności:
- Ustawia wartość parametru
broadcastTypenapersistent. To żądanie pobiera tylko domyślną transmisję. - Ustawia wartość parametru
broadcastTypenaall, a następnie identyfikuje w odpowiedzi interfejsu API zasóbliveBroadcast, którego wartość właściwościisDefaultBroadcasttotrue.
Po wycofaniu YouTube będzie obsługiwać tylko transmisje związane z wydarzeniami.
Oznacza to, że zamiast korzystać z domyślnej transmisji, aplikacje klienckie
muszą tworzyć
liveBroadcast
zasoby
dla każdego wydarzenia transmisji.
Aby utworzyć zasób liveBroadcast, wywołaj metodę
liveBroadcasts.insert.
Ten proces jest opisany w kroku 1.1 przewodnika „Cykl życia transmisji”.
Jeśli jeszcze tego nie robi, interfejs użytkownika musi też udostępniać użytkownikom mechanizmy rozróżniania i wybierania nadchodzących transmisji związanych z wydarzeniami.
Migracja z domyślnych strumieni
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.
Chociaż Twoja aplikacja nie może używać domyślnego strumienia, może utworzyć strumień wielokrotnego użytku, który można ponownie wykorzystać w każdej transmisji. Aby utworzyć zasób liveStream, wywołaj metodę liveStreams.insert, postępując zgodnie z instrukcjami w kroku 1.2 przewodnika „Cykl życia transmisji”. Domyślnie nowo utworzone strumienie są wielokrotnego użytku. Jeśli jednak wolisz, możesz ustawić wartość właściwości
contentDetails.isReusable
na false, aby utworzyć strumienie jednorazowe i mieć relację jeden do jednego
między transmisjami a strumieniami.
Oprócz tytułu strumienia i opisu strumienia, podczas tworzenia nowego strumienia możesz ustawić te 4 właściwości: Lista zawiera wartości, których domyślne strumienie używają w przypadku każdej właściwości. Są to prawdopodobnie ustawienia, których będziesz używać w aplikacji klienckiej, jeśli migrujesz z domyślnych strumieni.
cdn.frameRate–variablecdn.ingestionType–rtmpcdn.resolution–variablecontentDetails.isReusabletrue
Powiązanie transmisji ze strumieniami
Każdy zasób liveBroadcast musi być powiązany z dokładnie jednym strumieniem, zanim będzie można rozpocząć transmisję na żywo w YouTube. (W momencie tworzenia transmisja nie jest powiązana z żadnym strumieniem).
Proces powiązania był obsługiwany automatycznie w przypadku domyślnej transmisji, która była nierozerwalnie powiązana z domyślnym strumieniem. Jednak po dacie wycofania aplikacje klienckie muszą zarządzać tym procesem w przypadku wszystkich transmisji.
Aby powiązać transmisję ze strumieniem, wywołaj metodę
liveBroadcasts.bind, jak
opisano w kroku 1.3 przewodnika „Cykl życia transmisji”.
- Jeśli używasz strumienia wielokrotnego użytku, możesz utworzyć strumień raz, a potem powiązać z nim każdą transmisję.
- Jeśli nie używasz strumienia wielokrotnego użytku, musisz utworzyć transmisję i strumień, a następnie powiązać je ze sobą.
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 filmu z transmisji w takiej postaci, w jakiej będzie on widoczny dla widzów YouTube. Transmisja nie jest jednak widoczna dla innych widzów.
Jeśli Twój klient API wcześniej używał domyślnej transmisji i strumienia, a chcesz dodać etap testowania do procesu przetwarzania strumieniowego, zapoznaj się z etapem 3 przewodnika „Cykl życia transmisji”.
Jeśli chcesz przetestować strumień, podczas wstawiania transmisji musisz
ustawić wartość właściwości contentDetails.monitorStream.enableMonitorStream
na true a wartość 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 automatycznego zatrzymywania
Domyślna transmisja uruchamiała się automatycznie, gdy tylko zaczynałeś przesyłać strumieniowo film w domyślnym strumieniu. Podobnie domyślna transmisja kończyła się po zatrzymaniu przesyłania strumieniowego filmu. Każda sesja przesyłania strumieniowego z użyciem tych domyślnych zasobów stawała się filmem na Twoim kanale.
Chociaż funkcje automatycznego uruchamiania i automatycznego zatrzymywania były domyślnym działaniem w przypadku domyślnych transmisji, są one opcjonalne i trzeba je włączyć 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 uruchamiania i automatycznego zatrzymywania w przypadku nowych transmisji, klient interfejsu API musi wywołać metodę liveBroadcasts.transition, aby zaktualizować stan transmisji po rozpoczęciu i zakończeniu przesyłania strumieniowego filmu. W przewodniku "Cykl życia transmisji" znajdziesz instrukcje dotyczące zarządzania tymi przejściami na początku i na końcu transmisji w kroku 4.3 i kroku 5.2.