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

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

9 de outubro de 2023

Para referência, confira quais IDs de adesivos estão relacionados a quais superadesivos neste arquivo CSV. 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 de liveCuepoints, que permite inserir intervalos de anúncios manualmente 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 automáticos, ele poderá conferir os seguintes aspectos do comportamento do anúncio:

  • a duração do intervalo entre os intervalos de anúncio intermediário.
  • a estratégia de programação para os pontos de início do anúncio. Os pontos de referência podem ser inseridos simultaneamente para todos os espectadores ou o tempo dos pontos de referência pode variar de espectador para espectador. A segunda estratégia permite que o YouTube programe os pontos de inserção em uma taxa maior, o que permite que os espectadores recebam pontos de inserção quando estiverem qualificados para isso.
  • um período em que os anúncios intermediários não são veiculados. Para esse recurso, o proprietário da transmissão especifica que a inserção de anúncios intermediários é 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 outras informações para programar pontos de inserção.
  • O parâmetro part do método liveBroadcast.list oferece suporte ao 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 esses campos forem omitidos 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 transmitindo ao vivo no YouTube insira pontos de início na transmissão, 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 referência nas 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 será removido a partir de 1º de maio de 2023. Os usuários da API precisam atualizar os apps para chamar o método liveBroadcasts.cuepoint.

  • A documentação do método liveBroadcasts.control foi removida. Um aviso de descontinuação para esse 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 os valores sejam especificados para estes campos:

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

    Se esses campos forem omitidos 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 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 de presente de assinatura. Da mesma forma, a nova propriedade snippet.giftMembershipReceivedDetails e os filhos dela contêm informações sobre o evento "Gift Membership Received".

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 "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 oferece suporte a 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 dirigida a 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 descontinuação e uma atualização de um anúncio anterior.

    O método liveBroadcasts.control será descontinuado 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á removido completamente. Os clientes ainda podem implementar o próprio agendamento adicionando uma sobreposição ao vídeo enviado aos servidores de transferência do YouTube.

    A data de descontinuação do anúncio de descontinuação feito em 16 de abril de 2020, que foi originalmente programada para 1º de setembro de 2020, foi adiada e agora vai acontecer a partir de 1º 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 anterior de descontinuação.

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 usam esse campo vão falhar a partir dessa data.

Se o código ainda usa o campo cdn.format, ele precisa 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 do YouTube ao vivo usando o HLS foi atualizado com algumas mudanças:

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

16 de abril de 2020

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

  • O recurso liveBroadcast agora oferece suporte à 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 interrompe o streaming de vídeo no stream de vídeo vinculado.

    O documento Vida útil 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 descontinuação. Essas mudanças vão entrar em vigor a partir de 1º de setembro de 2020. A data em que as mudanças vão entrar em vigor é chamada de data de descontinuação abaixo.

    Esta atualização explica uma mudança potencialmente importante. Isso afeta os aplicativos cliente de API que usam os recursos liveStream e liveBroadcast padrão dos canais para transmitir conteúdo ao vivo no YouTube. Especificamente, o ID da transmissão e o ID do fluxo associados à transmissão e ao fluxo persistente não funcionarão mais 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 descontinuação:
      • Se o valor do parâmetro broadcastType for persistent, o método liveBroadcasts.list não vai 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 e uma transmissão automática padrão para um canal quando ele foi ativado para transmissões ao vivo. A transmissão padrão existia indefinidamente, não tinha um horário de início ou término associado e não podia ser excluída. 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 descontinuação:

    • O YouTube não vai mais criar transmissões e transmissões ao vivo padrão. Em vez de depender dos recursos padrão, os clientes da API precisam ser capazes de criar e gerenciar recursos liveBroadcast e liveStream e vincular esses recursos juntos.
    • Se a transmissão e a transmissão ao vivo padrão de um canal estiverem ativas, ou seja, se o canal estiver usando elas 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á usar a transmissão e a transmissão padrão novamente.
    • 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 seu app for afetado, consulte os documentos a seguir, que vão ajudar você a atualizar o app para que ele continue funcionando conforme o esperado após essa mudança:

    • Um novo guia de migração tenta explicar as etapas que os desenvolvedores podem precisar abordar em clientes de API que usam transmissões e streams padrão.
    • O guia Vida de uma transmissão 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. Seu aplicativo vai 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 descontinuação.

