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

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

9 de outubro de 2023

Apenas para referência, é possível descobrir quais IDs de adesivos estão relacionados a quais Super Stickers neste arquivo CSV. As definições da propriedade liveChatMessage do recurso snippet.superStickerDetails.superStickerMetadata.stickerId e da superChatEvent propriedade snippet.superStickerMetadata.stickerId do recurso foram atualizadas para refletir essas informações.

15 de setembro de 2023

A API agora 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úncios em uma transmissão, o YouTube agora oferece suporte a um recurso para inserir automaticamente intervalos de anúncios intermediários em uma transmissão em intervalos fixos.

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

  • o intervalo entre os intervalos de anúncios intermediários.
  • a estratégia de programação dos pontos de inserção de anúncios. Os marcadores podem ser inseridos simultaneamente para todos os leitores, ou o tempo deles pode variar de acordo com o visualizador. Com essa estratégia, o YouTube pode programar pontos de inserção em uma taxa maior para que os espectadores possam receber quando estiverem qualificados para isso.
  • um período em que os anúncios intermediários não são mostrados. Nesse recurso, o proprietário da transmissão especifica que a inserção desse tipo de anúncio será pausada até um determinado momento.

A documentação indica 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 mais informações para programar os marcadores.
  • O parâmetro part do método liveBroadcast.list é compatível com o valor monetizationDetails.
  • O método update pode ser usado para pausar a inserção de anúncios intermediários durante um determinado período em uma transmissão ao vivo. Agora, 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 nesses campos:

    • snippet.title
    • status.privacyStatus

    A omissão desses campos da solicitação os deixará inalterados.

1º de novembro de 2022

  • Com o novo método liveBroadcasts.cuepoint, qualquer proprietário de canal que faz uma transmissão ao vivo no YouTube pode inserir marcadores, o que pode acionar intervalos de anúncios. Esse método substitui o método liveCuepoints.insert, que só permitia que os parceiros de conteúdo do YouTube inserissem pontos de indicação 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 descontinuação.

    O uso do método liveCuepoints.insert foi descontinuado. O suporte ao método liveCuepoints.insert vai ser removido a partir de 1o 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

    A omissão desses campos da solicitação os deixará inalterados.

  • Remoção da documentação de campos liveBroadcast obsoletos:

    • contentDetails.enableContentEncryption
    • contentDetails.startWithSlate

1º de abril de 2022

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

  • A propriedade snippet.type agora oferece suporte a dois novos valores:

    • membershipGiftingEvent
    • giftMembershipReceivedEvent
  • A nova propriedade snippet.membershipGiftingDetails do recurso liveChatMessage e os filhos dela contêm informações sobre o evento Membership Gifting. Da mesma forma, a nova propriedade snippet.giftMembershipReceivedDetails e as filhas 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 oferece suporte a 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 recompensa por membros. Da mesma forma, a nova propriedade snippet.newSponsorDetails e as filhas dela contêm informações sobre o evento "Novo patrocinador".

1º de dezembro de 2020

O método liveBroadcasts.transition da API é compatível com 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 a propriedade é somente leitura. Isso não reflete uma mudança na funcionalidade da API.

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

  • Observação:esta mudança inclui um anúncio de descontinuação e uma atualização sobre um anúncio anterior.

    O método liveBroadcasts.control será descontinuado a partir de 1o de outubro de 2020. Após essa data, todas as chamadas para esse método vão retornar um erro proibido (403), e o método vai ser completamente removido. Os clientes ainda podem implementar seus próprios preços adicionando uma sobreposição ao vídeo enviado aos servidores de processamento do YouTube.

    A data de descontinuação do anúncio de descontinuação feito em 16 de abril de 2020, originalmente programada para 1o de setembro de 2020, foi adiada e agora acontecerá a partir de 1o de outubro de 2020. 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 terá mais suporte a partir de 17 de agosto de 2020. As solicitações que ainda usarem esse campo vão falhar a partir dessa data.

Caso seu código ainda use o campo cdn.format, ele precisa ser atualizado para especificar o frame rate e a resolução separadamente, usando as propriedades cdn.frameRate e cdn.resolution.

