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
contentDetailszasobuliveBroadcast. 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.streamStatusdla 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 |
stringOkreśla typ zasobu interfejsu API. Wartość będzie wynosić youtube#liveBroadcast. |
etag |
etagEtag tego zasobu. |
id |
stringIdentyfikator przypisany przez YouTube do jednoznacznego identyfikowania transmisji. |
snippet |
objectObiekt snippet zawiera podstawowe informacje o wydarzeniu, w tym jego tytuł, opis, godzinę rozpoczęcia i zakończenia. |
snippet.publishedAt |
datetimeData 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 |
stringIdentyfikator, którego YouTube używa do jednoznacznego zidentyfikowania kanału, który publikuje transmisję. |
snippet.title |
stringTytuł 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 |
stringOpis 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 |
objectMapa 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) |
objectPrawidłowe wartości klucza:
|
snippet.thumbnails.(key).url |
stringAdres URL obrazu. |
snippet.thumbnails.(key).width |
unsigned integerSzerokość obrazu. |
snippet.thumbnails.(key).height |
unsigned integerWysokość obrazu. |
snippet.scheduledStartTime |
datetimeData 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 |
datetimeData 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 |
datetimeData 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 |
datetimeData 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 |
stringIdentyfikator 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 |
objectObiekt status zawiera informacje o stanie zdarzenia. |
status.lifeCycleStatus |
stringStan transmisji. Stan można zaktualizować za pomocą metody liveBroadcasts.transition interfejsu API.Dopuszczalne wartości tej właściwości to:
|
status.privacyStatus |
stringStan 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 |
stringStan nagrywania transmisji. Prawidłowe wartości tej właściwości to:
|
status.madeForKids |
booleanTa wartość wskazuje, czy transmisja jest przeznaczona dla dzieci. Ta wartość właściwości jest tylko do odczytu. |
status.selfDeclaredMadeForKids |
booleanW żą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 |
objectObiekt 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 |
stringTa wartość jednoznacznie identyfikuje live stream powiązany z transmisją. |
contentDetails.boundStreamLastUpdateTimeMs |
datetimeData i godzina ostatniej aktualizacji transmisji na żywo, do której odwołuje się boundStreamId. |
contentDetails.monitorStream |
objectObiekt 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 |
booleanTa 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 integerJeś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 |
stringKod HTML, który umieszcza odtwarzacz, który odtwarza strumień monitora. |
contentDetails.enableEmbed |
booleanTo 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 |
booleanTo 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 |
booleanTo 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 |
booleanTa 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 |
stringUwaga: 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 |
stringFormat 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 |
booleanWskazuje, 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 |
stringWskazuje, 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 |
booleanWskazuje, czy ta transmisja ma się rozpoczynać automatycznie po rozpoczęciu przesyłania strumieniowego filmu na powiązanym urządzeniu live stream. |
contentDetails.enableAutoStop |
booleanOkreś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 |
objectObiekt 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 |
objectObiekt 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 |
objectObiekt cuepointSchedule określa ustawienia automatyzacji reklam dla transmisji. |
monetizationDetails.cuepointSchedule.enabled |
booleanTa 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 |
datetimeTa 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 |
stringTa wartość określa strategię, której YouTube powinien używać do planowania punktów cue. Prawidłowe wartości to:
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integerTa 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. |