O recurso sponsor e o método sponsors.list foram descontinuados e substituídos pelo recurso 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 usar o método members.list. Consulte o histórico de revisões da API Data do YouTube para mais informações sobre o novo recurso.

11 de março de 2020

A seção Endpoint de transferência do guia Como transmitir conteúdo ao vivo do YouTube usando o HLS foi atualizada para esclarecer o processo que um codificador precisa usar para preencher o valor do parâmetro file= ao formar os URLs de transferência principais e de backup.

4 de fevereiro de 2020

O guia Como transmitir conteúdo ao vivo do YouTube usando 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 desempenho, o YouTube recomenda que os clientes não enviem solicitações DELETE.

10 de janeiro de 2020

Agora, a API oferece suporte à capacidade de 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 oferece suporte a duas novas propriedades para que criadores de conteúdo e espectadores identifiquem conteúdo "feito para crianças":
    • A propriedade selfDeclaredMadeForKids permite que os criadores de conteúdo especifiquem se uma transmissão ao vivo é conteúdo direcionado a crianças. Essa propriedade pode ser definida ao criar uma transmissão automática pelo método liveBroadcasts.insert. Essa propriedade só é incluída nas respostas da API que contêm recursos liveBroadcast se o proprietário do canal autorizou a solicitação da API.
    • A propriedade madeForKids permite que qualquer usuário da API extraia 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 Data do YouTube, o recurso channel também oferece suporte a 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ória 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 API do YouTube 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 do YouTube ao vivo pelo HLS foi atualizada com duas mudanças:

  • Ele explica que é recomendável incluir segmentos confirmados e pendentes em cada playlist de mídia. Essa prática torna menos provável que um segmento seja pulado se uma playlist de mídia for perdida no servidor. Por exemplo, é possível incluir até dois segmentos confirmados 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

O YouTube agora oferece suporte à transferência de HLS. Assim, a propriedade ingestionType do recurso liveStream oferece suporte ao novo valor hls para identificar transmissões incorporadas ao YouTube usando o HLS.

O novo guia Como transmitir conteúdo ao vivo do YouTube usando o HLS oferece diretrizes para usar o HLS e fazer streaming de conteúdo ao vivo no YouTube usando um codificador. O objetivo do guia é ajudar os fornecedores de codificadores a adicionar suporte ao envio de 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 pelo widget do APIs Explorer. Consulte a documentação do método liveBroadcasts.list para conferir um exemplo. Agora há dois novos elementos nas páginas que descrevem métodos de API:

    • Com o widget do APIs Explorer, você pode selecionar escopos de autorização, inserir valores de parâmetro e de propriedade de exemplo, enviar solicitações de API e conferir as respostas. 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 que você inseriu.

    • 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, é possível 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 os links nessa seção para preencher o APIs Explorer com valores de exemplo para seu caso de uso ou para abrir o APIs Explorer em tela cheia com esses valores já preenchidos. O objetivo dessas mudanças é facilitar a visualização de exemplos de código aplicáveis diretamente ao caso de uso que você está tentando implementar no seu próprio aplicativo.

    No momento, os exemplos de código têm suporte para Java, JavaScript, PHP, Python e curl.

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

    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 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 os Super Chats, os Super Stickers são comprados por fãs durante uma transmissão ao vivo do YouTube.

  • Em um recurso liveChatMessage, a propriedade snippet.type agora é definida como superStickerEvent para indicar que o recurso contém informações sobre um Super adesivo. Nesse caso, o recurso também contém o objeto snippet.superStickerDetails, que tem mais informações sobre o superadesivo.
  • Em um recurso superChatEvent, o valor booleano snippet.isSuperStickerEvent indica se a mensagem do Super Chat também é um Super Sticker. Nesse caso, 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 foi descontinuado no início de 2017.

3 de abril de 2017

Foram adicionados 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 é necessário no momento. Além disso, a descrição do método foi atualizada para informar que as chamadas para esse método 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 precisa ser formatado de acordo com as convenções de um idioma específico. 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 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 para as 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 oferece suporte ao 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 oferece suporte ao valor 2160p.

  • Erros novos e atualizados

    • A API oferece suporte aos 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 descontinuação.

Com o lançamento do novo recurso Super Chat, o YouTube desativou o recurso de financiamento por fãs, e a API Fan Funding 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 de atualizações dos Termos de Serviço atuais. Além dos termos atualizados, que vão entrar em vigor em 10 de fevereiro de 2017, essa atualização inclui vários documentos de apoio para 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 apoio 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 oferece suporte à transferência de DASH. Assim, a propriedade ingestionType do recurso liveStream oferece suporte ao novo valor dash para identificar streams enviados ao YouTube usando o DASH.

