LiveStreams

Zasób liveStream zawiera informacje o strumieniu wideo, który przesyłasz do YouTube. Strumień zawiera treści, które będą udostępniane użytkownikom YouTube. Po utworzeniu zasób liveStream może być powiązany z co najmniej jednym zasobem liveBroadcast.

Metody

Interfejs API obsługuje następujące metody w przypadku zasobów liveStreams:

list
Zwraca listę strumieni wideo, które pasują do parametrów żądania do interfejsu API. Wypróbuj teraz
wstaw
Utworzy strumień wideo. Strumień umożliwia wysłanie filmu do YouTube, który może następnie przekazać go widzom. Wypróbuj teraz
zaktualizuj
Aktualizuje strumień wideo. Jeśli nie możesz zaktualizować właściwości, które chcesz zmienić, musisz utworzyć nowy strumień o odpowiednich ustawieniach. Wypróbuj teraz
usuń
Usuwa strumień wideo. Wypróbuj teraz

Reprezentowanie zasobów

Poniższa struktura JSON pokazuje format zasobu liveStreams:

{
 
"kind": "youtube#liveStream",
 
"etag": etag,
 
"id": string,
 
"snippet": {
   
"publishedAt": datetime,
   
"channelId": string,
   
"title": string,
   
"description": string,
   
"isDefaultStream": boolean
 
},
 
"cdn": {
   
"ingestionType": string,
   
"ingestionInfo": {
     
"streamName": string,
     
"ingestionAddress": string,
     
"backupIngestionAddress": string
   
},
   
"resolution": string,
   
"frameRate": string
 
},
 
"status": {
   
"streamStatus": string,
   
"healthStatus": {
     
"status": string,
     
"lastUpdateTimeSeconds": unsigned long,
     
"configurationIssues": [
       
{
         
"type": string,
         
"severity": string,
         
"reason": string,
         
"description": string
       
}
     
]
   
}
 
},
 
"contentDetails": {
   
"closedCaptionsIngestionUrl": string,
   
"isReusable": boolean
 
}
}

Usługi

Poniższa tabela określa właściwości, które pojawiają się w tym zasobie:

Usługi
kind string
Określa typ zasobu interfejsu API. Wartość będzie wynosić youtube#liveStream.
etag etag
Otagowanie tego zasobu.
id string
Identyfikator, który YouTube przypisuje do jednoznacznej identyfikacji transmisji.
snippet object
Obiekt snippet zawiera podstawowe informacje o strumieniu, w tym jego kanał, tytuł i opis.
snippet.publishedAt datetime
Data i godzina utworzenia strumienia. Wartość ma format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.channelId string
Identyfikator, który jest używany przez YouTube do jednoznacznego identyfikowania kanału transmitującego.
snippet.title string
Tytuł strumienia. Wartość musi mieć od 1 do 128 znaków.
snippet.description string
Opis strumienia. Wartość nie może przekraczać 10 000 znaków.
snippet.isDefaultStream boolean
Ta usługa zostanie wycofana 1 września 2020 r. lub później. Gdy YouTube włączy transmitowanie na żywo, zatrzymamy tworzenie transmisji domyślnej i domyślnej transmisji. Więcej informacji znajdziesz w ogłoszeniu o wycofaniu.
Ta właściwość wskazuje, czy strumień jest domyślnym kanałem.

Jak działają domyślne transmisje

Gdy kanał w YouTube ma włączoną funkcję transmisji na żywo, YouTube tworzy transmisję domyślną i domyślną. Strumień określa, w jaki sposób właściciel kanału wysyła filmy na żywo do YouTube, a widzowie mogą zobaczyć transmisję domyślną. Właściciel kanału może użyć metod liveStreams.list i liveBroadcasts.list do zidentyfikowania tych zasobów.

Domyślny kanał jest ustawiony na czas nieokreślony, nie ma daty rozpoczęcia ani zakończenia i nie można go usunąć. Właściciel kanału musi tylko zacząć przesyłać bity, a transmisja będzie kontynuowana automatycznie.

