Interfejs API umożliwia teraz oznaczanie transmisji na żywo jako „przeznaczonych dla dzieci”. Zasób
liveBroadcast
zawiera teraz właściwość, która wskazuje, że transmisja na żywo jest przeznaczona dla dzieci. 10 stycznia 2020 r. zaktualizowaliśmy też Warunki korzystania z usług interfejsu API YouTube oraz Zasady dla deweloperów. Więcej informacji znajdziesz w historii zmian interfejsu API YouTube do transmisji na żywo i Warunków korzystania z usług interfejsu API YouTube.
Zasób liveBroadcast
reprezentuje wydarzenie, które będzie transmitowane w YouTube za pomocą transmisji na żywo.
Metody
Interfejs API obsługuje te metody dotyczące zasobów liveBroadcasts
:
- list
- Zwraca listę transmisji YouTube, które pasują do parametrów żądania interfejsu API. Wypróbuj teraz
- insert
- Tworzy transmisję. Wypróbuj teraz
- update
- Aktualizuje transmisję. Możesz na przykład zmodyfikować ustawienia transmisji zdefiniowane w obiekcie
contentDetails
zasobuliveBroadcast
. Wypróbuj - usuń
- Usuwanie transmisji. Wypróbuj teraz
- bind
- Przywiązuje transmisję w YouTube do strumienia lub usuwa istniejące powiązanie między transmisją a strumieniem. Transmisja może być powiązana tylko z 1 strumieniem wideo, ale strumień wideo może być powiązany z wieloma transmisjami. Wypróbuj teraz
- transition
- Zmienia stan transmisji na żywo w YouTube i inicjuje procesy związane z nowym stanem. Gdy na przykład zmienisz stan transmisji na
testing
, YouTube zacznie przesyłać film do strumienia monitorowania tej transmisji. Przed wywołaniem tej metody musisz potwierdzić, że wartość właściwościstatus.streamStatus
dla strumienia powiązanego z Twoim przekazem wynosiactive
. Wypróbuj - cuepoint
- Wstawia punkt cue w transmisji na żywo. Sygnał może wywołać przerwę na reklamę.
Prezentacja zasobów
Struktura JSON poniżej pokazuje format zasobu liveBroadcasts
:
{ "kind": "youtube#liveBroadcast", "etag": etag, "id": string, "snippet": { "publishedAt": datetime, "channelId": string, "title": string, "description": string, "thumbnails": { (key): { "url": string, "width": unsigned integer, "height": unsigned integer } }, "scheduledStartTime": datetime, "scheduledEndTime": datetime, "actualStartTime": datetime, "actualEndTime": datetime, "isDefaultBroadcast": boolean, "liveChatId": string }, "status": { "lifeCycleStatus": string, "privacyStatus": string, "recordingStatus": string, "madeForKids": string, "selfDeclaredMadeForKids": string, }, "contentDetails": { "boundStreamId": string, "boundStreamLastUpdateTimeMs": datetime, "monitorStream": { "enableMonitorStream": boolean, "broadcastStreamDelayMs": unsigned integer, "embedHtml": string }, "enableEmbed": boolean, "enableDvr": boolean, "recordFromStart": boolean, "enableClosedCaptions": boolean, "closedCaptionsType": string, "projection": string, "enableLowLatency": boolean, "latencyPreference": boolean, "enableAutoStart": boolean, "enableAutoStop": boolean }, "statistics": { "totalChatCount": unsigned long }, "monetizationDetails": { "cuepointSchedule": { "enabled": boolean, "pauseAdsUntil": datetime, "scheduleStrategy": string, "repeatIntervalSecs": unsigned integer, } } } }
Właściwości
Właściwości występujące w tym zasobie są opisane w tabeli poniżej:
Właściwości | |
---|---|
kind |
string Określa typ zasobu interfejsu API. Wartość będzie wynosić youtube#liveBroadcast . |
etag |
etag Etag tego zasobu. |
id |
string Identyfikator przypisany przez YouTube do jednoznacznego identyfikowania transmisji. |
snippet |
object Obiekt snippet zawiera podstawowe informacje o wydarzeniu, w tym jego tytuł, opis, godzinę rozpoczęcia i zakończenia. |
snippet.publishedAt |
datetime Data i godzina dodania transmisji do harmonogramu transmisji na żywo w YouTube. Wartość jest podawana w formacie ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). |
snippet.channelId |
string Identyfikator, którego YouTube używa do jednoznacznego zidentyfikowania kanału, który publikuje transmisję. |
snippet.title |
string Tytuł transmisji. Pamiętaj, że transmisja dotyczy dokładnie jednego filmu w YouTube. Możesz ustawić to pole, modyfikując zasób transmisji lub ustawiając pole title w odpowiednim zasobie wideo. |
snippet.description |
string Opis transmisji. Podobnie jak w przypadku pola title , możesz ustawić to pole, modyfikując zasób transmisji lub ustawiając pole description w odpowiednim zasobie wideo. |
snippet.thumbnails |
object Mapa miniatur powiązanych z transmisją. W przypadku każdego zagnieżdżonego obiektu w tym obiekcie kluczem jest nazwa miniatury, a wartością jest obiekt zawierający inne informacje o miniaturze. |
snippet.thumbnails.(key) |
object Prawidłowe wartości klucza:
|
snippet.thumbnails.(key).url |
string Adres URL obrazu. |
snippet.thumbnails.(key).width |
unsigned integer Szerokość obrazu. |
snippet.thumbnails.(key).height |
unsigned integer Wysokość obrazu. |
snippet.scheduledStartTime |
datetime Data i godzina rozpoczęcia transmisji. Wartość jest podawana w formacie ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). Creator Studio umożliwia tworzenie transmisji bez planowania czasu rozpoczęcia. W takim przypadku transmisja rozpoczyna się, gdy właściciel kanału rozpocznie strumieniowanie. W przypadku tych transmisji wartość datetime odpowiada zerowej dacie w epoce Unixa. Nie można jej zmienić za pomocą interfejsu API ani w Studio Twórcy. |
snippet.scheduledEndTime |
datetime Data i godzina zakończenia transmisji. Wartość jest podawana w formacie ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). Jeśli zasób liveBroadcast nie określa wartości tej właściwości, transmisja jest zaplanowana na czas nieokreślony. Jeśli nie podasz wartości tej właściwości, YouTube będzie traktować transmisję tak, jakby miała trwać bez końca. |
snippet.actualStartTime |
datetime Data i godzina rozpoczęcia transmisji. Te informacje są dostępne tylko wtedy, gdy stan transmisji to live . Wartość jest podawana w formacie ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ). |
snippet.actualEndTime |
datetime Data i godzina zakończenia transmisji. Te informacje są dostępne tylko wtedy, gdy stan transmisji to complete . Wartość jest podawana w formacie ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ). |
snippet.isDefaultBroadcast |
boolean
Ta usługa zostanie wycofana 1 września 2020 r. lub później. Wtedy YouTube przestanie tworzyć domyślny strumień i domyślną transmisję, gdy kanał będzie mieć włączoną transmisję na żywo. Więcej informacji znajdziesz w ogłoszeniu o wycofaniu funkcji.
Ta właściwość wskazuje, czy ta transmisja jest transmisją domyślną.Jak działają transmisje domyślne Gdy kanał w YouTube jest włączony do transmisji na żywo, YouTube tworzy domyślny strumień i domyślną transmisję. Transmisja określa sposób, w jaki właściciel kanału wysyła transmisję na żywo do YouTube, a transmisja to sposób, w jaki widzowie mogą zobaczyć transmisję domyślną. Właściciel kanału może zidentyfikować te zasoby za pomocą metod liveStreams.list i liveBroadcasts.list .Gdy kanał rozpocznie transmisję strumienia domyślnego, film jest widoczny w transmisji domyślnej kanału. Gdy transmisja dobiegnie końca, YouTube przekształci zakończoną transmisję w film w YouTube i przypisze mu identyfikator filmu w YouTube. Po zakończeniu konwersji film zostanie dodany do listy przesłanych filmów na kanale. Film nie jest dostępny bezpośrednio po zakończeniu transmisji, a czas opóźnienia jest związany z rzeczywistą długością transmisji. |
snippet.liveChatId |
string Identyfikator czatu na żywo w YouTube. Dzięki temu identyfikatorowi możesz używać metod zasobu liveChatMessage do pobierania, wstawiania i usuwania wiadomości czatu. Możesz też dodawać i usuwać moderatorów czatu, blokować użytkowników przed uczestnictwem w czatach na żywo oraz usuwać istniejące blokady. |
status |
object Obiekt status zawiera informacje o stanie zdarzenia. |
status.lifeCycleStatus |
string Stan transmisji. Stan można zaktualizować za pomocą metody liveBroadcasts.transition interfejsu API.Dopuszczalne wartości tej właściwości to:
|
status.privacyStatus |
string Stan prywatności transmisji. Pamiętaj, że transmisja obejmuje dokładnie jeden film w YouTube, więc ustawienia prywatności są identyczne jak w przypadku filmów. Możesz też ustawić to pole, modyfikując zasób transmisji lub ustawiając pole privacyStatus w odpowiednim zasobie wideo.Dopuszczalne wartości tej właściwości to:
|
status.recordingStatus |
string Stan nagrywania transmisji. Prawidłowe wartości tej właściwości to:
|
status.madeForKids |
boolean Ta wartość wskazuje, czy transmisja jest przeznaczona dla dzieci. Ta wartość właściwości jest tylko do odczytu. |
status.selfDeclaredMadeForKids |
boolean W żądaniu liveBroadcasts.insert ta właściwość umożliwia właścicielowi kanału oznaczenie transmisji jako skierowanej do dzieci. W żądaniu liveBroadcasts.list wartość właściwości jest zwracana tylko wtedy, gdy właściciel kanału autoryzował żądanie interfejsu API. |
contentDetails |
object Obiekt contentDetails zawiera informacje o treściach wideo wydarzenia, takie jak informacje o tym, czy treści mogą być wyświetlane w osadzonym odtwarzaczu, czy zostaną zarchiwizowane i czy będą dostępne do wyświetlenia po zakończeniu wydarzenia. |
contentDetails.boundStreamId |
string Ta wartość jednoznacznie identyfikuje live stream powiązany z transmisją. |
contentDetails.boundStreamLastUpdateTimeMs |
datetime Data i godzina ostatniej aktualizacji transmisji na żywo, do której odwołuje się boundStreamId . |
contentDetails.monitorStream |
object Obiekt monitorStream zawiera informacje o strumieniu monitorowania, które nadawca może wykorzystać do sprawdzenia treści wydarzenia, zanim strumień transmisji zostanie publicznie wyświetlony. |
contentDetails.monitorStream.enableMonitorStream |
boolean Ta wartość określa, czy strumień monitorowania jest włączony w przypadku transmisji. Jeśli włączysz strumień monitorowania, YouTube będzie transmitować zawartość wydarzenia w specjalnym strumieniu przeznaczonym tylko dla nadawcy. Streamer może użyć strumienia, aby sprawdzić treść wydarzenia i zidentyfikować optymalne momenty na wstawienie punktów cue. Jeśli chcesz użyć testing sceny w ramach transmisji lub opóźnić transmisję wydarzenia, musisz ustawić tę wartość na true . Jeśli wartość tej właściwości to true , musisz przełączyć transmisję do stanu testing , zanim będzie można ją przełączyć do stanu live . (jeśli wartość właściwości to false , transmisja nie może mieć etapu testing , więc możesz przejść bezpośrednio do stanu live ).Gdy update a broadcast , ta właściwość musi być ustawiona, jeśli żądanie interfejsu API zawiera część contentDetails w wartości parametru part . Jednak w przypadku tagu insert a broadcast ta właściwość jest opcjonalna i ma domyślną wartość true .Ważne: tej właściwości nie można zaktualizować, gdy transmisja jest w stanie testing lub live . |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integer Jeśli właściwość enableMonitorStream jest ustawiona na true , określa ona długość opóźnienia transmisji na żywo.Gdy update a broadcast , ta właściwość musi być ustawiona, jeśli żądanie interfejsu API zawiera część contentDetails w wartości parametru part . Jednak w przypadku wartości insert a broadcast ta właściwość jest opcjonalna i ma domyślną wartość 0 . Ta wartość wskazuje, że transmisja nie ma opóźnienia. Uwaga: tej właściwości nie można zaktualizować, gdy transmisja jest w stanie testing lub live . |
contentDetails.monitorStream.embedHtml |
string Kod HTML, który umieszcza odtwarzacz, który odtwarza strumień monitora. |
contentDetails.enableEmbed |
boolean To ustawienie wskazuje, czy transmisja może być odtwarzana w odtwarzaczu umieszczonym na stronie. Jeśli zdecydujesz się zarchiwizować film (za pomocą właściwości enableArchive ), to ustawienie będzie miało zastosowanie również do zarchiwizowanego filmu.Gdy update a broadcast , ta właściwość musi być ustawiona, jeśli żądanie interfejsu API zawiera część contentDetails w wartości parametru part . Jednak w przypadku wartości insert a broadcast ta właściwość jest opcjonalna i ma domyślną wartość true .Uwaga: tej właściwości nie można zaktualizować, gdy transmisja jest w stanie testing lub live . |
contentDetails.enableDvr |
boolean To ustawienie określa, czy widzowie mogą korzystać z elementów sterujących DVR podczas oglądania filmu. Elementy sterujące DVR umożliwiają widzowi sterowanie odtwarzaniem filmu przez wstrzymywanie, przewijanie do tyłu i do przodu. Wartością domyślną tej właściwości jest true . Gdy update a broadcast , ta właściwość musi być ustawiona, jeśli żądanie interfejsu API zawiera część contentDetails w wartości parametru part . Jednak w przypadku tagu insert a broadcast ta właściwość jest opcjonalna i ma domyślną wartość true .Ważne: jeśli chcesz, aby odtwarzanie było dostępne natychmiast po zakończeniu transmisji, musisz ustawić wartość na true i ustawić wartość właściwości enableArchive na true . Ponadto nie można zaktualizować tej właściwości, gdy transmisja jest w stanie testing lub live . |
contentDetails.recordFromStart |
boolean To ustawienie wskazuje, czy YouTube ma automatycznie rozpocząć nagrywanie transmisji po zmianie jej stanu na „na żywo”. Domyślna wartość tej właściwości to true . Można ją ustawić na false tylko wtedy, gdy kanał nadawania może wyłączyć nagrywanie transmisji na żywo.Jeśli Twój kanał nie ma uprawnień do wyłączania nagrań, a Ty spróbujesz wstawić transmisję z właściwością recordFromStart ustawioną na false , interfejs API zwróci błąd Forbidden . Jeśli Twój kanał nie ma tego uprawnienia i spróbujesz zaktualizować transmisję, aby ustawić wartość właściwości recordFromStart na false , interfejs API zwróci błąd modificationNotAllowed .Gdy update a broadcast , ta właściwość musi być ustawiona, jeśli żądanie interfejsu API zawiera część contentDetails w wartości parametru part . Jednak w przypadku wartości insert a broadcast ta właściwość jest opcjonalna i ma domyślną wartość true .Ważne: jeśli chcesz, aby odtwarzanie było dostępne natychmiast po zakończeniu transmisji, musisz też ustawić wartość właściwości enableDvr na true . Jeśli ustawisz wartość tej właściwości na true , ale nie ustawisz właściwości enableDvr na true , może minąć około 1 dnia, zanim zarchiwizowany film będzie dostępny do odtworzenia.Uwaga: tej właściwości nie można zaktualizować, gdy transmisja jest w stanie testing lub live . |
contentDetails.enableClosedCaptions |
boolean Ta właściwość została wycofana 17 grudnia 2015 r. Zamiast tego użyj właściwości contentDetails.closedCaptionsType .To ustawienie wskazuje, czy w przypadku tej transmisji włączone są napisy kodowane w formacie HTTP POST. W przypadku klientów interfejsu API, którzy już korzystają z tej usługi:
|
contentDetails.closedCaptionsType |
string Uwaga: ta właściwość zastępuje właściwość contentDetails.enableClosedCaptions .Ta właściwość wskazuje, czy w Twoim programie są włączone napisy, a jeśli tak, to jakiego typu:
|
contentDetails.projection |
string Format rzutowania tej transmisji. Wartością domyślną tej właściwości jest rectangular .Dozwolone wartości tej właściwości to:
|
contentDetails.enableLowLatency |
boolean Wskazuje, czy ta transmisja powinna być kodowana pod kątem strumieniowego przesyłania danych z małą latencją. Strumień o niskiej latencji może skrócić czas, po którym film staje się widoczny dla użytkowników oglądających transmisję, ale może też wpłynąć na rozdzielczość obrazu. |
contentDetails.latencyPreference |
string Wskazuje, którego ustawienia opóźnienia użyć w przypadku tej transmisji. Ta właściwość może być używana zamiast wartości enableLowLatency , która nie obsługuje wartości ultraLow .Strumień o niskiej latencji może skrócić czas, po którym film jest widoczny dla użytkowników oglądających transmisję, ale może też wpłynąć na płynność odtwarzania. Strumień o ultraniskiej latencji jeszcze bardziej skraca czas, po którym film jest widoczny dla widzów, ułatwiając interakcję z widzami, ale nie obsługuje napisów ani rozdzielczości wyższych niż 1080p. Dopuszczalne wartości tej właściwości to:
|
contentDetails.enableAutoStart |
boolean Wskazuje, czy ta transmisja ma się rozpoczynać automatycznie po rozpoczęciu przesyłania strumieniowego filmu na powiązanym urządzeniu live stream . |
contentDetails.enableAutoStop |
boolean Określa, czy ta transmisja powinna zakończyć się automatycznie około minuty po tym, jak właściciel kanału zatrzyma przesyłanie strumienia wideo na powiązanym strumieniu wideo. |
statistics |
object Obiekt statistics zawiera statystyki dotyczące transmisji na żywo. Wartości tych statystyk mogą się zmieniać w trakcie transmisji i można je pobrać tylko wtedy, gdy transmisja jest na żywo. |
statistics.totalChatCount |
unsigned long Łączna liczba wiadomości na czacie na żywo powiązanych z transmisją. Właściwość i jej wartość są obecne, jeśli transmisja jest widoczna dla użytkownika, ma włączoną funkcję czatu na żywo i zawiera co najmniej jedną wiadomość. Pamiętaj, że ta właściwość nie będzie określać wartości po zakończeniu transmisji. W związku z tym ta właściwość nie będzie określać liczby wiadomości na czacie w przypadku archiwalnego filmu z zakończonej transmisji na żywo. |
monetizationDetails |
object Obiekt monetizationDetails zawiera informacje o szczegółach zarabiania na strumieniu, takich jak włączenie automatu reklamowego lub opóźnienie wstawiania reklam w trakcie filmu. |
monetizationDetails.cuepointSchedule |
object Obiekt cuepointSchedule określa ustawienia automatyzacji reklam dla transmisji. |
monetizationDetails.cuepointSchedule.enabled |
boolean Ta wartość określa, czy reklamy są automatycznie wstawiane do transmisji. Jeśli wartość to true , YouTube automatycznie wstawia reklamy w trakcie transmisji. Harmonogram wyświetlania reklam zostanie określony przez wartość innych pól w obiekcie monetizationDetails.cuepointSchedule .
|
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetime Ta wartość określa, że YouTube nie powinien wstawiać reklam w trakcie transmisji do momentu wskazanej daty i godziny. Wartość jest określona w formacie ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). Aby wstrzymać reklamy, musisz ustawić wartość na przyszłą datę i godzinę. Wartość tego pola możesz też ustawić na datę i godzinę w niedalekiej przyszłości, aby wstrzymane reklamy zostały wznowione po upływie czasu. |
monetizationDetails.cuepointSchedule.scheduleStrategy |
string Ta wartość określa strategię, której YouTube powinien używać do planowania punktów cue. Prawidłowe wartości to:
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integer Ta wartość określa odstęp czasu (w sekundach) między automatycznym wstawianiem reklam podczas transmisji. Jeśli na przykład wartość wynosi 300 , YouTube może wstawiać punkty wstawienia reklamy w trakcie filmu co 5 minut.Pamiętaj, że ta wartość określa czas między początkami kolejnych punktów cue. Oznacza to, że przerwa nie jest mierzona od końca jednego punktu cue do początku następnego. |