Agora a API permite marcar suas transmissões ao vivo como "Conteúdo para crianças", e o recurso
liveBroadcast contém uma propriedade que identifica o status "Conteúdo para crianças" dessa transmissão ao vivo. Os Termos de Serviço e as Políticas para desenvolvedores dos serviços de API do YouTube também foram atualizados em 10 de janeiro de 2020. Para mais informações, consulte os históricos de revisões do Serviço da API YouTube Live Streaming e dos Termos de Serviço das APIs do YouTube.
Um recurso liveBroadcast representa um evento que será transmitido por vídeo ao vivo no YouTube.
Métodos
A API é compatível com os seguintes métodos para recursos liveBroadcasts:
- list
- Retorna uma lista de transmissões do YouTube que correspondem aos parâmetros da solicitação de API. Faça um teste agora.
- inserir
- Cria uma transmissão. Faça um teste agora.
- update
- Atualiza uma transmissão. Por exemplo, você pode modificar as configurações de transmissão definidas no objeto
contentDetailsdo recursoliveBroadcast. Teste agora. - delete
- Exclui uma transmissão. Faça um teste agora.
- bind
- Vincula uma transmissão do YouTube a um stream ou remove uma vinculação entre uma transmissão e um stream. Uma transmissão só pode ser vinculada a um stream de vídeo, mas um stream de vídeo pode ser vinculado a mais de uma transmissão. Faça um teste agora.
- transition
- Muda o status de uma transmissão ao vivo do YouTube e inicia os processos associados ao novo status. Por exemplo, quando você muda o status de uma transmissão para
testing, o YouTube começa a transmitir vídeo para o stream de monitor da transmissão. Antes de chamar esse método, confirme se o valor da propriedadestatus.streamStatuspara o stream vinculado à sua transmissão éactive. Teste agora. - cuepoint
- Insere um ponto de sinalização em uma transmissão ao vivo. O ponto de sinalização pode acionar um intervalo de anúncio.
Representação de recurso
A estrutura JSON a seguir mostra o formato de um recurso 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,
"availabilityConfig": {
"globalConfig": {
"excludedRegionCodes": [
string
],
"interval": {
"startTime": datetime,
"endTime": datetime
}
},
"regionsConfig": {
"regionIntervals": [
{
"regionCode": string,
"interval": {
"startTime": datetime,
"endTime": datetime
}
}
]
}
}
},
"statistics": {
"totalChatCount": unsigned long
},
"monetizationDetails": {
"adsMonetizationStatus": string,
"eligibleForAdsMonetization": boolean,
"cuepointSchedule": {
"enabled": boolean,
"pauseAdsUntil": datetime,
"ytOptimizedCuepointConfig": string,
"creatorCuepointConfig": {
"scheduleStrategy": string,
"repeatIntervalSecs": unsigned integer
}
}
}
}Propriedades
A tabela a seguir define as propriedades que aparecem neste recurso:
| Propriedades | |
|---|---|
kind |
stringIdentifica o tipo do recurso da API. O valor será youtube#liveBroadcast. |
etag |
etagA ETag deste recurso. |
id |
stringO ID que o YouTube atribui para identificar exclusivamente a transmissão. |
snippet |
objectO objeto snippet contém detalhes básicos sobre o evento, incluindo título, descrição, hora de início e hora de término. |
snippet.publishedAt |
datetimeA data e a hora em que a transmissão foi adicionada à programação de transmissões ao vivo do YouTube. O valor é especificado no formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
snippet.channelId |
stringO ID que o YouTube usa para identificar de forma exclusiva o canal que está publicando a transmissão. |
snippet.title |
stringO título da transmissão. A transmissão representa exatamente um vídeo do YouTube. Você pode definir esse campo modificando o recurso de transmissão ou definindo o campo title do recurso de vídeo correspondente. |
snippet.description |
stringA descrição da transmissão. Assim como no title, é possível definir esse campo modificando o recurso de transmissão ou definindo o campo description do recurso de vídeo correspondente. |
snippet.thumbnails |
objectUm mapa de imagens em miniatura associadas à transmissão. Para cada objeto aninhado neste objeto, a chave é o nome da imagem em miniatura, e o valor é um objeto que contém outras informações sobre a miniatura. |
snippet.thumbnails.(key) |
objectOs valores de chave válidos são:
|
snippet.thumbnails.(key).url |
stringO URL da imagem. |
snippet.thumbnails.(key).width |
unsigned integerA largura da imagem. |
snippet.thumbnails.(key).height |
unsigned integerA altura da imagem. |
snippet.scheduledStartTime |
datetimeA data e a hora em que a transmissão ao vivo está programada para começar. O valor é especificado no formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). O Creator Studio permite criar uma transmissão sem programar um horário de início. Nesse caso, a transmissão começa sempre que o proprietário do canal inicia o streaming. Para essas transmissões, o valor datetime corresponde ao tempo zero da época Unix, e esse valor não pode ser alterado usando a API ou no Creator Studio. |
snippet.scheduledEndTime |
datetimeA data e a hora em que a transmissão está programada para terminar. O valor é especificado no formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). Se um recurso liveBroadcast não especificar um valor para essa propriedade, a transmissão será programada para continuar indefinidamente. Da mesma forma, se você não especificar um valor para essa propriedade, o YouTube vai tratar a transmissão como se ela fosse continuar indefinidamente. |
snippet.actualStartTime |
datetimeA data e a hora em que a transmissão começou. Essas informações só ficam disponíveis quando o estado da transmissão é live. O valor é especificado no formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). |
snippet.actualEndTime |
datetimeA data e a hora em que a transmissão terminou. Essas informações só ficam disponíveis quando o estado da transmissão é complete. O valor é especificado no formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). |
snippet.isDefaultBroadcast |
boolean
Essa propriedade será descontinuada em 1º de setembro de 2020 ou depois. Nesse momento, o YouTube vai
parar de criar uma transmissão e um programa padrão quando um canal for ativado para
transmissões ao vivo. Consulte o comunicado de descontinuação para mais detalhes.
Essa propriedade indica se a transmissão é a padrão.Como funcionam as transmissões padrão Quando um canal do YouTube é ativado para transmissões ao vivo, o YouTube cria uma transmissão e uma transmissão padrão para o canal. A transmissão 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. Um proprietário de canal pode usar os métodos liveStreams.list e liveBroadcasts.list para identificar esses recursos.Quando um canal começa a transmitir vídeo para o stream padrão, o vídeo fica visível na transmissão padrão do canal. Quando a transmissão termina, o YouTube converte a transmissão concluída em um vídeo do YouTube e atribui ao vídeo um ID do vídeo do YouTube. 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 o fim da transmissão, e o tempo de atraso está relacionado à duração real dela. |
snippet.liveChatId |
stringO ID do chat ao vivo do YouTube da transmissão. Com esse ID, você pode usar os métodos do recurso liveChatMessage para recuperar, inserir ou excluir mensagens de chat. Você também pode adicionar ou remover moderadores de chat, impedir que usuários participem de chats ao vivo ou remover proibições. |
status |
objectO objeto status contém informações sobre o status do evento. |
status.lifeCycleStatus |
stringO status da transmissão. O status pode ser atualizado usando o método liveBroadcasts.transition da API.Os valores válidos para essa propriedade são:
|
status.privacyStatus |
stringO status de privacidade da transmissão. A transmissão representa exatamente um vídeo do YouTube. Portanto, as configurações de privacidade são idênticas às compatíveis com vídeos. Além disso, é possível definir esse campo modificando o recurso de transmissão ou definindo o campo privacyStatus do recurso de vídeo correspondente.Os valores válidos para essa propriedade são:
|
status.recordingStatus |
stringO status do registro da transmissão. Os valores válidos para essa propriedade são:
|
status.madeForKids |
booleanEsse valor indica se a transmissão ao vivo é designada como conteúdo para crianças. Esse valor de propriedade é somente leitura. |
status.selfDeclaredMadeForKids |
booleanEm uma solicitação liveBroadcasts.insert, essa propriedade permite que o proprietário do canal designe a transmissão como sendo
para crianças. Em uma solicitação
liveBroadcasts.list, o valor da propriedade só é retornado se o proprietário do canal autorizar a solicitação
da API. |
contentDetails |
objectO objeto contentDetails contém informações sobre o conteúdo de vídeo do evento, como se ele pode ser mostrado em um player de vídeo incorporado ou se será arquivado e, portanto, disponível para visualização após a conclusão do evento. |
contentDetails.boundStreamId |
stringEsse valor identifica exclusivamente o live stream vinculado à transmissão. |
contentDetails.boundStreamLastUpdateTimeMs |
datetimeA data e a hora em que a transmissão ao vivo referenciada por boundStreamId foi atualizada pela última vez. |
contentDetails.monitorStream |
objectO objeto monitorStream contém informações sobre o stream de monitoramento, que o broadcaster pode usar para revisar o conteúdo do evento antes que o stream de transmissão seja mostrado publicamente. |
contentDetails.monitorStream.enableMonitorStream |
booleanEsse valor determina se o stream de monitoramento está ativado para a transmissão. Se a transmissão de monitoramento estiver ativada, o YouTube vai transmitir o conteúdo do evento em uma transmissão especial destinada apenas ao consumo do broadcaster. O emissor pode usar a transmissão para analisar o conteúdo do evento e identificar os momentos ideais para inserir pontos de sinalização. Defina esse valor como true se você quiser ter uma etapa de testing na transmissão ou um atraso no evento. Além disso, se o valor dessa propriedade for true, você precisará fazer a transição da transmissão para o estado testing antes de poder fazer a transição para o estado live. Se o valor da propriedade for false, a transmissão não poderá ter um estágio testing. Portanto, você pode fazer a transição diretamente para o estado live.Ao update a broadcast, essa propriedade precisa ser definida se a solicitação de API incluir a parte contentDetails no valor do parâmetro part. No entanto, quando você insert a broadcast, a propriedade é opcional e tem um valor padrão de true.Importante:não é possível atualizar essa propriedade quando a transmissão está no estado testing ou live. |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integerSe você definiu a propriedade enableMonitorStream como true, essa propriedade determina a duração do delay na transmissão ao vivo.Ao update a broadcast, essa propriedade precisa ser definida se a solicitação de API incluir a parte contentDetails no valor do parâmetro part. No entanto, quando você insert a broadcast, a propriedade é opcional e tem um valor padrão de 0. Esse valor indica que a transmissão não tem um delay na transmissão. Observação:não é possível atualizar essa propriedade quando a transmissão está no estado testing ou live. |
contentDetails.monitorStream.embedHtml |
stringCódigo HTML que incorpora um player para reproduzir o stream do monitor. |
contentDetails.enableEmbed |
booleanEssa configuração indica se o vídeo da transmissão pode ser reproduzido em um player incorporado. Se você optar por arquivar o vídeo (usando a propriedade enableArchive), essa configuração também será aplicada ao vídeo arquivado.Ao update a broadcast, essa propriedade precisa ser definida se a solicitação de API incluir a parte contentDetails no valor do parâmetro part. No entanto, quando você insert a broadcast, a propriedade é opcional e tem um valor padrão de true.Observação:não é possível atualizar essa propriedade depois que a transmissão ao vivo estiver no estado testing ou live. |
contentDetails.enableDvr |
booleanEssa configuração determina se os espectadores podem acessar os controles de DVR enquanto assistem o vídeo. Com os controles de DVR, o espectador pode pausar, retroceder ou avançar o conteúdo, controlando a experiência de reprodução do vídeo. O valor padrão dessa propriedade é true. Ao update a broadcast, essa propriedade precisa ser definida se a solicitação de API incluir a parte contentDetails no valor do parâmetro part. No entanto, quando você insert a broadcast, a propriedade é opcional e tem um valor padrão de true.Importante:defina o valor como true e também o valor da propriedade enableArchive como true se quiser disponibilizar a reprodução imediatamente após o fim da transmissão. Além disso, essa propriedade não pode ser atualizada quando a transmissão está no estado testing ou live. |
contentDetails.recordFromStart |
booleanEssa configuração indica se o YouTube vai começar a gravar automaticamente a transmissão depois que o status do evento mudar para "Ao vivo". O valor padrão dessa propriedade é true, e ela só pode ser definida como false se o canal de transmissão tiver permissão para desativar as gravações de transmissões ao vivo.Se o canal não tiver permissão para desativar as gravações e você tentar inserir uma transmissão com a propriedade recordFromStart definida como false, a API vai retornar um erro Forbidden. Além disso, se o canal não tiver essa permissão e você tentar atualizar uma transmissão para definir a propriedade recordFromStart como false, a API vai retornar um erro modificationNotAllowed.Ao update a broadcast, essa propriedade precisa ser definida se a solicitação de API incluir a parte contentDetails no valor do parâmetro part. No entanto, quando você insert a broadcast, a propriedade é opcional e tem um valor padrão de true.Importante:você também precisa definir o valor da propriedade enableDvr como true se quiser que a reprodução fique disponível imediatamente após o fim da transmissão. Se você definir o valor dessa propriedade como true, mas não definir a propriedade enableDvr como true, poderá haver um atraso de cerca de um dia antes que o vídeo arquivado esteja disponível para reprodução.Observação:não é possível atualizar essa propriedade depois que a transmissão ao vivo estiver no estado testing ou live. |
contentDetails.enableClosedCaptions |
booleanEssa propriedade foi descontinuada em 17 de dezembro de 2015. Use a propriedade contentDetails.closedCaptionsType.Essa configuração indica se a legenda descritiva HTTP POST está ativada para essa transmissão. Para clientes de API que já usam essa propriedade:
|
contentDetails.closedCaptionsType |
stringObservação: essa propriedade substitui a propriedade contentDetails.enableClosedCaptions.Ela indica se a legenda descritiva está ativada na sua transmissão e, se sim, qual tipo de legenda descritiva você está fornecendo:
|
contentDetails.projection |
stringO formato de projeção desta transmissão. O valor padrão da propriedade é rectangular.Os valores válidos para essa propriedade são:
|
contentDetails.enableLowLatency |
booleanIndica se a transmissão precisa ser codificada para streaming de baixa latência. Um stream de baixa latência pode reduzir o tempo necessário para que o vídeo fique visível aos usuários que assistem uma transmissão, mas também pode afetar a resolução para os espectadores. |
contentDetails.latencyPreference |
stringIndica qual configuração de latência usar para esta transmissão. Essa propriedade pode ser usada em vez de enableLowLatency, que não é compatível com ultraLow.Uma transmissão de baixa latência pode reduzir o tempo necessário para que o vídeo fique visível aos usuários que assistem a uma transmissão, mas também pode afetar a fluidez da reprodução. Uma transmissão de latência ultrabaixa reduz ainda mais o tempo necessário para que o vídeo fique visível aos espectadores, facilitando a interação com eles. No entanto, a latência ultrabaixa não é compatível com legendas descritivas nem com resoluções superiores a 1080p. Os valores válidos para essa propriedade são:
|
contentDetails.enableAutoStart |
booleanIndica se a transmissão deve começar automaticamente quando você iniciar o streaming de vídeo no live stream vinculado. |
contentDetails.enableAutoStop |
booleanIndica se a transmissão ao vivo deve ser interrompida automaticamente cerca de um minuto depois que o proprietário do canal parar de transmitir vídeo no fluxo de vídeo vinculado. |
contentDetails.availabilityConfig |
objectA configuração de disponibilidade da transmissão. Usado para definir a disponibilidade de regiões específicas ou bloquear regiões específicas. É opcional e, se não for definido, não será aplicado. |
contentDetails.availabilityConfig.globalConfig |
objectA configuração de disponibilidade global da transmissão. O vídeo está disponível em todas as regiões, exceto as especificadas na lista excludedRegionCodes. |
contentDetails.availabilityConfig.globalConfig.excludedRegionCodes |
list (string)Uma lista de regiões em que o vídeo está bloqueado. |
contentDetails.availabilityConfig.globalConfig.interval |
objectO período padrão em que o vídeo está disponível para todas as regiões não bloqueadas. Observação:essa propriedade não está disponível para transmissões ao vivo futuras ou ativas. |
contentDetails.availabilityConfig.globalConfig.interval.startTime |
datetimeA data e a hora em que o vídeo vai ficar disponível. Se não for especificado, o vídeo já estará disponível. O valor é especificado no formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
contentDetails.availabilityConfig.globalConfig.interval.endTime |
datetimeA data e a hora em que o vídeo deixa de estar disponível. Se não for especificado, o vídeo vai ficar disponível para sempre. Os horários de início e término especificados não podem ser mais de cinco anos no futuro. O valor é especificado no formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
contentDetails.availabilityConfig.regionsConfig |
objectA configuração de disponibilidade regional da transmissão. O vídeo está disponível apenas nas regiões especificadas. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals |
list (object)Uma lista de regiões e períodos em que o vídeo está disponível. Se uma região for especificada várias vezes, a união de todos os intervalos será usada. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.regionCode |
stringA região em que o vídeo está disponível. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval |
objectO período em que o vídeo está disponível para a região especificada. Observação:essa propriedade não está disponível para transmissões ao vivo futuras ou ativas. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval.startTime |
datetimeA data e a hora em que o vídeo fica disponível na região especificada. Se não for especificado, o vídeo já estará disponível. O valor é especificado no formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval.endTime |
datetimeA data e a hora em que o vídeo deixa de estar disponível na região especificada. Se não for especificado, o vídeo vai ficar disponível para sempre. Os horários de início e término especificados não podem ser mais de cinco anos no futuro. O valor é especificado no formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
statistics |
objectO objeto statistics contém estatísticas relacionadas a uma transmissão ao vivo. Os valores dessas estatísticas podem mudar durante a transmissão e só podem ser recuperados enquanto ela estiver ao vivo. |
statistics.totalChatCount |
unsigned longO número total de mensagens do chat ao vivo associadas à transmissão. A propriedade e o valor estarão presentes se a transmissão estiver visível para o usuário, tiver o recurso de chat ao vivo ativado e tiver pelo menos uma mensagem. Essa propriedade não vai especificar um valor após o término da transmissão. Portanto, essa propriedade não identifica o número de mensagens de chat de um vídeo arquivado de uma transmissão ao vivo concluída. |
monetizationDetails |
objectO objeto monetizationDetails contém informações sobre os detalhes de monetização da
transmissão, como se o automatizador de anúncios está ativado ou se a inserção de anúncios intermediários está
atrasada. |
monetizationDetails.adsMonetizationStatus |
stringEssa propriedade indica se uma transmissão de vídeo tem anúncios intermediários ativados. Os valores válidos são on e off. |
monetizationDetails.eligibleForAdsMonetization |
stringEssa propriedade indica se uma transmissão de vídeo está qualificada para anúncios intermediários. Uma transmissão pode não se qualificar por vários motivos, como uma reivindicação em andamento ou um canal que não está configurado para monetização. |
monetizationDetails.cuepointSchedule |
objectO objeto cuepointSchedule especifica as configurações de automação de anúncios para a
transmissão. |
monetizationDetails.cuepointSchedule.enabled |
booleanEsse valor determina se os anúncios são inseridos automaticamente na transmissão. Se o valor for true, o YouTube vai inserir anúncios intermediários na transmissão automaticamente. A programação para veiculação de anúncios será determinada pelo valor dos outros campos no objeto monetizationDetails.cuepointSchedule.
|
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetimeEsse valor especifica que o YouTube não deve inserir anúncios intermediários na transmissão até a data e hora especificadas. O valor é especificado no formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). O valor precisa ser definido como um carimbo de data/hora futuro para pausar os anúncios. O valor do campo também pode ser definido como um carimbo de data/hora no passado ou um valor vazio para retomar os anúncios. |
monetizationDetails.cuepointSchedule.ytOptimizedCuepointConfig |
stringEsse campo especifica a opção selecionada para os pontos de inserção de anúncio inseridos automaticamente. O campo pode especificar um destes três modos:
|
monetizationDetails.cuepointSchedule.creatorCuepointConfig |
objectO objeto creatorCuepointConfig especifica a opção de automação de anúncios, que permite ao criador de conteúdo escolher como os anúncios intermediários aparecem. |
monetizationDetails.cuepointSchedule.creatorCuepointConfig.scheduleStrategy |
stringEsse valor especifica a estratégia que o YouTube deve seguir para programar cuepoints. Os valores válidos são:
|
monetizationDetails.cuepointSchedule.creatorCuepointConfig.repeatIntervalSecs |
unsigned integerEsse valor especifica o intervalo, em segundos, entre as inserções automáticas de anúncios durante uma transmissão. Por exemplo, se o valor for 360, o YouTube poderá inserir pontos de inserção de anúncios intermediários a cada seis minutos.Observação:
|