API YouTube Live Streaming - histórico de revisões

Esta página lista as mudanças na API YouTube Live Streaming e as atualizações da documentação. Inscreva-se neste registro de alterações. Inscrever-se

14 de julho de 2025

A descrição do método liveChatMessages.streamList foi atualizada para fornecer orientações sobre os usos da API streamList.

9 de outubro de 2023

Para referência, confira neste arquivo CSV (em inglês) quais IDs de adesivo correspondem a quais Super Stickers. As definições da propriedade snippet.superStickerDetails.superStickerMetadata.stickerId do recurso liveChatMessage e da propriedade snippet.superStickerMetadata.stickerId do recurso superChatEvent foram atualizadas para refletir essas informações.

15 de setembro de 2023

Agora a API oferece suporte a uma nova maneira de inserir anúncios em transmissões ao vivo. Além do liveCuepoints, que permite inserir manualmente intervalos de anúncio em uma transmissão, o YouTube agora oferece um recurso para inserir automaticamente intervalos de anúncio intermediário em uma transmissão em intervalos fixos.

Se o proprietário da transmissão ativar os anúncios automatizados, ele poderá conferir os seguintes aspectos do comportamento dos anúncios:

  • a duração do intervalo entre os intervalos de anúncio intermediário.
  • a estratégia de programação para pontos de inserção de anúncios. Os pontos de sinalização podem ser inseridos simultaneamente para todos os espectadores ou o tempo deles pode variar de espectador para espectador. Essa última estratégia permite que o YouTube programe pontos de inserção em uma taxa maior, para que os espectadores recebam esses pontos quando estiverem qualificados.
  • um período em que os anúncios intermediários não são mostrados. Para esse recurso, o proprietário da transmissão especifica que a inserção de anúncios intermediários será pausada até um determinado horário.

A documentação reflete as seguintes mudanças na API para oferecer suporte a esse recurso:

  • O recurso liveBroadcast agora contém um objeto monetizationDetails. Os campos do objeto indicam se a inserção automática de anúncios está ativada para a transmissão e especificam informações adicionais para o agendamento de pontos de sinalização.
  • O parâmetro part do método liveBroadcast.list aceita o valor monetizationDetails.
  • O método update pode ser usado para pausar a inserção de anúncios intermediários por um determinado período em uma transmissão ao vivo. A documentação também identifica vários erros que podem ocorrer ao atualizar os detalhes de monetização de uma transmissão ao vivo.

1º de agosto de 2023

Esta atualização contém as seguintes alterações:

  • O método liveBroadcasts.update não exige mais que valores sejam especificados para estes campos:

    • snippet.title
    • status.privacyStatus

    Se você omitir esses campos da solicitação, eles vão permanecer inalterados.

1º de novembro de 2022

  • O novo método liveBroadcasts.cuepoint permite que qualquer proprietário de canal que esteja fazendo uma transmissão ao vivo no YouTube insira pontos de sinalização nela, o que pode acionar intervalos de anúncios. Esse método substitui o liveCuepoints.insert, que permitia apenas que parceiros de conteúdo do YouTube inserissem cuepoints em transmissões ao vivo.

    Vários guias foram atualizados para refletir a disponibilidade desse novo método.

  • Observação:este é um anúncio de suspensão de uso.

    O uso do método liveCuepoints.insert foi descontinuado. O suporte ao método liveCuepoints.insert será removido a partir de 1º de maio de 2023. Os usuários da API precisam atualizar os aplicativos para chamar o método liveBroadcasts.cuepoint.

  • A documentação do método liveBroadcasts.control foi removida. Um aviso de descontinuação desse método foi publicado em setembro de 2020.

1º de outubro de 2022

Esta atualização contém as seguintes alterações:

  • O método liveBroadcasts.update não exige mais que valores sejam especificados para estes campos:

    • contentDetails.enableContentEncryption
    • contentDetails.enableDvr
    • contentDetails.enableEmbed
    • contentDetails.recordFromStart
    • contentDetails.startWithSlate

    Se você omitir esses campos da solicitação, eles vão permanecer inalterados.

  • A documentação dos campos liveBroadcast obsoletos foi removida:

    • contentDetails.enableContentEncryption
    • contentDetails.startWithSlate

1º de abril de 2022

Esta atualização contém as seguintes alterações:

  • A propriedade snippet.type agora aceita dois novos valores:

    • membershipGiftingEvent
    • giftMembershipReceivedEvent
  • A nova propriedade snippet.membershipGiftingDetails do recurso liveChatMessage e os filhos dela contêm informações sobre o evento de presente de assinatura. Da mesma forma, a nova propriedade snippet.giftMembershipReceivedDetails e os filhos dela contêm informações sobre o evento "Assinatura de presente recebida".

15 de setembro de 2021

Esta atualização contém as seguintes alterações:

  • A propriedade snippet.type agora aceita dois novos valores:

    • newSponsorEvent
    • memberMilestoneChatEvent
  • A nova propriedade snippet.memberMilestoneChatDetails do recurso liveChatMessage e os filhos dela contêm informações sobre o evento de chat de marco do membro. Da mesma forma, a nova propriedade snippet.newSponsorDetails e os filhos dela contêm informações sobre o evento "Novo patrocinador".

1 de dezembro de 2020

O método liveBroadcasts.transition da API aceita um novo erro 403 (Forbidden), que indica que o usuário enviou muitas solicitações em um determinado período. O motivo do erro é userRequestsExceedRateLimit.

