Implementação: vídeos

Os exemplos a seguir mostram como usar a API Data do YouTube (v3) para realizar funções relacionadas a vídeos.

Recuperar vídeos enviados por um canal

Este exemplo recupera os vídeos enviados para um canal específico. O exemplo tem duas etapas:

Este exemplo mostra como recuperar uma lista dos vídeos mais populares do YouTube, que são selecionados usando um algoritmo que combina muitos indicadores diferentes para determinar a popularidade geral.

Para extrair a lista de vídeos mais populares, chame o método videos.list e defina o valor do parâmetro chart como mostPopular. Ao recuperar essa lista, você também pode definir um ou ambos os seguintes parâmetros:

  • regionCode: instrui a API a retornar uma lista de vídeos para a região especificada.
  • videoCategoryId: identifica a categoria de vídeo para a qual os vídeos mais populares devem ser recuperados.

A solicitação abaixo recupera os vídeos de esportes mais famosos na Espanha:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?
        part=snippet
        &chart=mostPopular
        &regionCode=es
        &videoCategoryId=17

Enviar um vídeo

Como o APIs Explorer não oferece suporte para upload de arquivos, esta descrição não tem um link para um exemplo executável. Os recursos a seguir vão ajudar você a modificar seu aplicativo para que ele possa enviar vídeos usando a API v3:

  • A documentação do método videos.insert da API contém vários exemplos de código que explicam como fazer upload de um vídeo usando diferentes linguagens de programação.

  • O guia Uploads retomáveis explica a sequência de solicitações HTTP que um aplicativo usa para fazer upload de vídeos usando um processo de upload retomável. O guia é destinado principalmente a desenvolvedores que não podem usar as bibliotecas de cliente da API do Google, algumas das quais oferecem suporte nativo para uploads interrompíveis.

  • O exemplo em JavaScript para enviar um vídeo usa o CORS (compartilhamento de recursos entre origens) para demonstrar como enviar um arquivo de vídeo por uma página da Web. A biblioteca de upload CORS que a API v3 usa naturalmente oferece suporte ao upload interrompível. Além disso, o exemplo demonstra como verificar o status de um vídeo enviado recuperando a parte processingDetails do recurso video, além de como lidar com mudanças de status do vídeo enviado.

Verificar o status de um vídeo enviado

Este exemplo mostra como verificar o status de um vídeo enviado. Um vídeo enviado aparece imediatamente no feed de vídeos enviados do usuário autenticado. No entanto, o vídeo não vai aparecer no YouTube até ser processado.

  • Etapa 1: fazer upload do vídeo

    Chame o método videos.insert para enviar o vídeo. Se a solicitação for bem-sucedida, a resposta da API vai conter um recurso video que identifica o ID exclusivo do vídeo enviado.

  • Etapa 2: verificar o status do vídeo

    Chame o método videos.list para verificar o status do vídeo. Defina o valor do parâmetro id como o ID do vídeo recebido na etapa 1. Defina o valor do parâmetro part como processingDetails.

    Se a solicitação for processada, a resposta da API vai conter um recurso video. Verifique o valor da propriedade processingDetails.processingStatus para determinar se o YouTube ainda está processando o vídeo. O valor da propriedade vai mudar para algo diferente de processing, como succeeded ou failed, quando o YouTube terminar de processar o vídeo.

    O corpo da solicitação é um recurso video em que a propriedade id especifica o ID do vídeo que você está excluindo. Neste exemplo, o recurso também contém um objeto recordingDetails.

    A solicitação abaixo verifica o status de um vídeo. Para concluir a solicitação no APIs Explorer, você precisa definir o valor da propriedade id.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.list?
            part=snippet,processingDetails
            &id=VIDEO_ID

Observação:seu app pode consultar a API para verificar periodicamente o status de um vídeo recém-enviado. Depois que o vídeo for processado, seu aplicativo poderá criar um boletim ou realizar outra ação, dependendo do status do vídeo.

Atualizar um vídeo

Este exemplo mostra como atualizar um vídeo para adicionar informações sobre a hora e o local em que ele foi gravado. O exemplo tem as seguintes etapas:

  • Etapa 1: extrair o ID do vídeo

    Siga as etapas acima para recuperar vídeos enviados para o canal do usuário autenticado. A lista pode ser usada para mostrar uma lista de vídeos, usando o ID de cada vídeo como chave.

    Observação:há várias outras maneiras de conseguir IDs de vídeo, como recuperar resultados da pesquisa ou listar itens em uma playlist. No entanto, como um vídeo só pode ser atualizado pelo proprietário, recuperar uma lista de vídeos de propriedade do usuário que autoriza a solicitação da API é provavelmente a primeira etapa desse processo.

  • Etapa 2: atualizar um vídeo

    Chame o método videos.update para atualizar um vídeo específico. Defina o valor do parâmetro part como recordingDetails. O valor do parâmetro depende dos campos de metadados do vídeo que estão sendo atualizados.

    O corpo da solicitação é um recurso video em que a propriedade id especifica o ID do vídeo que você está atualizando. Neste exemplo, o recurso também contém um objeto recordingDetails.

    O exemplo de recurso abaixo indica que o vídeo foi gravado em 30 de outubro de 2013, em Boston:

    {
      "id": "VIDEO_ID",
      "recordingDetails": {
        "location": {
          "latitude": "42.3464",
          "longitude": "-71.0975"
        }
        "recordingDate": "2013-10-30T23:15:00.000Z"
      }
    }

    Para concluir a solicitação no APIs Explorer, você precisa definir o valor da propriedade id.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.update?
            part=snippet

