クイックスタート

このページでは、curl を使用して Cloud Video Intelligence API リクエストを行う方法について説明します。

このページの手順に従うことも、このクイックスタートを Google Cloud トレーニング ラボとして試すこともできます。

ラボで試す

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud Platform プロジェクトに対して課金が有効になっていることを確認します。 詳しくは、課金を有効にする方法をご覧ください。

  4. Cloud Video Intelligence API を有効にします。

    APIを有効にする

  5. 認証情報の設定:
    1. GCP Console で [サービス アカウントキーの作成] ページに移動します。

      [サービス アカウントキーの作成] ページに移動
    2. [サービス アカウント] リストから [新しいサービス アカウント] を選択します。
    3. [サービス アカウント名] フィールドに名前を入力します。
    4. [役割] リストから値を選択しないでください。このサービスにアクセスするために必要な役割はありません。
    5. [作成] をクリックします。このサービス アカウントには役割がないという警告メッセージが表示されます。
    6. [役割なしで作成] をクリックします。キーが含まれている JSON ファイルがパソコンにダウンロードされます。
  6. 環境変数 GOOGLE_APPLICATION_CREDENTIALS をサービス アカウント キーが含まれる JSON ファイルのファイルパスに設定します。この変数は現在のシェル セッションにのみ適用されるため、新しいセッションを開く場合は、変数を再度設定してください。

  7. Cloud SDK をインストールして初期化します。

アノテーション付き動画のリクエストを行う

gcloud コマンド

gcloud コマンドライン ツールを使用して、分析する動画のパスで detect-labels コマンドを呼び出します。

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

コマンドライン

  1. curl を使用して videos:annotate メソッドへの POST リクエストを発行します。その際に、gcloud auth application-default print-access-token コマンドを使用して、サービス アカウントへのアクセス トークンを貼り付けます。

    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. リクエストを処理するオペレーションが作成され、オペレーション名を含むレスポンスが返されます。

    {
      "name": "us-west1.18358601230245040268"
    }
    
  3. オペレーションの情報をリクエストするには、v1.operations エンドポイントを呼び出し、次のサンプルの operation-name を前の手順で返された名前に置き換えます。

     curl -X GET \
       -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
       https://videointelligence.googleapis.com/v1/operations/operation-name
    
  4. オペレーションに関連する情報が表示されます。オペレーションが完了すると、done フィールドが 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,
     ...
    }
    

リクエストを送信して 1 分ほど待つと、アノテーションの結果が返されます。

{
  "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
              }
            ]
          }
        ]
      }
    ]
  }
}
   

これで、Cloud Video Intelligence API に対する最初のリクエストが送信されました。

クリーンアップ

Google Cloud Platform の不必要な課金を避けるため、GCP Console を使用して、不要になったプロジェクトを削除します。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Video Intelligence API ドキュメント