Guia de início rápido

Nesta página, mostramos como fazer uma solicitação à API Cloud Video Intelligence com curl.

Você pode seguir as etapas nesta página ou usar este início rápido como um laboratório do Google Cloud Training.

Use-o com um laboratório

Antes de começar

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do Cloud, na página de seletor de projetos, selecione ou crie um projeto do Cloud.

    Acessar a página do seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como confirmar se a cobrança está ativada para o seu projeto.

  4. Ative a API Cloud Video Intelligence.

    Ative a API

  5. Configurar a autenticação:
    1. No Console do Cloud, acesse a página Criar chave da conta de serviço.

      Acessar página "Criar chave da conta de serviço"
    2. Na lista Conta de serviço, selecione Nova conta de serviço.
    3. No campo Nome da conta de serviço, insira um nome.
    4. Não selecione um valor na lista Papel. Não é necessário ter um papel para acessar esse serviço.
    5. Clique em Criar. Uma nota aparecerá informando que esta conta de serviço não tem papel.
    6. Clique em Criar sem papel. O download de um arquivo JSON que contém a chave é feito no computador.
  6. Defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS para o caminho do arquivo JSON com a chave da conta de serviço. Essa variável só se aplica à sessão de shell atual. Dessa maneira, se você abrir uma nova sessão, defina a variável novamente.

  7. Instale e inicialize o SDK do Cloud..

Criar uma solicitação de anotação de vídeo

COMANDO GCLOUD

Use a ferramenta de linha de comando gcloud para chamar o comando detect-labels no caminho do vídeo a ser analisado.

gcloud ml video detect-labels gs://cloud-ml-sandbox/video/chicago.mp4

Linha de comando

  1. Use o curl para fazer uma solicitação POST para o método videos:annotate, usando o comando gcloud auth application-default print-access-token para colar um token de acesso à sua conta de serviço:

    curl -X POST \
      -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      -H "Content-Type: application/json; charset=utf-8" \      --data "{
         'inputUri':'gs://cloud-ml-sandbox/video/chicago.mp4',
         'features': [
           'LABEL_DETECTION'
        ]
      }" "https://videointelligence.googleapis.com/v1/videos:annotate"
    
  2. A API Video Intelligence cria uma operação para processar a solicitação. A resposta inclui o nome da operação:

    {
      "name": "us-west1.18358601230245040268"
    }
    
  3. É possível solicitar informações sobre a operação chamando o endpoint v1.operations e substituindo operation-name no exemplo abaixo pelo nome retornado na etapa anterior:

     curl -X GET \
       -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
       https://videointelligence.googleapis.com/v1/operations/operation-name
    
  4. Você verá as informações relativas à operação. Se a operação foi concluída, o campo done é incluído e definido como true:

    {
      "name": "us-west1.104032612573769453",
      "metadata": {
      "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress",
        "annotationProgress": [
          {
            "inputUri": "/cloud-ml-sandbox/video/chicago.mp4",
            "progressPercent": 100,
            "startTime": "2018-11-01T22:13:17.978847Z",
            "updateTime": "2018-11-01T22:13:29.576004Z"
          }
        ]
      },
      "done": true,
     ...
    }
    

Em geral, depois de aproximadamente um minuto, a mesma solicitação retorna resultados da anotação:

{
  "name": "us-west1.104032612573769453",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress",
    "annotationProgress": [
      {
        "inputUri": "/cloud-ml-sandbox/video/chicago.mp4",
        "progressPercent": 100,
        "startTime": "2018-11-01T22:13:17.978847Z",
        "updateTime": "2018-11-01T22:13:29.576004Z"
      }
    ]
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoResponse",
    "annotationResults": [
      {
        "inputUri": "/cloud-ml-sandbox/video/chicago.mp4",
        "segmentLabelAnnotations": [
          {
            "entity": {
              "entityId": "/m/07bsy",
              "description": "transport",
              "languageCode": "en-US"
            },
            "segments": [
              {
                "segment": {
                  "startTimeOffset": "0s",
                  "endTimeOffset": "38.757872s"
                },
                "confidence": 0.81231534
              }
            ]
          },
         {
          "entity": {
              "entityId": "/m/01n32",
              "description": "city",
              "languageCode": "en-US"
            },
            "categoryEntities": [
              {
                "entityId": "/m/043rvww",
                "description": "geographical feature",
                "languageCode": "en-US"
              }
            ],
            "segments": [
              {
                "segment": {
                  "startTimeOffset": "0s",
                  "endTimeOffset": "38.757872s"
                },
                "confidence": 0.3942462
              }
            ]
          },
          ...
          {
            "entity": {
              "entityId": "/m/06gfj",
              "description": "road",
              "languageCode": "en-US"
            },
            "segments": [
              {
                "segment": {
                  "startTimeOffset": "0s",
                  "endTimeOffset": "38.757872s"
                },
                "confidence": 0.86698604
              }
            ]
          }
        ]
      }
    ]
  }
}
   

Parabéns! Você enviou sua primeira solicitação para a Cloud Video Intelligence API.

Limpar

Para evitar cobranças desnecessárias do Google Cloud Platform, use o Console do GCP para excluir seu projeto se ele não for necessário.

Próximas etapas