21 de setembro de 2020

  • A definição da propriedade status.madeForKids do recurso liveBroadcast foi atualizada para esclarecer que ela é somente leitura. Isso não reflete uma mudança na funcionalidade da API.

    Para designar uma transmissão ao vivo como conteúdo para crianças, defina a propriedade status.selfDeclaredMadeForKids como true ao chamar o método liveBroadcasts.insert para criar a transmissão.

  • Observação:essa mudança inclui um anúncio de suspensão de uso e uma atualização de um anúncio anterior.

    O método liveBroadcasts.control será suspenso a partir de 1º de outubro de 2020. Depois dessa data, todas as chamadas para esse método vão retornar um erro proibido (403), e o método será completamente removido mais tarde. Os clientes ainda podem implementar a própria claquete adicionando uma sobreposição ao vídeo enviado aos servidores de ingestão do YouTube.

    A data de descontinuação do anúncio de descontinuação feito em 16 de abril de 2020, que estava originalmente programada para 1º de setembro de 2020, foi adiada e agora vai acontecer em 1º de outubro de 2020 ou depois. Assim, os recursos incluídos nesse anúncio de descontinuação e o método liveBroadcasts.control serão descontinuados ao mesmo tempo.

17 de julho de 2020

Observação:esta é uma atualização de um anúncio de descontinuação anterior.

O campo cdn.format do recurso liveStream, que foi descontinuado em abril de 2016, não será mais compatível a partir de 17 de agosto de 2020. As solicitações que ainda usarem esse campo vão falhar a partir dessa data.

Se o código ainda usar o campo cdn.format, ele precisará ser atualizado para especificar a taxa de frames e a resolução separadamente, usando as propriedades cdn.frameRate e cdn.resolution.

6 de julho de 2020

O guia Como transmitir conteúdo ao vivo do YouTube usando HLS foi atualizado com algumas mudanças:

Além disso, a nova comparação de protocolos de ingestão lista os protocolos compatíveis com o YouTube, os codecs aceitos para cada protocolo e outras informações sobre os casos de uso adequados para cada um deles.

16 de abril de 2020

Esta atualização inclui uma nova propriedade e um anúncio de remoção:

  • O recurso liveBroadcast agora é compatível com a propriedade contentDetails.enableAutoStop. A propriedade indica se uma transmissão precisa ser interrompida automaticamente cerca de um minuto depois que o proprietário do canal para de transmitir vídeo no fluxo de vídeo vinculado.

    O documento ciclo de vida de uma transmissão foi atualizado para explicar como o processo de criação e gerenciamento de um evento ao vivo do YouTube muda se você definir as propriedades contentDetails.enableAutoStart ou contentDetails.enableAutoStop como true.

  • Observação:este é um anúncio de suspensão de uso. Essas mudanças vão entrar em vigor a partir de 1º de setembro de 2020. A data real em que as mudanças entram em vigor é chamada de data de descontinuação.

    Esta atualização explica uma mudança que pode causar problemas. Isso afeta aplicativos cliente da API que usam os recursos padrão liveStream e liveBroadcast dos canais para transmitir conteúdo ao vivo no YouTube. Especificamente, o ID da transmissão e o ID do stream associados à transmissão e ao stream persistentes não vão mais funcionar para iniciar novas transmissões.

    Seu aplicativo será afetado se alguma das condições a seguir for verdadeira:

    • Ele verifica o valor da propriedade isDefaultBroadcast do recurso liveBroadcast. Essa propriedade não será retornada após a data de descontinuação.
    • Ele verifica o valor da propriedade isDefaultStream do recurso liveStream. Essa propriedade não será retornada após a data de descontinuação.
    • Ele chama o método liveBroadcasts.list e define o valor do parâmetro broadcastType como persistent ou all. Esse parâmetro será descontinuado como parte dessas mudanças. A partir da data de suspensão de uso:
      • Se o valor do parâmetro broadcastType for persistent, o método liveBroadcasts.list não vai retornar nenhum resultado.
      • Se o valor do parâmetro broadcastType for all, o método liveBroadcasts.list não vai retornar transmissões persistentes que existiam antes desse horário.

    Nos últimos anos, o YouTube criou automaticamente uma transmissão e uma transmissão padrão para um canal quando ele foi ativado para transmissões ao vivo. O fluxo padrão existia por tempo indeterminado, não tinha um horário de início ou término associado a ele e não podia ser excluído. Da mesma forma, a transmissão padrão foi considerada persistente. Ele sempre existiu e não estava vinculado a um evento específico.

    A partir da data de suspensão de uso:

    • O YouTube não vai mais criar transmissões ao vivo e transmissões padrão. Em vez de depender dos recursos padrão, os clientes da API precisam criar e gerenciar recursos liveBroadcast e liveStream e vincular esses recursos.
    • Se a transmissão e o stream padrão de um canal estiverem ativos, ou seja, se o canal estiver usando esses recursos para uma transmissão ao vivo no momento em que a descontinuação entrar em vigor, a transmissão em andamento não será afetada. No entanto, depois que a transmissão terminar, o canal não poderá mais usar a transmissão e o stream padrão.
    • Se a transmissão e o stream padrão de um canal não estiverem ativos, depois que a descontinuação entrar em vigor, o YouTube vai ignorar as tentativas de usar esses recursos para transmitir vídeos.

    Se o aplicativo for afetado, consulte os seguintes documentos, que vão ajudar você a atualizar o aplicativo para que ele ainda funcione conforme o esperado após essa mudança:

    • Um novo guia de migração tenta explicar as etapas que os desenvolvedores podem precisar seguir em clientes de API que atualmente usam transmissões e streams padrão.
    • O guia Ciclo de vida de uma transmissão mostra um processo detalhado que explica como criar e gerenciar um evento ao vivo no YouTube. Cada etapa explica as chamadas de API ou outras ações necessárias para concluir uma ação específica, e seu aplicativo precisará seguir esse processo quando o YouTube parar de oferecer suporte a transmissões e transmissões ao vivo padrão.

31 de março de 2020

Observação:este é um anúncio de suspensão de uso.

O recurso sponsor e o método sponsors.list foram descontinuados e substituídos pelo recurso member e o método members.list.

O método sponsors.list não será mais compatível a partir de 30 de setembro de 2020. Os clientes da API precisam atualizar as chamadas para o método sponsors.list e usar o método members.list. Consulte o histórico de revisões da API YouTube Data para mais informações sobre o novo recurso.

