LiveStreams

Um recurso liveStream contém informações sobre o stream de vídeo que você está transmitindo para o YouTube. O stream fornece o conteúdo que será transmitido aos usuários do YouTube. Depois de criado, um recurso liveStream pode ser vinculado a um ou mais recursos liveBroadcast.

Métodos

A API oferece suporte aos seguintes métodos para recursos liveStreams:

list
Retorna uma lista de streams de vídeo que correspondem aos parâmetros de solicitação da API. Faça um teste agora.
inserir
Cria um stream de vídeo. Com a transmissão, você pode enviar seu vídeo para o YouTube, que pode transmitir o conteúdo para seu público. Faça um teste agora.
update
Atualiza um stream de vídeo. Se as propriedades que você quer mudar não puderem ser atualizadas, crie uma nova transmissão com as configurações adequadas. Faça um teste agora.
delete
Exclui uma transmissão de vídeo. Faça um teste agora.

Representação de recurso

A estrutura JSON a seguir mostra o formato de um recurso 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
  }
}

Propriedades

A tabela a seguir define as propriedades que aparecem neste recurso:

Propriedades
kind string
Identifica o tipo do recurso da API. O valor será youtube#liveStream.
etag etag
A Etag deste recurso.
id string
O ID que o YouTube atribui para identificar exclusivamente o fluxo.
snippet object
O objeto snippet contém detalhes básicos sobre a transmissão, incluindo o canal, o título e a descrição.
snippet.publishedAt datetime
A data e a hora em que o stream foi criado. O valor é especificado no formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.channelId string
O ID que o YouTube usa para identificar de forma exclusiva o canal que está transmitindo o fluxo.
snippet.title string
O título da transmissão. O valor precisa ter entre 1 e 128 caracteres.
snippet.description string
A descrição do stream. O valor não pode ter mais de 10.000 caracteres.
snippet.isDefaultStream boolean
O uso dessa propriedade será suspenso em 1º de setembro de 2020 ou em uma data posterior. Nesse momento, o YouTube vai parar de criar uma transmissão e uma transmissão por padrão quando um canal for ativado para transmissões ao vivo. Consulte o aviso de descontinuação para mais detalhes.
Essa propriedade indica se esse stream é o padrão do canal.

Como funcionam as transmissões padrão

Quando um canal do YouTube é ativado para transmissões ao vivo, o YouTube cria uma transmissão padrão e uma transmissão padrão para o canal. O stream define como o proprietário do canal envia vídeos ao vivo para o YouTube, e a transmissão é como os espectadores podem assistir o stream padrão. O proprietário de um canal pode usar os métodos liveStreams.list e liveBroadcasts.list para identificar esses recursos.

O stream padrão de um canal existe indefinidamente, não tem um horário de início ou término associado e não pode ser excluído. O proprietário do canal só precisa começar a enviar bits de vídeo, e a transmissão continua automaticamente.

Quando uma transmissão termina, o YouTube converte a transmissão concluída em um vídeo e atribui a ele um ID. Depois que a conversão é concluída, o vídeo é incluído na lista de vídeos enviados do canal. O vídeo não fica disponível imediatamente após a transmissão ser concluída, e o tempo de espera está relacionado à duração real da transmissão.
cdn object
O objeto cdn define as configurações da rede de fornecimento de conteúdo (CDN) da transmissão ao vivo. Essas configurações fornecem detalhes sobre a forma como você transmite seu conteúdo para o YouTube.
cdn.format string
Essa propriedade foi descontinuada em 18 de abril de 2016 e não será mais compatível a partir de 17 de agosto de 2020. As solicitações que ainda usam essa propriedade até essa data vão falhar.

Em vez disso, use as propriedades cdn.frameRate e cdn.resolution para especificar a taxa de frames e a resolução separadamente.
cdn.ingestionType string
O método ou protocolo usado para transmitir o stream de vídeo.

Os valores válidos para essa propriedade são:
  • dash
  • hls
  • rtmp (que inclui RTMPS)
cdn.ingestionInfo object
O objeto ingestionInfo contém informações fornecidas pelo YouTube que você precisa para transmitir seu stream.
cdn.ingestionInfo.streamName string
O nome da transmissão que o YouTube atribui ao stream de vídeo.
cdn.ingestionInfo.ingestionAddress string
O URL de transferência principal que você precisa usar para transmitir vídeos para o YouTube se usar RTMP, DASH ou HLS. É necessário transmitir o vídeo para esse URL.

Dependendo do aplicativo ou ferramenta que você usa para codificar o stream de vídeo, talvez seja necessário inserir o URL e o nome do stream separadamente ou concatenar os dois no seguinte formato:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
O URL de transferência de backup que você precisa usar para transmitir vídeos no YouTube se usar RTMP, DASH ou HLS. Você tem a opção de transmitir simultaneamente o conteúdo que está enviando para ingestionAddress para este URL.
cdn.ingestionInfo.rtmpsIngestionAddress string
O URL de transferência principal que você precisa usar para transmitir vídeos para o YouTube se usar RTMPS. Você precisa transmitir o vídeo para esse URL.