6 de julho de 2020

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

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

16 de abril de 2020

Esta atualização inclui uma nova propriedade e um aviso de descontinuação:

  • O recurso liveBroadcast agora é compatível com a propriedade contentDetails.enableAutoStop. A propriedade indica se uma transmissão deve ser interrompida automaticamente por volta de um minuto após o proprietário do canal interromper o streaming de vídeo no stream de vídeo vinculado.

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

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

    Essa atualização explica uma alteração potencialmente interruptiva. Ela afeta aplicativos clientes de API que usam os recursos liveStream e liveBroadcast padrão dos canais para transmitir conteúdo ao vivo no YouTube. Especificamente, o ID de transmissão e o ID de stream associados à transmissão e ao stream persistentes não funcionarão mais para iniciar novas transmissões.

    Seu aplicativo será afetado se uma das seguintes condições for verdadeira:

    • Ele verifica o valor da propriedade isDefaultBroadcast do recurso liveBroadcast. Esta propriedade não será retornada após a data de descontinuação.
    • Ele verifica o valor da propriedade isDefaultStream do recurso liveStream. Esta 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. Como parte dessas mudanças, o uso desse parâmetro será suspenso. A partir da data da descontinuação:
      • Se o valor do parâmetro broadcastType for persistent, o método liveBroadcasts.list não retornará resultados.
      • 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 período.

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

    A partir da data da descontinuação:

    • O YouTube não vai mais criar transmissões 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.
    • A transmissão em andamento não será afetada se a transmissão padrão e a transmissão padrão de um canal estiverem ativamente ao vivo, ou seja, elas estiverem sendo usadas para uma transmissão ao vivo no momento em que a descontinuação entrar em vigor. No entanto, depois que a transmissão terminar, o canal não poderá usar as transmissões padrão e o fluxo padrão novamente.
    • Se a transmissão padrão e o padrão de um canal não estiverem ao vivo ativamente, depois que a descontinuação entrar em vigor, o YouTube vai ignorar as tentativas de usar esses recursos para transmitir vídeos.

    Se seu aplicativo for afetado, consulte os documentos a seguir, que ajudarão você a atualizá-lo 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 nos clientes da API que atualmente usam transmissões e streams padrão.
    • O guia O ciclo de uma transmissão orienta você em um processo detalhado que explica como criar e gerenciar um evento ao vivo no YouTube. Cada etapa explica as chamadas de API ou outras coisas que você precisa fazer para concluir uma ação específica, e seu aplicativo precisará seguir esse processo quando o YouTube parar de oferecer suporte a streams e transmissões padrão.

31 de março de 2020

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

O recurso sponsor e o método sponsors.list foram descontinuados e substituídos pelos recursos member e pelo 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 para que usem 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 processamento do guia Como enviar 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 processamento principal e de backup.

4 de fevereiro de 2020

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

10 de janeiro de 2020

Agora a API é compatível com a capacidade de identificar conteúdo feito para crianças, o que o YouTube chama de "conteúdo para crianças". Saiba mais sobre conteúdo para crianças na Central de Ajuda do YouTube.

  • O recurso liveBroadcast oferece suporte a duas novas propriedades para permitir que criadores 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 é conteúdo feito para crianças. Essa propriedade pode ser definida ao criar uma transmissão usando o método liveBroadcasts.insert. Observe que essa propriedade só será incluída em respostas de API que contenham 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 "conteúdo 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 dos seus canais, vídeos ou transmissões.
  • Na API YouTube Data, o recurso channel também oferece suporte às novas propriedades selfDeclaredMadeForKids e madeForKids.

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

20 de agosto de 2019

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

  • Ele explica que é uma prática recomendada incluir segmentos reconhecidos e pendentes em cada playlist de mídia. Essa prática diminui a probabilidade de um segmento ser ignorado se uma playlist de mídia for perdida no lado do servidor. Por exemplo, é possível incluir até dois segmentos reconhecidos e até cinco segmentos pendentes em cada playlist de mídia.
  • Agora é obrigató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

