Przewodnik po migracji w związku z wycofaniem domyślnych transmisji i strumieni

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 liveBroadcast isDefaultBroadcast.
  • Sprawdza wartość właściwości zasobu liveStream isDefaultStream.
  • Wywołuje metodę liveBroadcasts.list i ustawia wartość parametru broadcastType na persistent. Od daty wycofania:

    • Jeśli wartość parametru broadcastType to persistent, metoda liveBroadcasts.list nie zwróci żadnych wyników.
    • Jeśli wartość parametru broadcastType to all, metoda liveBroadcasts.list nie zwróci trwałych transmisji, które istniały przed tą datą.

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 broadcastType na persistent. To żądanie pobiera tylko domyślną transmisję.
  • Ustawia wartość parametru broadcastType na all, a następnie identyfikuje w odpowiedzi interfejsu API zasób liveBroadcast, którego wartość właściwości isDefaultBroadcast to true.

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.

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.