11 de março de 2020

A seção Endpoint de ingestão do guia Como transmitir conteúdo do YouTube ao vivo via HLS foi atualizada para esclarecer o processo que um codificador precisa usar para concluir o valor do parâmetro file= ao formar os URLs de ingestão primário e de backup.

4 de fevereiro de 2020

O guia Como transmitir conteúdo ao vivo do YouTube via HLS foi atualizado para informar que as solicitações DELETE são opcionais e que o endpoint HLS do YouTube as ignora. Por motivos de performance, o YouTube recomenda que os clientes não enviem solicitações DELETE.

10 de janeiro de 2020

Agora a API pode identificar conteúdo direcionado a crianças, que o YouTube chama de "conteúdo para crianças". Saiba mais sobre o conteúdo para crianças na Central de Ajuda do YouTube.

  • O recurso liveBroadcast é compatível com duas novas propriedades para permitir que criadores de conteúdo e espectadores identifiquem conteúdo "para crianças":
    • A propriedade selfDeclaredMadeForKids permite que os criadores de conteúdo especifiquem se uma transmissão ao vivo é direcionada a crianças. Essa propriedade pode ser definida ao criar uma transmissão usando o método liveBroadcasts.insert. Essa propriedade só é incluída em respostas da API que contêm recursos liveBroadcast se o proprietário do canal autorizar a solicitação de API.
    • A propriedade madeForKids permite que qualquer usuário da API recupere o status "feito para crianças" de uma transmissão. Por exemplo, o status pode ser determinado com base no valor da propriedade selfDeclaredMadeForKids. Consulte a Central de Ajuda do YouTube para mais informações sobre como definir o público do seu canal, vídeos ou transmissões.
  • Na API YouTube Data, o recurso channel também é compatível com as novas propriedades selfDeclaredMadeForKids e madeForKids.

Também atualizamos os Termos de Serviço e as Políticas para desenvolvedores dos serviços de API do YouTube. Consulte o Histórico de revisões dos Termos de Serviço das APIs do YouTube para mais informações. As mudanças nos Termos de Serviço dos serviços de API do YouTube e nas políticas para desenvolvedores vão entrar em vigor em 10 de janeiro de 2020, no horário do Pacífico.

20 de agosto de 2019

A seção Requisitos do guia Como transmitir conteúdo ao vivo do YouTube usando HLS foi atualizada com duas mudanças:

  • Ela explica que é uma prática recomendada incluir segmentos confirmados e pendentes em cada playlist de mídia. Essa prática reduz a probabilidade de um segmento ser ignorado se uma lista de reprodução de mídia for perdida no lado do servidor. Por exemplo, você pode incluir até dois segmentos confirmados e até cinco pendentes em cada playlist de mídia.
  • Agora é necessário enviar uma playlist de mídia para cada segmento de mídia. Isso permite que o servidor se recupere rapidamente se uma playlist de mídia for perdida. Essa prática foi listada anteriormente como uma recomendação.

28 de junho de 2019

O YouTube agora é compatível com a ingestão de HLS. Assim, a propriedade ingestionType do recurso liveStream aceita o novo valor hls para identificar transmissões ingeridas no YouTube usando HLS.

O novo guia Como transmitir conteúdo do YouTube ao vivo usando HLS oferece diretrizes para usar o HLS e transmitir conteúdo ao vivo para o YouTube usando um codificador. O objetivo do guia é ajudar os fornecedores de codificadores a adicionar suporte à entrega de HLS aos produtos deles.

4 de abril de 2019

Esta atualização contém as seguintes alterações:

  • A documentação de referência da API foi atualizada para explicar melhor os casos de uso comuns de cada método e fornecer exemplos de código dinâmicos e de alta qualidade usando o widget do APIs Explorer. Consulte a documentação do método liveBroadcasts.list para ver um exemplo. Agora há dois novos elementos nas páginas que descrevem métodos de API:

    • Com o widget do APIs Explorer, é possível selecionar escopos de autorização, inserir valores de parâmetros e propriedades de exemplo e enviar solicitações e respostas reais da API. O widget também oferece uma visualização em tela cheia que mostra exemplos de código completos, que são atualizados dinamicamente para usar os escopos e valores inseridos.

    • A seção Casos de uso comuns descreve um ou mais casos de uso comuns para o método explicado na página. Por exemplo, você pode chamar o método liveBroadcasts.list para recuperar dados sobre uma transmissão específica ou sobre as transmissões do usuário atual.

      Use os links nessa seção para preencher o APIs Explorer com valores de amostra para seu caso de uso ou abrir o APIs Explorer em tela cheia com esses valores já preenchidos. Essas mudanças têm como objetivo facilitar a visualização de exemplos de código diretamente aplicáveis ao caso de uso que você está tentando implementar no seu próprio aplicativo.

    No momento, os exemplos de código são compatíveis com Java, JavaScript, PHP, Python e curl.

  • A página Exemplos de código também tem uma nova interface que oferece todos os recursos descritos acima. Com essa ferramenta, é possível explorar casos de uso para diferentes métodos, carregar valores no APIs Explorer e abrir o APIs Explorer em tela cheia para receber exemplos de código em Java, JavaScript, PHP e Python.

    Junto com essa mudança, as páginas que listavam exemplos de código disponíveis para Java, PHP e Python foram removidas.

25 de fevereiro de 2019

A documentação dos recursos liveChatMessage e superChatEvent foi atualizada para refletir o fato de que ambos agora podem conter informações sobre os Super Stickers. Os Super Stickers são um tipo de mensagem do Super Chat que mostra uma imagem. Assim como outros Super Chats, uma mensagem de Super Sticker é comprada por um fã durante uma transmissão ao vivo do YouTube.

  • Em um recurso liveChatMessage, a propriedade snippet.type agora está definida como superStickerEvent para indicar que o recurso contém informações sobre um Super Sticker. Nesse caso, o recurso também contém o objeto snippet.superStickerDetails, que tem mais informações sobre o Super Sticker.
  • Em um recurso superChatEvent, o booleano snippet.isSuperStickerEvent indica se a mensagem do Super Chat também é um Super Sticker. Se sim, o objeto snippet.superStickerMetadata contém mais detalhes sobre o Super Sticker.