Agora o YouTube é compatível com a ingestão de HLS. A propriedade ingestionType do recurso liveStream aceita o novo valor hls para identificar streams ingeridos no YouTube usando HLS.

O novo guia Como enviar conteúdo ao vivo com HLS traz diretrizes sobre como usar esse protocolo para transmitir conteúdo ao vivo no YouTube usando um codificador. O objetivo do guia é ajudar os fornecedores de codificadores a adicionar compatibilidade com a entrega HLS aos produtos.

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 por meio do 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 os métodos da API:

    • O widget do APIs Explorer permite selecionar escopos de autorização, inserir valores de parâmetros e propriedades de amostra e, em seguida, enviar solicitações de API e ver as respostas reais da API. O widget também oferece uma visualização em tela cheia com exemplos completos de código, que são atualizados dinamicamente para usar os escopos e os 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 extrair dados sobre uma transmissão específica ou sobre as transmissões do usuário atual.

      É possível usar links nessa seção para preencher o APIs Explorer com valores de amostra para seu caso de uso ou para abrir o APIs Explorer em tela cheia com esses valores já preenchidos. Essas mudanças visam facilitar a visualização de exemplos de código que são 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 de exemplos de código também tem uma nova IU que oferece os mesmos recursos descritos acima. Com essa ferramenta, é possível explorar casos de uso de diferentes métodos, carregar valores no APIs Explorer e abrir o APIs Explorer em tela cheia para ver exemplos de código em Java, JavaScript, PHP e Python.

    Além dessa mudança, as páginas que listavam os 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 os recursos agora podem conter informações sobre os Super Stickers. Os Super Stickers são um tipo de mensagem do Super Chat que exibe uma imagem. Assim como outros Super Chats, os Super Stickers são comprados 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 tem o objeto snippet.superStickerDetails, com 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. Nesse caso, o objeto snippet.superStickerMetadata contém detalhes adicionais 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

Adicionamos novos exemplos de código Java que mostram como listar, inserir e excluir mensagens de 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 para esse método devem ser autorizadas por uma conta associada ao proprietário do 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 precisa ser formatado de acordo com as convenções de um determinado idioma. A definição dessa propriedade também foi atualizada.

      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 as strings de exibição da mesma forma que elas 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. Na transmissão ao vivo do YouTube, os Super Chats se destacam das outras mensagens de duas maneiras:

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

      A cor do Super Chat, o período em que ele fica fixado no mostrador e o comprimento 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 das 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 as filhas dela contêm informações sobre o evento do Super Chat.

    • A propriedade cdn.resolution do recurso liveStream agora é compatível com o valor 2160p.

  • Erros novos e atualizados

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

      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 que está sendo inserido ou atualizado contém um valor inválido para as propriedades 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 descontinuação.

Junto com o lançamento do novo recurso Super Chat, o YouTube suspendeu o uso do recurso de financiamento por fãs, e a API Fan Funding API 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"), que são discutidos detalhadamente no Blog de desenvolvedores e engenharia do YouTube, oferecem um conjunto completo de atualizações para os Termos de Serviço atuais. Além dos Termos atualizados, que entrarão em vigor em 10 de fevereiro de 2017, esta atualização inclui vários documentos de suporte para explicar as políticas que os desenvolvedores precisam seguir.

    O conjunto completo de novos documentos é descrito no histórico de revisões dos Termos atualizados. Além disso, alterações futuras nos Termos atualizados ou nos documentos de apoio também serão explicadas no histórico de revisões. Você pode se inscrever em um feed RSS listando as alterações do histórico de revisões a partir de um link nesse documento.

20 de maio de 2016

Agora o YouTube é compatível com a transferência de DASH. Da mesma forma, a propriedade ingestionType do recurso liveStream é compatível com o novo valor dash para identificar streams ingeridos no YouTube usando DASH.

O novo guia Envio de conteúdo ao vivo no YouTube por meio do DASH apresenta as diretrizes de uso do formato DASH de entrega para transmitir dados ao vivo no YouTube a partir de um codificador. O objetivo é ajudar os fornecedores de codificadores a adicionar compatibilidade com exibição DASH aos produtos.

