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ń.
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.