A API agora oferece suporte à capacidade de marcar suas transmissões
ao vivo como "conteúdo para crianças", e o recurso
liveBroadcast
agora 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 de desenvolvedor dos serviços da API
YouTube também foram atualizados em 10 de janeiro de 2020. Para mais informações, consulte os históricos de revisão do serviço da API YouTube Live Streaming e dos Termos de Serviço dos serviços da API YouTube.
O recurso liveBroadcast
representa um evento que será transmitido por vídeo ao vivo no YouTube.
Métodos
A API oferece suporte aos seguintes métodos para recursos liveBroadcasts
:
- list
- Retorna uma lista de transmissões do YouTube que correspondem aos parâmetros de solicitação da 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
contentDetails
do recursoliveBroadcast
. Faça o teste agora. - delete
- Exclui uma transmissão. Faça um teste agora.
- vincular
- Vincula uma transmissão do YouTube a um stream ou remove uma vinculação existente 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
- Altera o status de uma transmissão ao vivo do YouTube e inicia todos os processos associados ao novo status. Por exemplo, quando você faz a transição do status de uma transmissão para
testing
, o YouTube começa a transmitir vídeo para o stream do monitor dessa transmissão. Antes de chamar esse método, confirme se o valor da propriedadestatus.streamStatus
do stream vinculado à sua transmissão éactive
. Faça o teste agora. - marcador
- Insere um marcador em uma transmissão ao vivo. O marcador 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 }, "statistics": { "totalChatCount": unsigned long }, "monetizationDetails": { "cuepointSchedule": { "enabled": boolean, "pauseAdsUntil": datetime, "scheduleStrategy": string, "repeatIntervalSecs": unsigned integer, } } }
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#liveBroadcast . |
etag |
etag A ETag deste recurso. |
id |
string O ID que o YouTube atribui para identificar exclusivamente a transmissão. |
snippet |
object O objeto snippet contém detalhes básicos sobre o evento, incluindo o título, a descrição, os horários de início e de término. |
snippet.publishedAt |
datetime A data e a hora em que a transmissão foi adicionada à programação ao vivo do YouTube. 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á publicando a transmissão. |
snippet.title |
string O título da transmissão. A transmissão representa exatamente um vídeo do YouTube. É possível definir esse campo modificando o recurso de transmissão ou definindo o campo title do recurso de vídeo correspondente. |
snippet.description |
string A descrição da transmissão. Assim como no title , você pode definir esse campo modificando o recurso de transmissão ou definindo o campo description do recurso de vídeo correspondente. |
snippet.thumbnails |
object Um mapa de imagens em miniatura associadas à transmissão. Para cada objeto aninhado nesse 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) |
object As chaves-valor válidas são:
|
snippet.thumbnails.(key).url |
string O URL da imagem. |
snippet.thumbnails.(key).width |
unsigned integer Largura da imagem. |
snippet.thumbnails.(key).height |
unsigned integer A altura da imagem. |
snippet.scheduledStartTime |
datetime A data e a hora em que a transmissão está programada para começar. O valor é especificado no formato ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ). No YouTube Studio, você pode 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 começa a transmitir. Para essas transmissões, o valor datetime corresponde ao horário zero do UNIX e não pode ser alterado por meio da API ou do Creator Studio. |
snippet.scheduledEndTime |
datetime A 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 tratará a transmissão como se ela continuasse indefinidamente. |
snippet.actualStartTime |
datetime A data e a hora em que a transmissão começou. Essa informação só está disponível quando o estado da transmissão é live . O valor é especificado no formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ). |
snippet.actualEndTime |
datetime A data e a hora em que a transmissão realmente terminou. Essa informação só está disponível quando o estado da transmissão é complete . O valor é especificado no formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ). |
snippet.isDefaultBroadcast |
boolean
Esta propriedade será descontinuada a partir de 1o de setembro de 2020. Nesse período, o YouTube
deixará de criar um stream e uma transmissão padrão quando um canal estiver ativado para transmissão
ao vivo. Para mais detalhes, consulte o anúncio de descontinuação.
Esta propriedade indica se essa transmissão é a padrão.Como funcionam as transmissões padrão Quando as transmissões ao vivo estão ativadas em um canal, o YouTube cria uma transmissão padrão para o canal. A transmissão define como o proprietário do canal envia o vídeo ao vivo para o YouTube, e a transmissão é como os espectadores podem ver a transmissão padrão. O proprietário de um 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. Após a conclusão da conversão, 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 término da transmissão, e a duração do atraso está relacionada à duração real da transmissão. |
snippet.liveChatId |
string O 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. Também é possível adicionar ou remover moderadores, proibir que usuários participem de chats ao vivo ou remover banimentos. |
status |
object O objeto status contém informações sobre o status do evento. |
status.lifeCycleStatus |
string Status da transmissão. O status pode ser atualizado com o método liveBroadcasts.transition da API.Os valores válidos para essa propriedade são:
|
status.privacyStatus |
string Status de privacidade da transmissão. A transmissão representa exatamente um vídeo do YouTube, então as configurações de privacidade são idênticas às compatíveis com vídeos. Além disso, você pode 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 |
string É o status de gravação da transmissão. Os valores válidos para essa propriedade são:
|
status.madeForKids |
boolean Esse valor indica se a transmissão foi designada como direcionada a crianças. Esse valor de propriedade é somente leitura. |
status.selfDeclaredMadeForKids |
boolean Em uma solicitação liveBroadcasts.insert , essa propriedade permite que o proprietário do canal designe a transmissão como direcionada a crianças. Em uma solicitação liveBroadcasts.list , o valor da propriedade só será retornado se o proprietário do canal autorizar a solicitação da API. |
contentDetails |
object O objeto contentDetails contém informações sobre o conteúdo de vídeo do evento, por exemplo, se o conteúdo pode ser exibido em um player de vídeo incorporado ou se será arquivado e, portanto, disponível para visualização após o término do evento. |
contentDetails.boundStreamId |
string Esse valor identifica exclusivamente o live stream vinculado à transmissão. |
contentDetails.boundStreamLastUpdateTimeMs |
datetime A data e a hora em que a transmissão ao vivo mencionada por boundStreamId foi atualizada pela última vez. |
contentDetails.monitorStream |
object O objeto monitorStream contém informações sobre o stream de monitoramento, que a emissora pode usar para analisar o conteúdo do evento antes que o stream de transmissão seja exibido publicamente. |
contentDetails.monitorStream.enableMonitorStream |
boolean Esse valor determina se o stream de monitoramento está ativado para a transmissão. Se o stream de monitoramento estiver ativado, o YouTube transmitirá o conteúdo do evento em um stream especial destinado somente ao consumo da emissora. A emissora pode usar o stream para revisar o conteúdo do evento e também identificar os momentos ideais para inserir marcadores. Defina esse valor como true se você pretende ter um estágio testing para sua transmissão ou se quiser um atraso na transmissão do evento. Além disso, se o valor dessa propriedade for true , faça a transição da transmissão para o estado testing antes de fazer a transição para o estado live . Se o valor da propriedade for false , sua transmissão não poderá ter um estágio testing . Portanto, você poderá fazer a transição da transmissão diretamente para o estado live .Quando você update a broadcast , essa propriedade precisará ser definida se a solicitação de API incluir a parte contentDetails no valor do parâmetro part . No entanto, quando você usa insert a broadcast , a propriedade é opcional e tem um valor padrão de true .Importante:essa propriedade não pode ser atualizada quando a transmissão está no estado testing ou live . |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integer Se você tiver definido a propriedade enableMonitorStream como true , essa propriedade determinará a duração do atraso da transmissão ao vivo.Quando você update a broadcast , essa propriedade precisará ser definida se a solicitação de API incluir a parte contentDetails no valor do parâmetro part . No entanto, quando você usa 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 atraso. Observação:essa propriedade não vai poder ser atualizada quando a transmissão estiver no estado testing ou live . |
contentDetails.monitorStream.embedHtml |
string Código HTML que incorpora um player que reproduz o stream de monitoramento. |
contentDetails.enableEmbed |
boolean Essa configuração indica se o vídeo transmitido 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.Quando você update a broadcast , essa propriedade precisará ser definida se a solicitação de API incluir a parte contentDetails no valor do parâmetro part . No entanto, quando você usa insert a broadcast , a propriedade é opcional e tem um valor padrão de true .Observação:essa propriedade não pode ser atualizada quando a transmissão está no estado testing ou live . |
contentDetails.enableDvr |
boolean Essa configuração determina se os espectadores podem acessar os controles do DVR enquanto assistem ao vídeo. Os controles DVR permitem que o espectador pause, retroceda ou avance o conteúdo para controlar a experiência de reprodução de vídeo. O valor padrão para essa propriedade é true . Quando você update a broadcast , essa propriedade precisará ser definida se a solicitação de API incluir a parte contentDetails no valor do parâmetro part . No entanto, quando você usa insert a broadcast , a propriedade é opcional e tem um valor padrão de true .Importante:se você quiser disponibilizar a reprodução imediatamente após o término da transmissão, defina o valor como true e o da propriedade enableArchive como true . Além disso, essa propriedade não pode ser atualizada quando a transmissão está no estado testing ou live . |
contentDetails.recordFromStart |
boolean Esta configuração indica se o YouTube começará a gravar a transmissão automaticamente depois que o status do evento mudar para "ao vivo". O valor padrão dessa propriedade é true , e ele só poderá ser definido como false se o canal de transmissão tiver permissão para desativar gravações para transmissões ao vivo.Se o canal não tiver permissão para desativar 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 .Quando você update a broadcast , essa propriedade precisará ser definida se a solicitação de API incluir a parte contentDetails no valor do parâmetro part . No entanto, quando você usa 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 esteja disponível imediatamente após o término 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 até que o vídeo arquivado esteja disponível para reprodução.Observação:essa propriedade não pode ser atualizada quando a transmissão está no estado testing ou live . |
contentDetails.enableClosedCaptions |
boolean Essa propriedade foi descontinuada em 17 de dezembro de 2015. Use a propriedade contentDetails.closedCaptionsType .Essa configuração indica se o closed captioning HTTP POST está ativado para a transmissão. Para clientes de API que já usam essa propriedade:
|
contentDetails.closedCaptionsType |
string Observação: essa propriedade substitui a propriedade contentDetails.enableClosedCaptions .Ela indica se as legendas estão ativadas na sua transmissão e, em caso afirmativo, que tipo de closed captions você está fornecendo:
|
contentDetails.projection |
string O formato de projeção desta transmissão. O valor padrão da propriedade é rectangular .Os valores válidos para ela são:
|
contentDetails.enableLowLatency |
boolean Indica se essa 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 estão assistindo a uma transmissão. No entanto, isso também pode afetar a resolução para os espectadores da transmissão. |
contentDetails.latencyPreference |
string Indica qual configuração de latência usar para esta transmissão. Esta propriedade pode ser usada no lugar de enableLowLatency , que não é compatível com ultraLow .Um stream de baixa latência pode reduzir o tempo necessário para que o vídeo fique visível para os usuários que estão assistindo uma transmissão. No entanto, isso também pode afetar a suavidade da reprodução. Um stream de latência ultrabaixa reduz ainda mais o tempo necessário para o vídeo ficar visível, facilitando a interação com os espectadores, mas os valores de latência ultrabaixas não oferecem suporte a legendas ou resolução maiores .
|
contentDetails.enableAutoStart |
boolean Indica se a transmissão deve começar automaticamente quando você iniciar o streaming de vídeo no live stream vinculado. |
contentDetails.enableAutoStop |
boolean Indica se a transmissão precisa ser interrompida automaticamente um minuto depois que o proprietário do canal interrompe o streaming de vídeo no stream de vídeo vinculado. |
statistics |
object O 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 está ao vivo. |
statistics.totalChatCount |
unsigned long É o número total de mensagens do chat ao vivo associadas à transmissão. A propriedade e o valor dela 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 depois que a transmissão terminar. Portanto, essa propriedade não identificaria o número de mensagens de chat para um vídeo arquivado de uma transmissão ao vivo concluída. |
monetizationDetails |
object O objeto monetizationDetails contém informações sobre os detalhes de monetização da transmissão, por exemplo, se o automator de anúncios está ativado ou se a inserção de anúncios intermediários está adiada. |
monetizationDetails.cuepointSchedule |
object O objeto cuepointSchedule especifica as configurações de automação de anúncios para a transmissão. |
monetizationDetails.cuepointSchedule.enabled |
boolean Esse valor determina se os anúncios são inseridos automaticamente na transmissão. Se o valor for true , o YouTube vai inserir automaticamente anúncios intermediários na transmissão. A programação da execução de anúncios será determinada pelo valor dos outros campos no objeto monetizationDetails.cuepointSchedule .
|
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetime Esse valor especifica que o YouTube não deve inserir anúncios intermediários na transmissão até a data e a hora especificadas. O valor é especificado no formato ISO 8601 (AAAA-MM-DDThh:mm:ss.sZ). O valor precisa ser definido como uma data e hora futura para pausar anúncios. O valor do campo também pode ser definido como uma data e hora próxima no futuro para retomar os anúncios quando a hora passar. |
monetizationDetails.cuepointSchedule.scheduleStrategy |
string Esse valor especifica a estratégia que o YouTube deve seguir para programar pontos de inserção. Os valores válidos são:
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integer Esse valor especifica o intervalo, em segundos, entre a inserção automática de anúncios durante uma transmissão. Por exemplo, se o valor for 300 , o YouTube poderá inserir pontos de inserção de anúncios intermediários em intervalos de cinco minutos.O valor especifica o tempo entre o início dos pontos de inserção sucessivos. Ou seja, o intervalo não é medido do final de um marcador até o início do próximo. |