18 de abril de 2016

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

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

    • liveStream atualizações de recursos
      • Agora o YouTube oferece suporte a transmissões com resolução de 1440p em 30 ou 60 quadros por segundo.

        Além disso, o recurso liveStream contém novas propriedades para especificar o frame rate e a resolução dos dados do vídeo de entrada:

        Propriedades
        cdn.frameRate É o frame rate dos dados do 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, o uso do cdn.format foi descontinuado. 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 novos campos 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 cdn.frameRate e cdn.resolution. Se você fornecer valores para as três propriedades, a API poderá retornar um erro se os valores não estiverem de acordo.

        Embora a propriedade cdn.format tenha sido descontinuada, ela agora oferece suporte a dois novos valores, 1440p e 1440p_hfr, para refletir o suporte da API a fluxos de 1440p a 30 ou 60 quadros por segundo.

    • liveBroadcast atualizações de recursos
      • 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 foi atualizada pela última vez.
        contentDetails.projection Formato de projeção da transmissão. O valor padrão da propriedade é rectangular. Os valores válidos da propriedade são 360 e rectangular.
      • A definição da propriedade statistics.totalChatCount do recurso liveBroadcast foi atualizada para mostrar que o valor da propriedade só aparece se a transmissão tiver pelo menos uma mensagem de chat.

    • liveChatMessage atualizações de recursos
      • A propriedade snippet.type oferece suporte a dois novos valores, messageDeletedEvent e userBannedEvent, que correspondem às novas propriedades descritas no marcador 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 mensagens.

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

        Propriedades
        snippet.messageDeletedDetails Este objeto contém informações sobre uma mensagem que foi excluída por um moderador de chat. O objeto só estará presente se o valor da propriedade snippet.type for messageDeletedEvent.
        snippet.userBannedDetails Este 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 própria proibição, ou seja, se ela é permanente ou temporária. Se a proibição for temporária, uma das propriedades do objeto especificará a duração da ação.

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

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

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

      Os métodos liveBroadcasts.insert e liveBroadcasts.update já aceitam o mesmo erro.
      liveStreams.insert O método liveStreams.insert é compatível com 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 dos erros e as propriedades a que eles estão associados:
      liveStreams.insert O método liveStreams.insert é compatível com dois novos erros 400 (Bad Request), cada um dos quais indica 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 dos erros e as propriedades a que eles estão associados:
      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 retornará um erro formatRequired se você não especificar um valor para nenhuma das três propriedades.
      • A API vai retornar um erro frameRateRequired se você especificar um valor para cdn.resolution, mas não para cdn.frameRate.
      • A API vai retornar um erro resolutionRequired se você especificar um valor para cdn.frameRate, mas não para cdn.resolution.
      liveStreams.update O método liveStreams.update vai retornar um erro 403 (Forbidden) se a solicitação tentar modificar o valor de qualquer uma destas 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 certas divulgações sejam fornecidas e forneçam consentimento dos usuários finais na UE. Portanto, os usuários finais da União Europeia precisam 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 novos recursos para dar suporte à funcionalidade de chat para transmissões ao vivo. O YouTube oferece suporte à funcionalidade de chat ao vivo durante transmissões ao vivo ativas, e esses recursos e os métodos deles oferecem suporte para recuperação de mensagens de chat, assim como funções administrativas para o chat.

      Recursos
      liveChatMessage Este recurso representa uma mensagem em um chat ao vivo do YouTube. O YouTube é compatível com vários tipos de mensagens, como mensagens de texto e eventos de Financiamento por fãs. Alguns tipos de mensagens identificam uma fase específica do bate-papo, como o início de um período exclusivo para patrocinadores ou o final do bate-papo. A API oferece suporte a métodos para listar, inserir e excluir mensagens do chat ao vivo.
      liveChatModerators Este recurso identifica um moderador de chat. Os moderadores podem executar algumas funções administrativas, como bloquear usuários do chat ou remover mensagens. A API oferece suporte a métodos para listar, inserir e excluir moderadores de chat ao vivo.
      liveChatBans Este recurso identifica um usuário que foi banido de postar mensagens em um determinado chat ao vivo. As proibições podem ser temporárias ou permanentes. A API oferece suporte a métodos para inserir e excluir banimentos no chat ao vivo.
      fanFundingEvents Este recurso representa um evento de Financiamento por fãs em um canal do YouTube. Com o financiamento por fãs, os espectadores podem apoiar os criadores de conteúdo do YouTube de maneira voluntária com um pagamento único.

      O método fanFundingEvents.list da API lista os eventos de Financiamento por fãs de um canal. 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 da transmissão.

      Saiba mais sobre o Financiamento por 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 para um canal. Um selo aparece ao lado das mensagens do patrocinador nos bate-papos ao vivo do canal, e os patrocinadores também podem participar de bate-papos ao vivo exclusivamente para os patrocinadores do canal, se isso acontecer.

      O método sponsors.list da API lista os patrocinadores de um canal. Quando os usuários se inscrevem para patrocinar um canal durante uma transmissão ao vivo pertencente a esse canal, 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. Também é possível adicionar ou remover moderadores, proibir que usuários participem de chats ao vivo ou remover banimentos.
      contentDetails.closedCaptionsType 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 legenda você está fornecendo:
      • closedCaptionsDisabled: as legendas estão desativadas para a transmissão ao vivo.
      • closedCaptionsHttpPost: você envia legendas, via HTTP POST, para um URL de processamento associado à sua transmissão ao vivo.
      • closedCaptionsEmbedded: as legendas serão codificadas no stream 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.

      A transmissão persistente é aquela que sempre existe e não está vinculada a um evento específico. Especificamente, a transmissão padrão de um canal é persistente e pode ser acessada no Painel da transmissão 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 estes novos erros de status de integridade:

    Erros
    audioTooManyChannels O áudio tem mais de dois canais, mas somente um (mono) ou dois (estéreo) são suportados. Corrija o número de canais de áudio.
    frameRateHigh O frame rate atual é muito alto. Ajuste o frame rate para %(framerate)s QPS 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 suporta estes novos erros:

      Detalhes do erro
      liveBroadcasts.update
      Código de resposta HTTPforbidden (403)
      MotivoclosedCaptionsTypeModificationNotAllowed
      DescriçãoO valor contentDetails.closedCaptionsType só pode ser modificado quando a transmissão 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 somente 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 visível apenas para parceiros do YouTube selecionados.

      O novo recurso liveChat contém um comentário postado durante uma transmissão ao vivo no YouTube. A API oferece suporte a 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 enquanto a transmissão estiver ao vivo.

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

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

      Propriedades
      snippet.isDefaultStream Indica se esse é o stream padrão do canal. O stream padrão de um canal existe indefinidamente, não tem um horário de início ou de término associado a ele e não pode ser excluído. Veja 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 filhas que ajudam a avaliar a integridade de um stream de vídeo ao vivo.

      Especificamente, o objeto status.healthStatus.configurationIssues[] lista os problemas que afetam um stream de vídeo. Um novo documento, Problemas de configuração de recursos de transmissão ao vivo, lista todos os problemas informados pela API.
      contentDetails.isReusable Indica se o stream é reutilizável, ou seja, ele pode ser vinculado a várias transmissões. É comum que as emissoras reutilizem o mesmo stream em várias transmissões diferentes se elas ocorrerem em momentos distintos.
    • O recurso liveBroadcast contém as seguintes propriedades novas:

      Propriedades
      snippet.isDefaultBroadcast Indica se esta é a transmissão padrão do canal. Quando a transmissão ao vivo é ativada em um canal, o YouTube cria uma transmissão padrão e outra 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. Veja a definição da propriedade para mais informações sobre como as transmissões padrão funcionam.
      contentDetails.enableLowLatency 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.
      statistics.totalChatCount O número total de mensagens do chat ao vivo associadas à transmissão. A propriedade e o valor dela vão estar presentes se a transmissão estiver visível para o usuário e tiver o recurso de chat ao vivo ativado. 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.
  • Erros novos e atualizados

    • Além dos erros definidos para o novo recurso liveChat, a API aceita este novo erro:

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