Gdy transmisja się zakończy, YouTube konwertuje zakończoną transmisję na film w YouTube i przypisuje go do identyfikatora filmu w YouTube. Po zakończeniu konwersji film pojawi się na liście przesłanych filmów. Film jest niedostępny od razu po zakończeniu transmisji, a opóźnienie jest powiązane z rzeczywistą długością transmisji.
cdn object
Obiekt cdn określa ustawienia sieci dystrybucji treści (CDN) transmisji na żywo. Te ustawienia zawierają szczegółowe informacje na temat sposobu przesyłania treści do YouTube.
cdn.format string
Ta usługa jest wycofana 18 kwietnia 2016 r., a od 17 sierpnia 2020 r. nie będzie już obsługiwana. Żądania, które od tego dnia nadal używają tej właściwości, zakończą się niepowodzeniem.

Zamiast tego użyj właściwości cdn.frameRate i cdn.resolution, aby osobno określić liczbę klatek i rozdzielczość.
cdn.ingestionType string
Metoda lub protokół stosowany do przesyłania strumienia wideo.

Prawidłowe wartości tej właściwości to:
  • dash
  • hls
  • rtmp (w tym RTMPS)
cdn.ingestionInfo object
Obiekt ingestionInfo zawiera informacje, które YouTube musi przesłać, aby przesłać strumień do YouTube.
cdn.ingestionInfo.streamName string
Nazwa strumienia, którą YouTube przypisze do strumienia wideo.
cdn.ingestionInfo.ingestionAddress string
Główny adres URL przetwarzania, którego należy używać do strumieniowego przesyłania filmów do YouTube, jeśli używasz formatu RTMP, DASH lub HLS. Film trzeba przesłać strumieniowo pod ten adres URL.

W zależności od aplikacji lub narzędzia, które wykorzystujesz do kodowania transmisji wideo, być może trzeba będzie osobno wpisać adres URL transmisji i jej nazwę lub połączyć je w tym formacie:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
Zapasowy adres URL przetwarzania, którego należy użyć, aby przesyłać filmy do YouTube, jeśli używasz formatu RTMP, DASH lub HLS. Masz możliwość jednoczesnego strumieniowego przesyłania treści do ingestionAddress na ten adres URL.
cdn.ingestionInfo.rtmpsIngestionAddress string
Główny adres URL przetwarzania, którego należy używać do strumieniowego przesyłania filmów do YouTube, jeśli korzystasz z protokołu RTMPS. Film trzeba przesłać strumieniowo na ten adres URL.

W zależności od aplikacji lub narzędzia, które wykorzystujesz do kodowania transmisji wideo, być może trzeba będzie osobno wpisać adres URL i nazwę strumienia albo połączyć je w tym formacie:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
Zapasowy adres URL przetwarzania, którego należy użyć do przesyłania filmu do YouTube, jeśli używasz protokołu RTMPS.
cdn.resolution string
Rozdzielczość przychodzących danych wideo.

Prawidłowe wartości tej właściwości to:
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: wybierz to ustawienie, aby wskazać, że YouTube ma automatycznie wykrywać rozdzielczość strumieniowanego filmu. Musisz też ustawić cdn.frameRate na variable.
    Zalecane ustawienia kodera znajdziesz w Centrum pomocy YouTube.
cdn.frameRate string
Liczba klatek w danych przychodzącego filmu.

Prawidłowe wartości tej właściwości to:
  • 30fps
  • 60fps
  • variable: wybierz to ustawienie, aby wskazać, że YouTube ma automatycznie wykrywać liczbę klatek odtwarzanych filmów. Musisz też ustawić cdn.resolution na variable.
    Zalecane ustawienia kodera znajdziesz w Centrum pomocy YouTube.
status object
Obiekt status zawiera informacje o stanie transmisji na żywo.
status.streamStatus string
Stan strumienia.