5 de abril de 2018

A descrição do método superChatEvents.list foi atualizada para refletir o fato de que a resposta da API não contém mais fanFundingEvents, que foram descontinuados no início de 2017.

3 de abril de 2017

Novos exemplos de código Java foram adicionados para mostrar como listar, inserir e excluir mensagens do chat ao vivo. Os exemplos chamam os seguintes métodos:

13 de fevereiro de 2017

Esta atualização contém as seguintes alterações:

  • Atualizações de recursos e métodos atuais

    • O método liveCuepoints.insert foi atualizado para refletir o fato de que o parâmetro onBehalfOfContentOwner é obrigatório no momento. Além disso, a descrição do método foi atualizada para informar que as chamadas a ele precisam ser autorizadas por uma conta associada a um proprietário de conteúdo do YouTube.

9 de fevereiro de 2017

Esta atualização contém as seguintes alterações:

  • Atualizações de recursos e métodos atuais

    • O novo parâmetro hl do método superChatEvents.list permite especificar que o valor da propriedade snippet.displayString deve ser formatado de acordo com as convenções de um idioma específico. A definição dessa propriedade também foi atualizada de acordo.

      O valor do parâmetro precisa ser um código de idioma incluído na lista retornada pelo método i18nLanguages.list. O valor padrão é en, o que significa que o comportamento padrão é formatar strings de exibição como seriam usadas em inglês. Por exemplo, por padrão, uma string é formatada como $1.00 em vez de $1,00.

1º de fevereiro de 2017

Esta atualização contém as seguintes alterações:

  • Novos recursos e métodos

    • O novo recurso superChatEvent representa uma mensagem do Super Chat comprada por um fã durante uma transmissão ao vivo do YouTube. No chat ao vivo do YouTube, os Super Chats se destacam de outras mensagens de duas maneiras:

      • Os Super Chats são destacados com uma cor.
      • Os Super Chats ficam fixados no mostrador por um período determinado.

      A cor do Super Chat, o período em que ele fica fixado no mostrador e o tamanho máximo da mensagem são determinados pelo valor da compra. A Central de Ajuda do YouTube tem mais informações sobre os Super Chats.

      A API oferece suporte a um método para listar eventos do Super Chat nas transmissões ao vivo de um canal nos últimos 30 dias. Esse método também retorna dados sobre eventos de financiamento por fãs (fanFundingEvents) da última transmissão ao vivo do canal.

  • Atualizações de recursos e métodos atuais

    • A propriedade snippet.type agora aceita o valor superChatEvent, que indica que o recurso descreve um Super Chat.

      Além disso, a nova propriedade snippet.superChatDetails do recurso liveChatMessage e os filhos dela contêm informações sobre o evento do Super Chat.

    • A propriedade cdn.resolution do recurso liveStream agora aceita o valor 2160p.

  • Erros novos e atualizados

    • A API é compatível com os seguintes novos erros:

      Detalhes do erro
      liveBroadcasts.insert, liveBroadcasts.update Os métodos liveBroadcasts.insert e liveBroadcasts.update retornam erros 400 (Bad Request) para indicar que o recurso liveBroadcast inserido ou atualizado contém um valor inválido para a propriedade contentDetails.enableEmbed ou contentDetails.projection. Os motivos dos dois novos erros são invalidEmbedSetting e invalidProjection, respectivamente.

12 de janeiro de 2017

Observação:este é um anúncio de suspensão de uso.

Junto com o lançamento do novo recurso Super Chat, o YouTube desativou o financiamento por fãs, e a API de financiamento por fãs será desativada em 28 de fevereiro de 2017. A partir dessa data:

11 de agosto de 2016

Esta atualização contém as seguintes alterações:

  • Os Termos de Serviço dos serviços de API do YouTube recém-publicados ("os Termos atualizados"), discutidos em detalhes no Blog de engenharia e desenvolvedores do YouTube, oferecem um conjunto abrangente de atualizações aos Termos de Serviço atuais. Além dos Termos atualizados, que vão entrar em vigor em 10 de fevereiro de 2017, esta atualização inclui vários documentos de apoio para ajudar a explicar as políticas que os desenvolvedores precisam seguir.

    O conjunto completo de novos documentos está descrito no histórico de revisões dos Termos atualizados. Além disso, as mudanças futuras nos Termos atualizados ou nos documentos de suporte também serão explicadas nesse histórico de revisões. Você pode se inscrever em um feed RSS que lista as mudanças no histórico de revisões usando um link no documento.

20 de maio de 2016

O YouTube agora aceita a ingestão de DASH. Assim, a propriedade ingestionType do recurso liveStream aceita o novo valor dash para identificar streams ingeridos no YouTube usando DASH.

O novo guia Como transmitir conteúdo ao vivo do YouTube usando DASH fornece diretrizes para usar o formato de transmissão DASH e transmitir dados ao vivo no YouTube com um codificador. Ele foi criado para ajudar os fornecedores de codificadores a adicionar suporte à entrega de DASH aos produtos deles.

18 de abril de 2016