21 de maio de 2015

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

  • Agora o YouTube oferece suporte a transmissões ao vivo a 60 quadros por segundo (QPS), o que proporciona uma reprodução mais suave para jogos e outros vídeos de ação rápida. Quando você inicia uma transmissão ao vivo no YouTube a 60 qps, ela também é disponibilizada em 30 qps nos dispositivos em que a visualização com frame rate alta ainda não está disponível.

    A propriedade cdn.format do recurso liveStream oferece suporte a dois novos valores para este recurso: 720p_hfr e 1080p_hfr.

    Acesse o Blog para criadores de conteúdo do YouTube e saiba mais 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 oferece suporte aos seguintes erros:

    Tipo de erro Detalhe do erro Descrição
    insufficientPermissions liveStreamingNotEnabled Todos os métodos para os recursos liveBroadcast e liveStream retornarão esse erro se o usuário que autorizou a solicitação de API não tiver sido ativado para fazer streaming de vídeo ao vivo no YouTube. Detalhes que explicam por que o usuário não pode transmitir vídeo ao vivo podem estar disponíveis nas configurações do canal do usuário 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 muitas solicitações em 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 mostrar que 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. Essa mudança é apenas uma correção da documentação. A funcionalidade subjacente da API não foi modificada.

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

  • A propriedade settings.offsetTimeMs do recurso liveCuepoint foi atualizada para informar que você não vai precisar 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. Esses parâmetros permitem usar as mesmas credenciais de autorização para concluir solicitações de API em 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 erro agora especifica o código de resposta HTTP para cada tipo de erro.

  • A API agora 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 retornarão esse erro se o usuário que autorizou a solicitação não puder fazer streaming de vídeo ao vivo no YouTube. Detalhes que explicam por que o usuário não pode transmitir vídeo ao vivo podem estar disponíveis nas configurações do canal do usuário 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 maneira confiável naquele momento.

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 podem ser ingeridas para a transmissão. O valor da propriedade pode ser definido quando você insere ou atualiza uma transmissão, mas não pode ser atualizado quando a transmissão 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 nas legendas da transmissão.

  • A propriedade snippet.scheduledEndTime do recurso liveBroadcast agora oferece suporte a transmissões que estão programadas para continuar indefinidamente Com essa mudança, a propriedade não será mais necessá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 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.

  • O recurso liveBroadcast não contém mais uma propriedade enableArchive, que foi 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 marcador precisa ser inserido. A API retornará um erro se uma solicitação tentar inserir um marcador que especifique 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. Atualmente, a única propriedade do objeto é contentDetails.closedCaptionsIngestionUrl, que especifica o URL de processamento para legendas 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 barreira ocorrerá. A API retornará 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 no liveBroadcastListResponse e no liveStreamListResponse.

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

    Tipo de erro Detalhe do erro Descrição
    invalidValue conflictingTimeFields O método liveBroadcasts.control retornará 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 retornará esse erro se o valor do parâmetro walltime for inválido.
    forbidden enableClosedCaptionsModificationNotAllowed O método liveBroadcasts.update retornará 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 retornará esse erro se a solicitação especificar valores para as propriedades settings.offsetTimeMs e settings.walltime. Uma solicitação pode omitir ambas as 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 aceito pelo método liveStreams.insert

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 "Exibir barreiras" do guia Primeiros passos foi removida.

  • A API não oferece mais suporte para inserir barreiras 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 mais claramente possíveis erros e, quando possível, oferecer orientações sobre como corrigi-los.

  • A API agora pode retornar vários erros novos. A lista abaixo identifica o erro e o método de 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, e o objeto cdn.multicastIngestionInfo e as propriedades filhas dele foram removidos da documentação do recurso. Além disso, http foi removido da lista de valores cdn.ingestionType compatíveis.