クイックスタート

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

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

ラボで試す

始める前に

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

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

  2. Cloud Console のプロジェクト セレクタページで、Cloud プロジェクトを選択または作成します。

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

  3. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。 プロジェクトに対して課金が有効になっていることを確認する方法を学習する

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

    API を有効にする

  5. 認証の設定
    1. Cloud 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 を使用して、不要になったプロジェクトを削除します。

次のステップ