Esta atualização contém as seguintes alterações:

  • Atualizações de recursos e métodos atuais

    • Atualizações de recursos liveStream
      • Agora o YouTube aceita transmissões com resolução de 1440p a 30 ou 60 frames por segundo.

        Além disso, o recurso liveStream contém novas propriedades para especificar a taxa de frames e a resolução dos dados de vídeo recebidos:

        Propriedades
        cdn.frameRate A taxa de frames dos dados de vídeo de entrada. Os valores válidos são: 30fps e 60fps.
        cdn.resolution A resolução dos dados de vídeo de entrada. Os valores de propriedade válidos são: 1440p, 1080p, 720p, 480p, 360p e 240p.
      • De acordo com a introdução das propriedades cdn.frameRate e cdn.resolution do recurso liveStream, a cdn.format do recurso foi descontinuada. A propriedade cdn.format especifica a resolução e o frame rate em um único valor.

        Recomendamos que você faça a transição para os campos recém-compatíveis. Enquanto isso, o cdn.format continua funcionando. Além disso, as solicitações para inserir transmissões ao vivo são bem-sucedidas desde que você especifique valores para a propriedade cdn.format ou as propriedades cdn.frameRate e cdn.resolution. Se você fornecer valores para todas as três propriedades, a API poderá retornar um erro se os valores não estiverem de acordo.

        Embora a propriedade cdn.format esteja descontinuada, ela agora oferece suporte a dois novos valores, 1440p e 1440p_hfr, para refletir a compatibilidade da API com streams de 1440p a 30 ou 60 frames por segundo.

    • Atualizações de recursos liveBroadcast
      • O recurso liveBroadcast contém as seguintes propriedades novas:

        Propriedades
        contentDetails.boundStreamLastUpdateTimeMs A data e a hora em que a transmissão ao vivo referenciada pela propriedade contentDetails.boundStreamId da transmissão foi atualizada pela última vez.
        contentDetails.projection O formato de projeção da transmissão. O valor padrão da propriedade é rectangular. Os valores válidos para a propriedade são 360 e rectangular.
      • A definição da propriedade statistics.totalChatCount do recurso liveBroadcast foi atualizada para informar que o valor da propriedade só aparece se a transmissão ao vivo tiver pelo menos uma mensagem de chat.

    • Atualizações de recursos liveChatMessage
      • A propriedade snippet.type aceita dois novos valores, messageDeletedEvent e userBannedEvent, que correspondem às novas propriedades descritas no item a seguir. A definição da propriedade snippet.authorChannelId também foi atualizada para explicar o que o valor da propriedade identifica para esses novos tipos de mensagem.

      • O recurso liveChatMessage contém as seguintes propriedades novas:

        Propriedades
        snippet.messageDeletedDetails Esse objeto contém informações sobre uma mensagem excluída por um moderador do chat. O objeto só estará presente se o valor da propriedade snippet.type for messageDeletedEvent.
        snippet.userBannedDetails Esse objeto contém informações sobre um usuário que foi banido de participar do chat. O objeto também contém informações sobre a proibição em si, ou seja, se ela é permanente ou temporária. Se a proibição for temporária, uma das propriedades do objeto vai especificar a duração dela.

        Esse objeto só estará presente se o valor da propriedade snippet.type for userBannedEvent.
  • Erros novos e atualizados

    • A API é compatível com os seguintes novos erros:

      Detalhes do erro
      liveBroadcasts.bind O método liveBroadcasts.bind retorna um erro 403 (Forbidden) para indicar que o usuário enviou solicitações em excesso dentro de um determinado período. O motivo do erro é userRequestsExceedRateLimit.

      Os métodos liveBroadcasts.insert e liveBroadcasts.update já oferecem suporte ao mesmo erro.
      liveStreams.insert O método liveStreams.insert oferece suporte a quatro novos erros 400 (Bad Request) que identificam um valor de propriedade inválido no recurso liveStream que a solicitação tentou inserir. A lista a seguir identifica os motivos do erro e as propriedades associadas a eles:
      liveStreams.insert O método liveStreams.insert oferece suporte a dois novos erros 400 (Bad Request), cada um indicando que um valor obrigatório não está presente no recurso liveStream que a solicitação tentou inserir. A lista a seguir identifica os motivos do erro e as propriedades associadas a eles:
      Mais especificamente, ao inserir um recurso liveStream, você precisa especificar um valor para a propriedade cdn.format ou para as propriedades cdn.frameRate e cdn.resolution.
      • A API retorna um erro formatRequired se você não especificar um valor para nenhuma das três propriedades.
      • A API retorna um erro frameRateRequired se você especificar um valor para cdn.resolution, mas não para cdn.frameRate.
      • A API retorna um erro resolutionRequired se você especificar um valor para cdn.frameRate, mas não para cdn.resolution.
      liveStreams.update O método liveStreams.update retorna um erro 403 (Forbidden) se a solicitação tentar modificar o valor de qualquer uma das seguintes propriedades não mutáveis: O reason na resposta de erro é liveStreamModificationNotAllowed.

18 de dezembro de 2015

As leis da União Europeia (UE) exigem que determinadas declarações sejam fornecidas e consentimentos sejam obtidos dos usuários finais na UE. Portanto, para usuários finais na União Europeia, você precisa obedecer à Política de consentimento de usuários da União Europeia. Adicionamos um aviso sobre esse requisito nos Termos de Serviço da API do YouTube.

17 de dezembro de 2015

