Quickstart

This page shows how to make a Video Intelligence API request with curl.

You can follow the steps on this page or try this quickstart as a Google Cloud Training lab.

Try it with a lab

Before you begin

  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 necessária.

    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 como o caminho do arquivo JSON que contém 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..

Make an Annotate Video Request

gcloud command

Use the gcloud command line tool to call the detect-labels command on the path of the video to be analyzed.

gcloud ml video detect-labels gs://your_bucket/your_object

Command-line

  1. Use curl to make a POST request to the videos:annotate method, using the gcloud auth application-default print-access-token command to paste in an access token to your service account:

    curl -X POST \
      -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      -H "Content-Type: application/json; charset=utf-8" \
         --data "{
         "inputUri":"gs://your_bucket/your_object",
         "features": [
           "LABEL_DETECTION"
        ]
      }" "https://videointelligence.googleapis.com/v1/videos:annotate"
    
  2. The Video Intelligence API creates an operation to process your request. The response includes the operation name:

    {
      "name": "projects/project-number/locations/location-id/operations/operation-id"
    }
    
  3. You can request information on the operation by calling the v1.operations endpoint, replacing operation-name in the example below with the name returned in the previous step:

     curl -X GET \
       -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
       https://videointelligence.googleapis.com/v1/operation-name
    
  4. You'll see information related to your operation. If the operation has completed, a done field is included and set to true:

    {
      "name": "projects/project-number/locations/location-id/operations/operation-id",
      "metadata": {
      "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress",
        "annotationProgress": [
          {
            "inputUri": "/your_bucket/your_object",
            "progressPercent": 100,
            "startTime": "2020-04-01T22:13:17.978847Z",
            "updateTime": "2020-04-01T22:13:29.576004Z"
          }
        ]
      },
      "done": true,
     ...
    }
    

After giving the request some time (about a minute, typically), the same request returns annotation results:

{
  "name": "projects/project-number/locations/location-id/operations/operation-id",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress",
    "annotationProgress": [
      {
        "inputUri": "your_bucket/your_object",
        "progressPercent": 100,
        "startTime": "2020-04-01T22:13:17.978847Z",
        "updateTime": "2020-04-01T22:13:29.576004Z"
      }
    ]
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoResponse",
    "annotationResults": [
      {
        "inputUri": "/your_bucket/your_object",
        "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
              }
            ]
          }
        ]
      }
    ]
  }
}
   

Congratulations! You've sent your first request to the Video Intelligence API.

Clean up

To avoid unnecessary Google Cloud Platform charges, use the Cloud Console to delete your project if you do not need it.

What's next