Prawidłowe wartości tej właściwości:
  • active – strumień jest aktywny, co oznacza, że użytkownik otrzymuje dane przy jego użyciu.
  • created – strumień został utworzony, ale nie ma prawidłowych ustawień CDN.
  • error – w strumieniu istnieje warunek błędu.
  • inactive – strumień jest nieaktywny, co oznacza, że użytkownik nie otrzymuje danych przy jego użyciu.
  • ready – strumień ma prawidłowe ustawienia CDN.
status.healthStatus object
Ten obiekt zawiera informacje o stanie transmisji na żywo, których można użyć do wykrywania, diagnozowania i rozwiązywania problemów z transmisją.
status.healthStatus.status string
Kod stanu tej transmisji.

Prawidłowe wartości tej właściwości to:
  • good – nie ma problemów z konfiguracją, w których wagę wynosi warning lub mniejsza.
  • ok – nie ma problemów z konfiguracją, w których wagę wynosi error.
  • bad – w strumieniu występują problemy, w przypadku których wagę wynosi error.
  • noData – serwery backendu YouTube do transmitowania na żywo nie mają żadnych informacji o stanie transmisji.
status.healthStatus.lastUpdateTimeSeconds unsigned long
Ostatnia aktualizacja stanu transmisji na żywo Wartość odzwierciedla sygnaturę czasową systemu UNIX (w sekundach).
status.healthStatus.configurationIssues[] list
Ten obiekt zawiera listę problemów z konfiguracją wpływających na strumień.
status.healthStatus.configurationIssues[].type string
Wskazuje typ błędu, który wpływa na strumień.
Problemy z konfiguracją
audioBitrateHigh
Powód:Sprawdź ustawienia audio
Opis:Szybkość transmisji strumienia audio (%(actual)) jest większa niż zalecana. Zalecana szybkość transmisji strumienia audio wynosi %(expected)s.
audioBitrateLow
Powód:Sprawdź ustawienia audio
Opis:Szybkość transmisji strumienia audio (%(actual)s) jest mniejsza od zalecanej. Zalecana szybkość transmisji strumienia audio wynosi %(expected)s.
audioBitrateMismatch
Powód:Sprawdź strumień dodatkowy
Opis:W obecnej konfiguracji podstawowy i zapasowy strumień wideo mają różne szybkości transmisji dźwięku. Musisz skonfigurować strumienie z taką samą szybkością transmisji dźwięku.
audioCodec
Powód:Sprawdź ustawienia audio
Opis:Strumień audio jest zakodowany za pomocą nieobsługiwanego kodeka. Skorzystaj z obsługiwanego kodeka (AAC, MP3).
audioCodecMismatch
Powód:Zły strumień dodatkowy
Opis:W obecnej konfiguracji podstawowy i zapasowy strumień wideo używają różnych kodeków audio. Musisz skonfigurować strumienie tak, aby używały tego samego kodeka audio.
audioSampleRate
Powód:Sprawdź ustawienia audio
Opis:Aktualna częstotliwość próbkowania to %(actual). Zalecane częstotliwości to 44,1 kHz i 48 kHz.
audioSampleRateMismatch
Powód:Zły strumień dodatkowy
Opis:W obecnej konfiguracji podstawowy i zapasowy strumień wideo różnią się częstotliwością próbkowania audio. Musisz skonfigurować strumienie tak, aby miały taką samą częstotliwość próbkowania audio.
audioStereoMismatch
Powód:Zły strumień dodatkowy
Opis:W aktualnej konfiguracji główny i zapasowy strumień używają różnych kanałów audio. Musisz zmienić ich ustawienia tak, aby używały tego samego kanału audio.
audioTooManyChannels
Powód:Sprawdź ustawienia audio
Opis:Jest więcej niż 2 kanały, ale obsługiwany jest tylko jeden (mono) lub 2 (kanał stereo). Skoryguj liczbę kanałów audio.
badContainer
Powód:Złe ustawienia wideo
Opis:Zmień format kontenera filmu. Aktualny format kontenera nie jest prawidłowy dla tej konfiguracji.
bitrateHigh
Powód:Sprawdź ustawienia wideo
Opis:Szybkość transmisji strumienia (%(actual)s) jest większa niż zalecana. Zalecana szybkość transmisji strumienia wynosi %(expected)s.
bitrateLow
Powód:Słaby sygnał wyjściowy wideo
Opis:Szybkość transmisji strumienia (%(actual)s) jest mniejsza od zalecanej. Zalecana szybkość transmisji strumienia wynosi %(expected)s.
framerateMismatch
Powód:Sprawdź strumień dodatkowy
Opis:W obecnej konfiguracji podstawowy i zapasowy strumień wideo mają różne liczby klatek na sekundę. Musisz skonfigurować strumienie tak, aby miały taką samą liczbę klatek na sekundę.
frameRateHigh
Powód:Duża liczba klatek na sekundę
Opis:Bieżąca liczba klatek jest za duża. Ustaw szybkość klatek na %(framerate)s lub mniej.
gopMismatch
Powód:Zły strumień dodatkowy
Opis:W obecnej konfiguracji podstawowy i zapasowy strumień wideo różnią się częstotliwością klatek kluczowych. Musisz skonfigurować strumienie z taką samą częstotliwością klatek kluczowych.
gopSizeLong
Powód:Złe ustawienia wideo
Opis:Ustaw wysyłanie klatek kluczowych nie rzadziej niż co cztery sekundy. W tej chwili są one wysyłane za rzadko, co będzie powodować buforowanie. Aktualna częstotliwość klatek kluczowych to %(actual_gop).1f s. Pamiętaj, że błędy przetwarzania mogą powodować nieprawidłowe rozmiary GOP (grupy obrazów).
gopSizeOver
Powód:Sprawdź ustawienia wideo
Opis:Ustaw wysyłanie klatek kluczowych nie rzadziej niż co cztery sekundy. W tej chwili są one wysyłane za rzadko, co może powodować buforowanie. Aktualna częstotliwość klatek kluczowych to %(actual_gop).1f s. Pamiętaj, że błędy przetwarzania mogą powodować nieprawidłowe rozmiary GOP (grupy obrazów).
gopSizeShort
Powód:Sprawdź ustawienia wideo
Opis:Rozmiar GOP (grupy obrazów) jest bardzo mały, a to może źle wpływać na jakość obrazu. Zalecana częstotliwość wysyłania klatek kluczowych to 4 sekundy. Aktualna częstotliwość klatek kluczowych to %(actual_gop).1f s. Pamiętaj, że błędy przetwarzania mogą powodować nieprawidłowe rozmiary GOP (grupy obrazów).
multipleAudioStreams
Powód:Sprawdź ustawienia audio
Opis:Strumień przetwarzania zawiera wiele strumieni audio, a musi zawierać tylko jeden.
multipleVideoStreams
Powód:Złe ustawienia wideo
Opis:Strumień przetwarzania zawiera wiele strumieni wideo, a musi zawierać tylko jeden.
noAudioStream
Powód:Brak dźwięku
Opis:Strumień przetwarzania nie zawiera żadnych strumieni audio, a musi zawierać dokładnie jeden.
noVideoStream
Powód:Brak obrazu
Opis:Strumień przetwarzania nie zawiera żadnych strumieni wideo, a musi zawierać dokładnie jeden.
openGop
Powód:Złe ustawienia wideo
Opis:Zmień konfigurację kodera wideo na „Grupę zamkniętych zdjęć” (GOP). Wygląda na to, że opcja „Open GOP” jest otwarta, co nie jest obsługiwane w YouTube.
resolutionMismatch
Powód:Zły strumień dodatkowy
Opis:W obecnej konfiguracji podstawowy i zapasowy strumień wideo mają różne rozdzielczości. Trzeba skonfigurować strumienie tak, aby miały taką samą rozdzielczość.
videoBitrateMismatch
Powód:Sprawdź strumień dodatkowy
Opis:W obecnej konfiguracji podstawowy i zapasowy strumień wideo różnią się szybkością transmisji. Musisz skonfigurować strumienie tak, aby miały taką samą szybkość transmisji wideo.
videoCodec
Powód:Złe ustawienia wideo
Opis:Wideo jest zakodowane za pomocą nieobsługiwanego kodeka. Skorzystaj z obsługiwanego kodeka (H.264).
videoCodecMismatch
Powód:Zły strumień dodatkowy
Opis:W obecnej konfiguracji podstawowy i zapasowy strumień wideo używają różnych kodeków. Musisz skonfigurować strumienie tak, aby używały tych samych kodeków wideo.
videoIngestionStarved
Powód:Słaby sygnał wyjściowy wideo
Opis:YouTube nie otrzymuje wystarczającej ilości filmów, aby utrzymać płynne strumieniowanie. Oznacza to, że u widzów wystąpi buforowanie.
videoInterlaceMismatch
Powód:Zły strumień dodatkowy
Opis:W obecnej konfiguracji podstawowy i zapasowy strumień wideo mają różne przeploty. Musisz skonfigurować strumienie tak, aby miały jednakowy przeplot.
videoProfileMismatch
Powód:Zły strumień dodatkowy
Opis:W obecnej konfiguracji podstawowy i zapasowy strumień wideo mają różne profile. Musisz skonfigurować strumienie tak, aby miały taki sam profil.
videoResolutionSuboptimal
Powód:Sprawdź rozdzielczość
Opis:Sprawdź rozdzielczość obrazu. Obecna rozdzielczość to (%(actual_w)dx%(actual_h)d), co nie jest optymalne.
videoResolutionUnsupported
Powód:Nieobsługiwana rozdzielczość
Opis:Trzeba zmienić rozdzielczość obrazu. Obecna rozdzielczość to (%(actual_w)dx%(actual_h)d), która nie jest obsługiwana w tej konfiguracji. Oczekiwana rozdzielczość filmu to (%(expected_w)dx%(expected_h)d).
status.healthStatus.configurationIssues[].severity string
Wskazuje wagę problemu w strumieniu.