Esta atualização contém as seguintes alterações:

  • Novos recursos e métodos

    • A API é compatível com vários recursos novos para oferecer suporte à funcionalidade de chat em transmissões ao vivo. O YouTube oferece suporte à funcionalidade de chat ao vivo durante transmissões ao vivo ativas. Esses recursos e métodos permitem recuperar mensagens do chat e usar funções administrativas.

      Recursos
      liveChatMessage Esse recurso representa uma mensagem em um chat ao vivo do YouTube. O YouTube aceita vários tipos de mensagens, incluindo mensagens de texto e eventos de apoio financeiro dos fãs. Alguns tipos de mensagens identificam uma fase específica do chat, como o início de um período exclusivo para membros ou o fim da conversa. A API oferece suporte a métodos para listar, inserir e excluir mensagens do chat ao vivo.
      liveChatModerators Esse recurso identifica um moderador de chat. Os moderadores podem realizar algumas funções administrativas, como banir usuários do chat ou remover mensagens. A API oferece suporte a métodos para listar, inserir e excluir moderadores do chat ao vivo.
      liveChatBans Esse recurso identifica um usuário que está proibido de postar mensagens em um chat ao vivo específico. As proibições podem ser temporárias ou permanentes. A API oferece suporte a métodos para inserir e excluir proibições no chat ao vivo.
      fanFundingEvents Esse recurso representa um evento de financiamento por fãs em um canal do YouTube. O financiamento por fãs é uma forma de os espectadores apoiarem voluntariamente os criadores de conteúdo do YouTube com uma contribuição financeira única.

      O método fanFundingEvents.list da API lista os eventos de financiamento por fãs de um canal. Os eventos de financiamento por fãs iniciados em um chat ao vivo durante uma transmissão ao vivo do canal também acionam uma mensagem fanFundingEvent no chat ao vivo da transmissão.

      Saiba mais sobre o financiamento pelos fãs na Central de Ajuda do YouTube.
      sponsors O recurso sponsor identifica um patrocinador de um canal do YouTube. Um patrocinador paga uma taxa mensal a um canal. Um selo aparece ao lado das mensagens do patrocinador nos chats ao vivo do canal. Além disso, os patrocinadores podem participar de chats ao vivo exclusivos para eles, se houver.

      O método sponsors.list da API lista os patrocinadores de um canal. Quando os usuários assinam um canal durante uma transmissão ao vivo de propriedade dele, a API também adiciona uma mensagem newSponsorEvent ao chat ao vivo da transmissão.

      Saiba mais sobre patrocínios na Central de Ajuda do YouTube.

  • Atualizações de recursos e métodos atuais

    • O recurso liveBroadcast contém as seguintes propriedades novas:

      Propriedades
      snippet.liveChatId 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. Você também pode adicionar ou remover moderadores de chat, impedir que usuários participem de chats ao vivo ou remover proibições.
      contentDetails.closedCaptionsType Observaçã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:
      • closedCaptionsDisabled: as legendas descritivas estão desativadas para a transmissão ao vivo.
      • closedCaptionsHttpPost: você vai enviar legendas, via HTTP POST, para um URL de ingestão associado à sua transmissão ao vivo.
      • closedCaptionsEmbedded: as legendas serão codificadas no fluxo de vídeo usando os formatos EIA-608 e/ou CEA-708.
      contentDetails.enableClosedCaptions Essa propriedade foi descontinuada em 17 de dezembro de 2015. Use a propriedade contentDetails.closedCaptionsType. Para clientes de API que já usam essa propriedade:
      • Definir o valor da propriedade como true é equivalente a definir a propriedade contentDetails.closedCaptionsType como closedCaptionsHttpPost.
      • Definir o valor da propriedade como false é equivalente a definir a propriedade contentDetails.closedCaptionsType como closedCaptionsDisabled.
    • O novo parâmetro broadcastType do método liveBroadcasts.list permite filtrar uma resposta da API para incluir transmissões de eventos, transmissões persistentes ou todas as transmissões.

      Uma transmissão permanente é aquela que sempre existe e não está vinculada a um evento específico. Especificamente, a transmissão padrão de um canal é uma transmissão persistente e pode ser acessada pelo painel ao vivo no YouTube Creator Studio. As outras transmissões do canal são de eventos.

  • O campo status.healthStatus.configurationIssues[].type do recurso liveStream informa os seguintes erros de status de integridade:

    Erros
    audioTooManyChannels O áudio tem mais de dois canais, mas apenas um canal (mono) ou dois canais (estéreo) são suportados. Corrija o número de canais de áudio.
    frameRateHigh O frame rate atual é muito alto. Defina o frame rate como %(framerate)s fps ou menos.
  • A data de publicação da atualização anterior da documentação foi corrigida.

  • Erros novos e atualizados

    • Além dos erros definidos para os novos recursos listados acima, a API oferece suporte aos seguintes novos erros:

      Detalhes do erro
      liveBroadcasts.update
      Código de resposta HTTPforbidden (403)
      MotivoclosedCaptionsTypeModificationNotAllowed
      DescriçãoO valor de contentDetails.closedCaptionsType só pode ser modificado quando a transmissão ao vivo está no status created ou ready.
      liveBroadcasts.update
      Código de resposta HTTPinvalidValue (400)
      MotivoinvalidEnableClosedCaptions
      DescriçãoNo recurso liveBroadcast, o valor da propriedade contentDetails.enableClosedCaptions é incompatível com o valor da configuração contentDetails.closedCaptionType. Modifique o recurso para incluir apenas uma das duas propriedades e reenvie a solicitação.

19 de agosto de 2015