O novo guia Como transmitir conteúdo ao vivo do YouTube usando o DASH oferece diretrizes para usar o formato de envio DASH para transmitir dados ao vivo no YouTube de um codificador. O objetivo é ajudar os fornecedores de codificadores a adicionar suporte ao envio do 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

    • Atualizações de recursos liveStream
      • O YouTube agora oferece suporte a 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 recebidos. Os valores válidos são: 30fps e 60fps.
        cdn.resolution A resolução dos dados de vídeo recebidos. 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 cdn.format do recurso 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 campos com suporte. Enquanto isso, o cdn.format continua funcionando. Além disso, as solicitações para inserir transmissões ao vivo atualmente são bem-sucedidas se você especificar valores para a propriedade cdn.format ou as propriedades 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 transmissões de 1440p com 30 ou 60 frames por segundo.

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

        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 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 abaixo. 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 novas propriedades:

        Propriedades
        snippet.messageDeletedDetails Esse 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 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 própria proibição, 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 oferece suporte aos 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 muitas solicitações em 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 com 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 vai 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 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 divulgações sejam feitas 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 para 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 oferece suporte a vários novos recursos para oferecer suporte à funcionalidade de chat em transmissões ao vivo. O YouTube oferece suporte à funcionalidade de chat ao vivo durante transmissões ativas. Esses recursos e métodos permitem a recuperação de mensagens e funções administrativas do chat.

      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 financiamento por fãs. Alguns tipos de mensagem identificam uma fase específica do chat, como o início de um período somente para patrocinadores ou o fim do chat. A API oferece suporte a métodos para listar, inserir e excluir mensagens de 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 foi banido de postar mensagens em um chat ao vivo específico. As banimentos podem ser temporárias ou permanentes. A API oferece suporte a métodos para inserir e excluir banimentos do 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 um pagamento único.

      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 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 a um canal. Um selo aparece ao lado das mensagens do patrocinador nos chats ao vivo do canal, e os patrocinadores também podem participar de chats ao vivo exclusivos para patrocinadores, se houver.

      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, 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 novas propriedades:

      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, impedir que usuários participem de chats ao vivo ou remover banimentos.
      contentDetails.closedCaptionsType Observação: essa propriedade substitui a propriedade contentDetails.enableClosedCaptions.

      Essa propriedade indica se as legendas estão ativadas para 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ê vai enviar legendas, por POST HTTP, para um URL de transferência 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 O uso dessa propriedade foi suspenso em 17 de dezembro de 2015. Use a propriedade contentDetails.closedCaptionsType. Para clientes de API que já estão usando 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 persistente é aquela que sempre existe e não está vinculada a um evento específico. Mais especificamente, a transmissão padrão de um canal é persistente e pode ser acessada pelo Painel ao vivo no YouTube Studio. As outras transmissões do canal são transmissões de eventos.

  • O campo status.healthStatus.configurationIssues[].type do recurso liveStream informa os seguintes novos 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 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 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ó fica visível para alguns parceiros do YouTube.

      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 Listar mensagens de 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 uma transmissão está ativa.

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

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

      Propriedades
      snippet.isDefaultStream Indica se esse stream é o padrão do canal. O stream padrão de um canal existe indefinidamente, não tem um horário de início ou término associado e não pode ser excluído. Consulte a definição da propriedade para mais informações sobre como os streams 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 para ajudar você a avaliar a integridade de uma transmissão de vídeo ao vivo.

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

      Propriedades
      snippet.isDefaultBroadcast Indica se essa transmissão é padrão para o canal. Quando um canal do YouTube é ativado para transmissões ao vivo, o YouTube cria uma transmissão e uma transmissão ao vivo 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 que o vídeo leva para ficar visível para os usuários que assistem uma transmissão, mas também pode afetar a resolução dos espectadores do stream.
      statistics.totalChatCount O número total de mensagens de 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 tiver o recurso de chat ao vivo ativado. Essa propriedade não especifica um valor após o término da transmissão. Por isso, essa propriedade não identificaria o número de mensagens de chat em 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 novo erro:

      Detalhes do erro
      liveStreams.update
      Código de resposta HTTPforbidden (403)
      MotivoliveStreamModificationNotAllowed
      DescriçãoA API não permite que você mude 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 com 60 frames por segundo (fps), o que significa uma reprodução mais suave de jogos e outros vídeos de ação rápida. Quando você inicia uma transmissão ao vivo no YouTube a 60 fps, a plataforma 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 mais informações sobre esse recurso no Blog para criadores de conteúdo do YouTube.

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 indicar que o valor da propriedade é especificado no formato ISO 8601 (YYYY-MM-DDThh:mm:ss.sssZ).

  • A API agora oferece suporte aos seguintes erros:

    Tipo de erro Detalhe do erro Descrição
    insufficientPermissions liveStreamingNotEnabled Todos os métodos dos recursos liveBroadcast e liveStream retornam esse erro se o usuário que autorizou a solicitação da API não tiver a transmissão de vídeo ao vivo ativada no YouTube. Os detalhes explicando por que o usuário não pode fazer transmissões ao vivo podem estar disponíveis nas configurações do canal dele 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 informar 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 na documentação. A funcionalidade da API não foi alterada.

  • A propriedade contentDetails.monitorStream.enableMonitorStream do recurso liveBroadcast foi atualizada para explicar que, se o valor da propriedade for true, você precisará 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, a transmissão não poderá ter uma fase testing. Assim, você pode fazer a transição da transmissã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 uma transmissão de monitoração.

  • Todos os métodos dos recursos liveBroadcast e liveStream agora oferecem suporte aos parâmetros onBehalfOfContentOwner e onBehalfOfContentOwnerChannel. Esses parâmetros permitem que você use as mesmas credenciais de autorização para concluir solicitações de API de diferentes canais associados ao mesmo proprietário de conteúdo.

  • A documentação do método liveCuepoints.insert foi atualizada para informar que você pode 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.

  • 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 retornam esse erro se o usuário que autorizou a solicitação não conseguir transmitir um vídeo ao vivo no YouTube. Os detalhes explicando por que o usuário não pode fazer transmissões ao vivo podem estar disponíveis nas configurações do canal dele 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 ser próximo o suficiente da data atual para que uma transmissão possa ser programada com segurança nesse 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 ocultas 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 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 transferência a ser usado para as legendas do programa.

  • A propriedade snippet.scheduledEndTime do recurso liveBroadcast agora oferece suporte a 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 especifique 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 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 ponto de inserção precisa ser inserido. A API vai retornar um erro se uma solicitação tentar inserir um ponto de referência 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. No momento, a única propriedade do objeto é contentDetails.closedCaptionsIngestionUrl, que especifica o URL de transferência de closed captions associado 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 tela vai ocorrer. A API vai 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 do liveBroadcastListResponse e do liveStreamListResponse.

  • A API oferece suporte aos seguintes novos erros:

    Tipo de erro Detalhe do erro Descrição
    invalidValue conflictingTimeFields O método liveBroadcasts.control vai retornar esse erro se a solicitação especificar valores para os parâmetros offsetTimeMs e walltime. Uma solicitação pode omitir ambos os parâmetros ou especificar um valor para um dos dois parâmetros.
    invalidValue invalidWalltime O método liveBroadcasts.control vai retornar esse erro se o valor do parâmetro walltime for inválido.
    forbidden enableClosedCaptionsModificationNotAllowed O método liveBroadcasts.update vai 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 vai retornar 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 propriedades a seguir 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 "Mostrar placas" do guia Primeiros passos foi removida.

  • A API não oferece mais suporte para inserir placas no stream usando o método liveCuepoints.insert. Os seguintes documentos foram atualizados para refletir essa alteração:

    • A página de índice, o guia Introdução e o tutorial Vida de uma transmissão não mencionam mais essa funcionalidade.

    • A propriedade settings.cueType do recurso liveCuepoint não oferece mais suporte a slate como valor de propriedade. O único valor aceito é ad.

    • A propriedade settings.eventState do recurso liveCuepoint foi descontinuada e removida da documentaçã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 melhor os possíveis erros e, quando possível, oferecer orientações sobre como corrigi-los.

  • A API agora pode retornar vários novos erros. 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 transferência aceitos, como indicado anteriormente. A lista de formatos da propriedade cdn.format foi atualizada, e o objeto cdn.multicastIngestionInfo e as propriedades filhas foram removidas da documentação do recurso. Além disso, http foi removido da lista de valores cdn.ingestionType com suporte.