Anotar um vídeo usando a linha de comando
Nesta página, mostramos como fazer uma solicitação API Video Intelligence com curl para seus projetos.
Você pode seguir as etapas nesta página ou usar este início rápido como um Google Cloud laboratório de treinamento.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Video Intelligence API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Video Intelligence API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Funções exigidas
Para receber as permissões necessárias para anotar um vídeo, peça que o administrador conceda a você os seguintes papéis do IAM no projeto:
- Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer) - Administrador de armazenamento (
roles/storage.admin)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
Criar um bucket
No seu ambiente de desenvolvimento, use o gcloud storage buckets create
comando para criar um bucket.
Antes de executar o comando, substitua os seguintes valores:
BUCKET_LOCATION: a localização geográfica em que você quer armazenar os dados no bucket. Por exemplo,US.
gcloud storage buckets create gs://videointelligence-quickstart-bucket --location=BUCKET_LOCATION
Se a solicitação for bem-sucedida, o comando retornará a seguinte mensagem:
Creating gs://videointelligence-quickstart-bucket/...
Fazer upload de um vídeo para o bucket
No seu ambiente de desenvolvimento, use o gcloud storage cp
comando para
fazer upload de um vídeo para o bucket que você criou.
Antes de executar o comando, substitua os seguintes valores:
OBJECT_LOCATION: o caminho local para o objeto. Por exemplo,Desktop/dog.mp4.
gcloud storage cp OBJECT_LOCATION gs://videointelligence-quickstart-bucket
Se funcionar, a resposta será parecida com esta:
Completed files 1/1 | 164.3kiB/164.3kiB
Anotar o vídeo
gcloud
Use a CLI gcloud para chamar o comando detect-labels no caminho do vídeo a ser analisado.
Antes de executar o comando, substitua os seguintes valores:
YOUR_OBJECT: o nome do arquivo de vídeo que você fez upload. Por exemplo,dog.mp4.
gcloud ml video detect-labels gs://videointelligence-quickstart-bucket/YOUR_OBJECT
Linha de comando
Use curl para fazer uma solicitação POST para o método videos:annotate.
Antes de executar o comando, substitua os seguintes valores:
YOUR_OBJECT: o nome do arquivo de vídeo que você fez upload. Por exemplo,dog.mp4.
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"inputUri":"gs://videointelligence-quickstart-bucket/YOUR_OBJECT","features":["LABEL_DETECTION"]}'\ "https://videointelligence.googleapis.com/v1/videos:annotate"
A API Video Intelligence cria uma operação para processar a solicitação. A resposta inclui o nome da operação:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
É possível solicitar informações sobre a operação chamando o v1.operations
endpoint, 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/OPERATION_NAME
Esse comando retorna informações relacionadas à sua operação. Se a operação tiver sido concluída, um campo done será incluído e definido como true:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress", "annotationProgress": [ { "inputUri": "/videointelligence-quickstart-bucket/YOUR_OBJECT", "progressPercent": 100, "startTime": "2020-04-01T22:13:17.978847Z", "updateTime": "2020-04-01T22:13:29.576004Z" } ] }, "done": true, ... }
Após cerca de um minuto, a solicitação retorna os resultados da anotação. Os resultados devem ser semelhantes a estes:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress", "annotationProgress": [ { "inputUri": "videointelligence-quickstart-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": "/videointelligence-quickstart-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 } ] } ] } ] } }
Parabéns! Você enviou sua primeira solicitação para a API Video Intelligence.
Limpar
Para evitar cobranças na sua Google Cloud conta pelos recursos usados nesta página, faça uma das seguintes ações:
Se você quiser continuar usando o projeto criado, use o comando
gcloud storage rmcom a flag--recursivepara excluir o bucket e tudo o que estiver dentro dele:gcloud storage rm gs://videointelligence-quickstart-bucket --recursive
Se você não precisar do projeto criado para este início rápido, exclua-o.
- No Google Cloud console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Desligar para excluir o projeto.
A seguir
- Siga as etapas indicadas em Guias de instruções.
- Siga as etapas indicadas em Amostras e tutoriais.
- Consulte a Referência da API para ver informações completas sobre todas as chamadas de API.