Esta atualização contém as seguintes alterações:

  • Novos recursos e métodos

    • Observação:a documentação do recurso liveChat e dos métodos dele é confidencial e só pode ser acessada por parceiros selecionados do YouTube.

      O novo recurso liveChat contém um comentário postado durante uma transmissão ao vivo no YouTube. A API é compatível com dois métodos para esse recurso:

      Métodos
      liveChats.list Lista as mensagens do chat ao vivo de uma transmissão.
      liveChats.insert Crie uma nova mensagem de chat.

      As mensagens do chat ao vivo só podem ser recuperadas e postadas durante uma transmissão ao vivo.

  • Atualizações de recursos e métodos atuais

    • O recurso liveStream contém as seguintes propriedades novas:

      Propriedades
      snippet.isDefaultStream Indica se este stream é o padrão do canal. A transmissão padrão de um canal existe por tempo indeterminado, não tem um horário de início ou término associado a ela e não pode ser excluída. Consulte a definição da propriedade para mais informações sobre como os fluxos padrão funcionam.
      status.healthStatus Esse objeto contém informações que podem ser usadas para identificar, diagnosticar e resolver problemas de streaming. O objeto contém várias propriedades secundárias para ajudar você a avaliar a integridade de uma transmissão de vídeo ao vivo.

      Em particular, o objeto status.healthStatus.configurationIssues[] lista problemas que afetam uma transmissão de vídeo. Um novo documento, Problemas de configuração para recursos do LiveStream, lista todos os problemas informados pela API.
      contentDetails.isReusable Indica se o stream é reutilizável, ou seja, se pode ser vinculado a várias transmissões. É comum que as emissoras reutilizem a mesma transmissão para várias transmissões diferentes, desde que elas ocorram em horários diferentes.
    • O recurso liveBroadcast contém as seguintes propriedades novas:

      Propriedades
      snippet.isDefaultBroadcast Indica se esta transmissão é a padrão do canal. 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. 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. Consulte a definição da propriedade para mais informações sobre como as transmissões padrão funcionam.
      contentDetails.enableLowLatency Indica 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 a uma transmissão, mas também pode afetar a resolução para os espectadores.
      statistics.totalChatCount O número total de mensagens do chat ao vivo associadas à transmissão. A propriedade e o valor dela estão presentes se a transmissão estiver visível para o usuário e o recurso de chat ao vivo estiver ativado. Essa propriedade não vai especificar um valor após o fim 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.
  • Erros novos e atualizados

    • Além dos erros definidos para o novo recurso liveChat, a API oferece suporte ao seguinte erro:

      Detalhes do erro
      liveStreams.update
      Código de resposta HTTPforbidden (403)
      MotivoliveStreamModificationNotAllowed
      DescriçãoA API não permite mudar um fluxo reutilizável para não reutilizável ou vice-versa. Para mais informações, consulte Noções básicas sobre transmissões e streams.

21 de maio de 2015

Esta atualização contém as seguintes alterações:

  • Agora o YouTube oferece suporte a transmissões de vídeo ao vivo a 60 quadros por segundo (fps), o que significa uma reprodução mais fluida para jogos e outros vídeos de ação rápida. Quando você inicia uma transmissão ao vivo no YouTube a 60 fps, o YouTube também disponibiliza a transmissão a 30 fps em dispositivos em que a visualização de alta taxa de frames ainda não está disponível.

    A propriedade cdn.format do recurso liveStream aceita dois novos valores para esse recurso: 720p_hfr e 1080p_hfr.

    Confira o Blog para criadores de conteúdo do YouTube para mais informações sobre esse recurso.

21 de agosto de 2014

Esta atualização contém as seguintes alterações:

  • A definição do parâmetro walltime do método liveBroadcasts.control foi atualizada para informar que o valor da propriedade é especificado no formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ).

  • Agora a API é compatível com os seguintes erros:

    Tipo de erro Detalhe do erro Descrição
    insufficientPermissions liveStreamingNotEnabled Todos os métodos para os recursos liveBroadcast e liveStream retornam esse erro se o usuário que autorizou a solicitação de API não tiver permissão para transmitir vídeos ao vivo no YouTube. Os detalhes que explicam por que o usuário não pode transmitir vídeos ao vivo estão disponíveis nas configurações do canal em https://www.youtube.com/features.
    rateLimitExceeded userRequestsExceedRateLimit Os métodos liveBroadcasts.insert e liveStreams.insert retornam esse erro para indicar que o usuário enviou solicitações em excesso dentro de um determinado período.

2 de maio de 2014

Esta atualização contém as seguintes alterações:

  • As descrições do recurso liveStream e do método liveBroadcasts.bind foram atualizadas para informar que uma transmissão ao vivo 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 ao vivo. Essa mudança é apenas uma correção na documentação. A funcionalidade da API subjacente não mudou.

  • A propriedade contentDetails.monitorStream.enableMonitorStream do recurso liveBroadcast foi atualizada para explicar que, se o valor da propriedade for true, será necessário fazer a transição da transmissão para o estado testing antes de passar 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.

  • A propriedade settings.offsetTimeMs do recurso liveCuepoint foi atualizada para informar que não é necessário especificar um valor para a propriedade se a transmissão não tiver um stream de monitoramento.

  • Todos os métodos para os recursos liveBroadcast e liveStream agora são compatíveis com os parâmetros onBehalfOfContentOwner e onBehalfOfContentOwnerChannel. Com esses parâmetros, é possível usar as mesmas credenciais de autorização para concluir solicitações de API de diferentes canais associados ao mesmo proprietário do conteúdo.

  • A documentação do método liveCuepoints.insert foi atualizada para informar que é possível definir um valor para a propriedade settings.walltime ao chamar esse método.

  • A documentação de erros agora especifica o código de resposta HTTP para cada tipo de erro.

  • Agora a API oferece suporte ao seguinte erro:

    Tipo de erro Detalhe do erro Descrição
    insufficientPermissions livePermissionBlocked Os métodos liveBroadcasts.insert, liveBroadcasts.transition e liveStreams.insert retornam esse erro se o usuário que autorizou a solicitação não puder transmitir vídeos ao vivo no YouTube. Os detalhes que explicam por que o usuário não pode transmitir vídeos ao vivo estão disponíveis nas configurações do canal em https://www.youtube.com/features.
  • O erro invalidScheduledStartTime do método liveBroadcasts.insert foi atualizado para esclarecer que o horário de início programado precisa estar próximo o suficiente da data atual para que uma transmissão possa ser programada de forma confiável naquele horário.

13 de dezembro de 2013