Enviar uma imagem de miniatura personalizada e definir para um vídeo

É possível usar o método thumbnails.set da API v3 para fazer upload de uma imagem de miniatura personalizada e defini-la para um vídeo. Na sua solicitação, o valor do parâmetro videoId identifica o vídeo em que a miniatura será usada.

Essa consulta não pode ser testada usando o APIs Explorer porque ele não oferece suporte para fazer upload de arquivos de mídia, o que é um requisito para esse método.

Exemplos de código relacionados: PHP, Python

Excluir um vídeo

Este exemplo mostra como excluir um vídeo. O exemplo tem as seguintes etapas:

  • Etapa 1: extrair o ID do vídeo

    Siga as etapas acima para recuperar vídeos enviados para o canal do usuário autenticado. A lista pode ser usada para mostrar uma lista de vídeos, usando o ID de cada vídeo como chave.

    Observação:há várias outras maneiras de conseguir IDs de vídeo, como recuperar resultados da pesquisa ou listar itens em uma playlist. No entanto, como um vídeo só pode ser excluído pelo proprietário, recuperar uma lista de vídeos de propriedade do usuário que autorizou a solicitação da API é provavelmente a primeira etapa desse processo.

  • Etapa 2: excluir um vídeo

    Chame o método videos.delete para excluir um vídeo específico. Na solicitação, o parâmetro id especifica o ID do vídeo que você está excluindo. A solicitação precisa ser autorizada usando o OAuth 2.0. Se você estiver testando essa consulta no APIs Explorer, substitua um ID de vídeo válido pelo valor do parâmetro id.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.delete?
            id=VIDEO_ID
    

Denunciar um vídeo abusivo

Este exemplo mostra como denunciar um vídeo com conteúdo abusivo. O exemplo tem as seguintes etapas:

  • Etapa 1: extrair os IDs que explicam por que o vídeo está sendo denunciado

    Envie uma solicitação autorizada para o método videoAbuseReportReasons.list para recuperar uma lista de motivos válidos para sinalizar um vídeo. O exemplo de recurso videoAbuseReportReason abaixo contém informações para sinalizar um vídeo com spam ou conteúdo enganoso.

    {
      "kind": "youtube#videoAbuseReportReason",
      "etag": "\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/Or2VqBIilpHU7j__oPzUFCvGVBw\"",
      "id": "S",
      "snippet": {
        "label": "Spam or misleading",
        "secondaryReasons": [
          {
            "id": "27",
            "label": "Spam or mass advertising"
          },
          {
            "id": "28",
            "label": "Misleading thumbnail"
          },
          {
            "id": "29",
            "label": "Malware or phishing"
          },
          {
            "id": "30",
            "label": "Pharmaceutical drugs for sale"
          },
          {
            "id": "31",
            "label": "Other misleading info"
          }
        ]
      }
    }

    Conforme mostrado no recurso, esse motivo está associado a uma lista de motivos secundários. Ao sinalizar um vídeo por spam, você precisa informar o ID do motivo e é recomendável incluir um motivo secundário.

  • Etapa 2: sinalizar o vídeo como conteúdo abusivo

    Envie uma solicitação autorizada para o método videos.reportAbuse para denunciar o vídeo. O corpo da solicitação é um objeto JSON que identifica o vídeo sinalizado e o motivo da sinalização. Conforme observado na etapa 1, para alguns tipos de motivos, um motivo secundário é aceito e altamente recomendado.

    A propriedade videoId do objeto JSON identifica o vídeo que está sendo sinalizado.

    O objeto JSON de exemplo abaixo sinaliza um vídeo por conter spam ou conteúdo enganoso e, mais especificamente, por usar uma imagem de miniatura enganosa. Como mostrado no exemplo de objeto JSON acima, o ID de conteúdo Spam ou enganoso é S. O ID de uma miniatura enganosa é 28.

    {
      "videoId": "VIDEO_ID",
      "reasonId": "S",
      "secondaryReasonId": "28",
      "comments": "Testing the video flagging feature.",
      "language": "en"
    }

    A solicitação videos.reportAbuse precisa ser autorizada usando o OAuth 2.0. O link abaixo carrega o objeto JSON acima no APIs Explorer. Para testar a consulta, substitua um ID de vídeo válido pelo valor da propriedade videoId. O envio dessa solicitação vai sinalizar o vídeo.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.videos.reportAbuse