Annoter une vidéo à l'aide de la ligne de commande
Cette page explique comment envoyer une requête à l'API Video Intelligence avec curl pour les projets dont vous êtes propriétaire.
Vous pouvez suivre les étapes décrites sur cette page ou essayer ce démarrage rapide en tant qu'atelier de formationGoogle Cloud .
Avant de commencer
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
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.-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
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.-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init
Rôles requis
Pour obtenir les autorisations nécessaires pour annoter une vidéo, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
-
Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer) -
Administrateur de l'espace de stockage (
roles/storage.admin)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer un bucket
Dans votre environnement de développement, utilisez la commande gcloud storage buckets create pour créer un bucket.
Avant d'exécuter la commande, remplacez les valeurs suivantes :
BUCKET_LOCATION: emplacement géographique où vous souhaitez stocker les données dans votre bucket. Exemple :US
gcloud storage buckets create gs://videointelligence-quickstart-bucket --location=BUCKET_LOCATION
Si la requête aboutit, la commande renvoie le message suivant :
Creating gs://videointelligence-quickstart-bucket/...
Importer une vidéo dans le bucket
Dans votre environnement de développement, utilisez la commande gcloud storage cp pour importer une vidéo dans le bucket que vous avez créé.
Avant d'exécuter la commande, remplacez les valeurs suivantes :
OBJECT_LOCATION: chemin d'accès local à votre objet. Exemple :Desktop/dog.mp4.
gcloud storage cp OBJECT_LOCATION gs://videointelligence-quickstart-bucket
Si l'opération réussit, la réponse se présente comme suit :
Completed files 1/1 | 164.3kiB/164.3kiB
Annoter la vidéo
gcloud
Utilisez la gcloud CLI pour appeler la commande detect-labels sur le chemin d'accès de la vidéo à analyser.
Avant d'exécuter la commande, remplacez les valeurs suivantes :
YOUR_OBJECT: nom du fichier vidéo que vous avez importé. Exemple :dog.mp4
gcloud ml video detect-labels gs://videointelligence-quickstart-bucket/YOUR_OBJECT
Ligne de commande
Utilisez curl pour envoyer une requête POST à la méthode videos:annotate.
Avant d'exécuter la commande, remplacez les valeurs suivantes :
YOUR_OBJECT: nom du fichier vidéo que vous avez importé. Exemple :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"
L'API Video Intelligence crée une opération qui traite votre requête. La réponse inclut le nom de l'opération :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
Vous pouvez demander des informations sur l'opération en appelant le point de terminaison v1.operations. Pour ce faire, utilisez l'exemple de code ci-dessous en remplaçant OPERATION_NAME par la valeur "name" (nom) renvoyée à l'étape précédente :
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ https://videointelligence.googleapis.com/v1/OPERATION_NAME
Cette commande renvoie des informations associées à votre opération. Si celle-ci est terminée, un champ done est ajouté et défini sur 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, ... }
Au bout d'environ une minute, la requête renvoie les résultats d'annotation. Les résultats doivent ressembler à ce qui suit :
{ "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 } ] } ] } ] } }
Félicitations ! Vous avez envoyé votre première requête à l'API Video Intelligence.
Effectuer un nettoyage
Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud , procédez comme suit :
Si vous souhaitez continuer à utiliser le projet que vous avez créé, exécutez la commande
gcloud storage rmavec l'option--recursivepour supprimer le bucket et tout ce qu'il contient :gcloud storage rm gs://videointelligence-quickstart-bucket --recursive
Si vous n'avez plus besoin du projet que vous avez créé pour ce guide de démarrage rapide, supprimez-le.
- Dans la console Google Cloud , accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
Étapes suivantes
- Suivez les guides pratiques.
- Découvrez les exemples et tutoriels.
- Consultez la documentation de référence sur l'API pour en savoir plus sur tous les appels d'API.