Anota un video con la línea de comandos
En esta página, se muestra cómo realizar una solicitud a la API de Video Intelligence con curl para los proyectos que te pertenecen.
Puedes seguir los pasos que se indican en esta página o probar esta guía de inicio rápido como unGoogle Cloud lab de capacitación.
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
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.-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente 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.-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
Roles obligatorios
Para obtener los permisos que necesitas para anotar un video, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
- Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer) - Administrador de almacenamiento (
roles/storage.admin)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Crea un bucket
En tu entorno de desarrollo, usa el comando gcloud storage buckets create para crear un bucket.
Antes de ejecutar el comando, reemplaza los siguientes valores:
BUCKET_LOCATION: Es la ubicación geográfica en la que deseas almacenar los datos en tu bucket. Por ejemplo,US
gcloud storage buckets create gs://videointelligence-quickstart-bucket --location=BUCKET_LOCATION
Si la solicitud se realiza correctamente, el comando mostrará el siguiente mensaje:
Creating gs://videointelligence-quickstart-bucket/...
Sube un video al bucket
En tu entorno de desarrollo, usa el comando gcloud storage cp para subir un video al bucket que creaste.
Antes de ejecutar el comando, reemplaza los siguientes valores:
OBJECT_LOCATION: Es la ruta de acceso local a tu objeto. Por ejemplo,Desktop/dog.mp4.
gcloud storage cp OBJECT_LOCATION gs://videointelligence-quickstart-bucket
Si se ejecuta de forma correcta, la respuesta se parece al siguiente ejemplo:
Completed files 1/1 | 164.3kiB/164.3kiB
Anota el video
gcloud
Usa gcloud CLI para llamar al comando detect-labels en la ruta de acceso del video que se analizará.
Antes de ejecutar el comando, reemplaza los siguientes valores:
YOUR_OBJECT: Es el nombre del archivo de video que subiste. Por ejemplo,dog.mp4
gcloud ml video detect-labels gs://videointelligence-quickstart-bucket/YOUR_OBJECT
Línea de comandos
Usa curl para realizar una solicitud POST al método videos:annotate.
Antes de ejecutar el comando, reemplaza los siguientes valores:
YOUR_OBJECT: Es el nombre del archivo de video que subiste. Por ejemplo,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"
La API de Video Intelligence crea una operación para procesar su solicitud. En la respuesta, se incluye el nombre de la operación:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
Puedes solicitar información sobre la operación mediante una llamanda al extremo v1.operations y reemplaza OPERATION_NAME en el siguiente ejemplo con el nombre que se muestra en el paso anterior:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ https://videointelligence.googleapis.com/v1/OPERATION_NAME
Este comando muestra información relacionada con tu operación. Si la operación se completó, se incluirá un campo done y se establecerá en 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, ... }
Después de aproximadamente un minuto, la solicitud devuelve los resultados de la anotación. Los resultados deberían ser similares a los siguientes:
{ "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 } ] } ] } ] } }
¡Felicitaciones! Enviaste tu primera solicitud a la API de Video Intelligence.
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página, haz una de las siguientes acciones:
Si quieres seguir usando el proyecto que creaste, usa el comando
gcloud storage rmcon la marca--recursivepara borrar el bucket y su contenido:gcloud storage rm gs://videointelligence-quickstart-bucket --recursive
Si no necesitas el proyecto que creaste para esta guía de inicio rápido, bórralo.
- En la Google Cloud consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
¿Qué sigue?
- Lee las guías prácticas.
- Lee los Instructivos y ejemplos.
- Consulta la Referencia de la API para obtener información completa sobre todas las llamadas a la API.