Esta atualização contém as seguintes alterações:

  • A nova propriedade status.recordingStatus do recurso liveBroadcast identifica o status atual da transmissão.

  • A nova propriedade contentDetails.enableClosedCaptions do recurso liveBroadcast indica se as legendas descritivas podem ser ingeridas para a transmissão. O valor da propriedade pode ser definido ao inserir ou atualizar uma transmissão, mas não pode ser atualizado quando ela está no estado testing ou live. Se você definir essa propriedade como true, o recurso liveStream vinculado à transmissão vai especificar o URL de ingestão a ser usado para as legendas descritivas dela.

  • A propriedade snippet.scheduledEndTime do recurso liveBroadcast agora é compatível com transmissões programadas para continuar indefinidamente. Com essa mudança, a propriedade não é mais obrigatória nas solicitações liveBroadcasts.insert e liveBroadcasts.update.

    Se você recuperar um recurso liveBroadcast que não especifica um valor para essa propriedade, a transmissão será programada para continuar indefinidamente. Da mesma forma, se você chamar o método liveBroadcasts.insert ou liveBroadcasts.update e não especificar um valor para essa propriedade, a transmissão será programada para continuar indefinidamente.

  • A propriedade contentDetails.recordFromStart do recurso liveBroadcast, que já tinha um valor padrão de true, agora 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.

  • O recurso liveBroadcast não contém mais uma propriedade enableArchive, que havia sido mencionada nas descrições das propriedades contentDetails.enableDvr e contentDetails.enableEmbed.

  • A lista de valores válidos para a propriedade status.lifeCycleStatus do recurso liveBroadcast foi atualizada para incluir uma descrição de cada status.

  • A nova propriedade settings.walltime do recurso liveCuepoint especifica a data e a hora em que o ponto de sinalização deve ser inserido. A API retorna um erro se uma solicitação tentar inserir um ponto de sinalização que especifica um valor para essa propriedade e para a propriedade settings.offsetTimeMs.

  • O novo objeto contentDetails em um recurso liveStream contém informações sobre o stream. No momento, a única propriedade do objeto é contentDetails.closedCaptionsIngestionUrl, que especifica o URL de ingestão das legendas descritivas associadas ao stream de vídeo.

  • A lista de valores válidos para a propriedade status.streamStatus do recurso liveStream foi atualizada para incluir uma descrição de cada status.

  • O novo parâmetro walltime do método liveBroadcasts.control permite especificar a data e a hora em que uma mudança de programação vai ocorrer. A API retorna um erro se uma solicitação especificar um valor para esse parâmetro e para o parâmetro offsetTimeMs.

  • Na resposta da API a uma solicitação liveBroadcasts.list, o valor da propriedade kind mudou de youtube#liveBroadcastList para youtube#liveBroadcastListResponse.

  • Na resposta da API a uma solicitação liveStreams.list, o valor da propriedade kind mudou de youtube#liveStreamList para youtube#liveStreamListResponse.

  • A propriedade eventId foi descontinuada do liveBroadcastListResponse e do liveStreamListResponse.

  • A API é compatível com os seguintes novos erros:

    Tipo de erro Detalhe do erro Descrição
    invalidValue conflictingTimeFields O método liveBroadcasts.control retorna esse erro se a solicitação especificar valores para os parâmetros offsetTimeMs e walltime. Uma solicitação pode omitir os dois parâmetros ou especificar um valor para um deles.
    invalidValue invalidWalltime O método liveBroadcasts.control retorna esse erro se o valor do parâmetro walltime for inválido.
    forbidden enableClosedCaptionsModificationNotAllowed O método liveBroadcasts.update retorna esse erro se você tentar atualizar o valor contentDetails.enableClosedCaptions e o status da transmissão não for created ou ready.
    invalidValue conflictingTimeFields O método liveCuepoints.insert retorna esse erro se a solicitação especificar valores para as propriedades settings.offsetTimeMs e settings.walltime. Uma solicitação pode omitir as duas propriedades ou especificar um valor para uma delas.

    Além disso, o método liveStreams.update não oferece mais suporte a um erro cdnRequired semelhante ao que o método liveStreams.insert oferece.

10 de maio de 2013

Esta atualização contém as seguintes alterações:

2 de maio de 2013

Esta atualização contém as seguintes alterações:

27 de março de 2013

Esta atualização contém as seguintes alterações:

  • As seguintes propriedades foram alteradas no recurso liveBroadcast:

    • A propriedade startWithSlateCuepoint foi renomeada como startWithSlate.
    • A propriedade enableArchive foi renomeada como recordFromStart.
    • O objeto slateSettings foi descontinuado e removido da documentação. As mensagens de erro relacionadas ao objeto slateSettings ou às propriedades dele também foram removidas. Por fim, a seção "Como mostrar quadros" do guia Primeiros passos foi removida.

  • A API não oferece mais suporte à inserção de quadros de intervalo in-stream usando o método liveCuepoints.insert. Os seguintes documentos foram atualizados para refletir essa alteração:

18 de março de 2013

Esta atualização contém as seguintes alterações:

  • Todas as mensagens de erro da API foram atualizadas para explicar com mais clareza possíveis erros e, quando possível, oferecer orientação sobre como corrigi-los.

  • A API pode retornar vários erros novos. A lista abaixo identifica o erro e o método da API que pode retornar esse erro:

    • liveBroadcasts.insert – O horário de término programado de uma transmissão precisa ser posterior ao horário de início programado.
    • liveBroadcasts.insert: a transmissão especifica um status de privacidade inválido.
    • liveBroadcasts.update: o recurso não contém ou não define um valor para a propriedade contentDetails.enableArchive.
    • liveBroadcasts.update: o recurso não contém ou não define um valor para a propriedade contentDetails.enableContentEncryption.
    • liveBroadcasts.update: o recurso não contém ou não define um valor para a propriedade contentDetails.enableDvr.
    • liveStreams.insert – O título do snippet precisa ter entre 1 e 128 caracteres.
    • liveStreams.update: o recurso não contém ou não define um valor para a propriedade snippet.title.

  • A documentação do recurso liveStream foi atualizada para refletir que o multicast e o WebM não são métodos de ingestão compatíveis, como indicado anteriormente. A lista de formatos da propriedade cdn.format foi atualizada de acordo, e o objeto cdn.multicastIngestionInfo e as propriedades filho foram removidos da documentação do recurso. Além disso, http foi removido da lista de valores cdn.ingestionType compatíveis.