Prawidłowe wartości tej właściwości to:
  • info – film jest nadawany widzom bez negatywnego wpływu na wyniki.
  • warning – film jest przesyłany do widzów, ale jego skuteczność nie jest optymalna.
  • error – film nie może być przesyłany do widzów.
status.healthStatus.configurationIssues[].reason string
Krótki opis problemu. Dokument Problemy z konfiguracją zasobów LiveStream podaje przyczynę każdego z nich.
status.healthStatus.configurationIssues[].description string
Szczegółowy opis problemu. Opis, jeśli jest to możliwe, zawiera informacje o tym, jak rozwiązać problem. Dokument Problemy z konfiguracją zasobów LiveStream zawiera listę wszystkich typów problemów z konfiguracją i powiązanych opisów.
contentDetails object
Obiekt content_details zawiera informacje o strumieniu, w tym adres URL przetwarzania napisów.
contentDetails.closedCaptionsIngestionUrl string
Adres URL przetwarzania, do którego są wysyłane napisy w tym strumieniu.
contentDetails.isReusable boolean
Wskazuje, czy transmisji można używać wielokrotnie, co oznacza, że można ją łączyć z wieloma transmisjami. Nadawcy korzystający z tej samej transmisji często wykorzystują różne transmisje, jeśli ich czas różni się.

Jeśli ustawisz tę wartość na wartość false, transmisji nie będzie można ponownie używać, co oznacza, że można ją powiązać tylko z jedną transmisją. Strumienie wielokrotnego użytku różnią się od strumieni wielokrotnego użytku w następujący sposób:
  • Strumień wielokrotnego użytku może być powiązany tylko z jedną transmisją.
  • Strumień wielokrotnego użytku może zostać usunięty przez automatyczny proces po zakończeniu transmisji.
  • Metoda liveStreams.list nie wyświetla listy strumieni wielokrotnego użytku, jeśli wywołasz ją i ustawisz parametr mine na true. Jedynym sposobem użycia tej metody do pobrania zasobu dla strumienia wielokrotnego użytku jest jego zidentyfikowanie za pomocą parametru id.