Dependendo do aplicativo ou da ferramenta que você usa para codificar o stream de vídeo, talvez seja necessário inserir o URL e o nome do stream separadamente ou concatenar no formato a seguir:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
O URL de transferência de backup que você precisa usar para transmitir vídeos para o YouTube se usar o RTMPS.
cdn.resolution string
A resolução dos dados de vídeo recebidos.

Os valores válidos para essa propriedade são:
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: use essa configuração para indicar que o YouTube deve detectar automaticamente a resolução do vídeo transmitido. Defina também cdn.frameRate como variable.
    Confira as configurações recomendadas do codificador na Central de Ajuda do YouTube.
cdn.frameRate string
A taxa de quadros dos dados de vídeo recebidos.

Os valores válidos para essa propriedade são:
  • 30fps
  • 60fps
  • variable: use essa configuração para indicar que o YouTube deve detectar automaticamente a taxa de frames do vídeo transmitido. Defina cdn.resolution como variable.
    Confira as configurações recomendadas do codificador na Central de Ajuda do YouTube.
status object
O objeto status contém informações sobre o status da transmissão ao vivo.
status.streamStatus string
O status do stream é

.Os valores válidos para essa propriedade são:
  • active: o fluxo está no estado ativo, o que significa que o usuário está recebendo dados por ele.
  • created: o fluxo foi criado, mas não tem configurações válidas de CDN.
  • error: há uma condição de erro no stream.
  • inactive: o stream está inativo, ou seja, o usuário não está recebendo dados por ele.
  • ready: a transmissão tem configurações válidas da CDN.
status.healthStatus object
Esse objeto contém informações sobre o status de integridade da transmissão ao vivo, que pode ser usado para identificar, diagnosticar e resolver problemas de streaming.
status.healthStatus.status string
O código de status desse stream.

Os valores válidos para essa propriedade são:
  • good: não há problemas de configuração com gravidade warning ou pior.
  • ok: não há problemas de configuração com gravidade error.
  • bad: a transmissão tem alguns problemas com gravidade error.
  • noData: os servidores de back-end de transmissões ao vivo do YouTube não têm informações sobre o status de integridade da transmissão.
status.healthStatus.lastUpdateTimeSeconds unsigned long
A última vez que o status de integridade do stream foi atualizado. O valor reflete um carimbo de data/hora UNIX em segundos.
status.healthStatus.configurationIssues[] list
Esse objeto contém uma lista de problemas de configuração que afetam o stream.
status.healthStatus.configurationIssues[].type string
Identifica o tipo de erro que afeta o stream.
status.healthStatus.configurationIssues[].severity string
Indica a gravidade do problema para o stream.

Os valores válidos para essa propriedade são:
  • info: o vídeo é transmitido aos espectadores sem afetar a performance.
  • warning: o vídeo é transmitido para os espectadores, mas a performance não é ideal.
  • error: o vídeo não pode ser transmitido aos espectadores.
status.healthStatus.configurationIssues[].reason string
Uma breve descrição do problema. O documento Problemas de configuração dos recursos do recurso de transmissão ao vivo identifica o motivo associado a cada tipo de problema de configuração.
status.healthStatus.configurationIssues[].description string
Uma descrição detalhada do problema. Quando possível, a descrição fornece informações sobre como resolver o problema. O documento Problemas de configuração para recursos do LiveStream lista todos os tipos de problemas de configuração e as descrições associadas.
contentDetails object
O objeto content_details contém informações sobre o stream, incluindo o URL de transferência de legendas.
contentDetails.closedCaptionsIngestionUrl string
O URL de transferência para onde as legendas desse stream são enviadas.
contentDetails.isReusable boolean
Indica se o stream é reutilizável, ou seja, se ele pode ser vinculado a várias transmissões. É comum que os transmissores reutilizem o mesmo stream para várias transmissões diferentes se elas ocorrerem em horários diferentes.

Se você definir esse valor como false, o stream não será reutilizável, o que significa que ele só pode ser vinculado a uma transmissão. As streams não reutilizáveis diferem das reutilizáveis das seguintes maneiras:
  • Um stream não reutilizável só pode ser vinculado a uma transmissão.
  • Uma transmissão não reutilizável pode ser excluída por um processo automatizado após o término da transmissão.
  • O método liveStreams.list não lista streams não reutilizáveis se você chamar o método e definir o parâmetro mine como true. A única maneira de usar esse método para recuperar o recurso de um stream não reutilizável é usar o parâmetro id para identificar o stream.