アセット検索結果の照会

Prev Next

VPC環境で利用できます。

アセットの検索結果を照会します。アセット検索のリクエストの呼び出し後に発行されたsearchIdを使用して結果を確認できます。

参考
  • status"COMPLETED"状態の場合にのみtotalCountresultsを返します。
  • クエリスコア、インデックス作成順にソートされます。

リクエスト

リクエスト形式を説明します。リクエスト形式は次の通りです。

メソッド URI
GET /api/v1/workspaces/{workspace_name}/assets/search/{search_id}

リクエストヘッダ

Media Intelligence APIで共通して使用されるヘッダの詳細は、Media Intelligenceのリクエストヘッダをご参照ください。

リクエストパスパラメータ

リクエストパスパラメータの説明は次の通りです。

フィールド タイプ 必須の有無 説明
workspace_name String Required ワークスペース名
search_id String Required アセット検索リクエスト時に発行された検索識別子

リクエストクエリパラメータ

リクエストクエリパラメータの説明は次の通りです。

フィールド タイプ 必須の有無 説明
pageSize Integer Optional ページごとの結果数
  • 1~100 (デフォルト: 50)
pageNum Integer Optional 照会対象ページ番号
  • 1~N (デフォルト: 1)

リクエスト例

リクエストのサンプルコードは次の通りです。

curl --location --request GET 'https://mi.apigw.ntruss.com/api/v1/workspaces/betatest/scene-search/JtWJKTDCKknMHP8Id4Gt?pageSize=50&pageNum=1' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}'

レスポンス

レスポンス形式を説明します。

レスポンスボディ

レスポンスボディの説明は次の通りです。

フィールド タイプ 必須の有無 説明
code String - API処理結果コード
message String - API処理結果メッセージ
result Object - アセット検索結果情報
result.searchId String - アセット検索リクエスト時に発行された検索識別子
result.status String - 検索状態コード
  • RUNNING | COMPLETED | FAILED
    • RUNNING: 検索中
    • COMPLETED: 完了
    • FAILED: 失敗
result.totalCount Integer - 検索されたアセットの総数
  • statusCOMPLETEDの場合、含める
result.totalPage Integer - ページの総数
  • statusCOMPLETEDの場合、含める
result.pageNo Integer - 現在のページ番号
  • statusCOMPLETEDの場合、含める
result.pageSize Integer - ページごとの結果数
  • statusCOMPLETEDの場合、含める
result.content Array - シーン/画像単位の検索結果リスト: content
  • statusCOMPLETEDの場合、含める

content

contentの説明は次の通りです。

フィールド タイプ 必須の有無 説明
jobId Integer - 検索対象インデックス(Job) ID
engine String - インデックスエンジンのバージョン
type String - アセットタイプ
  • IMAGE | VIDEO
    • IMAGE: 画像
    • VIDEO: ビデオ
assetId Integer - 検索対象メディアアセット ID
assetName String - アセット名
scene Integer - ビデオ内で検索されたアセット ID
  • 画像アセットは0と表示
score Number - アセット類似度スコア
startMs Number - ビデオアセットの開始時間 (ミリ秒)
  • 画像アセットは0と表示
endMs Number - ビデオアセットの終了時間 (ミリ秒)
  • 画像アセットは0と表示
assetUrl String - メディア URL
  • (有効時間は1時間)
sceneThumbnailUrl String - (ビディ分析時)アセットのサムネイル画像 URL
  • (有効時間は1時間)
shots Array - 当該アセットに含まれたショット情報リスト: shots

shots

shotsの説明は次の通りです。

フィールド タイプ 必須の有無 説明
shot Integer - ショット ID
  • 画像アセットは0と表示
startMs Number - ショットの開始時間 (ミリ秒)
  • 画像アセットは0と表示
endMs Number - ショットの終了時間 (ミリ秒)
  • 画像アセットは0と表示
score Number - ショット類似度スコア
persons Array - ショットに登場する人物リスト: persons
scripts Array - ショットに含まれたセリフ情報リスト: scripts
queryRef Array - ユーザークエリとのマッチング情報リスト: queryRef

persons

personsの説明は次の通りです。

フィールド タイプ 必須の有無 説明
personId Integer - 人物 ID
name String - 人物名
profileUrl String - 人物プロファイルのサムネイル URL
  • (有効時間は1時間)

scripts

scriptsの説明は次の通りです。

フィールド タイプ 必須の有無 説明
startMs Number - セリフ開始時間 (ミリ秒)
endMs Number - セリフ終了時間 (ミリ秒)
text String - セリフテキスト
name String - 発話者名
  • 匿名の場合、話者1話者2などと表示
personId Integer - 発話者人物 ID
  • 匿名の場合、null

queryRef

queryRefの説明は次の通りです。

フィールド タイプ 必須の有無 説明
queryType String - クエリのタイプ
  • TEXT | IMAGE | PERSON | DIALOGUE
    • TEXT: テキスト検索結果
    • IMAGE: 画像検索結果
    • PERSON: 人物検索結果
    • DIALOGUE: セリフ検索結果
conditionType String - クエリ条件
  • MUST | ANY
matchedValues Array[String] - 入力されたクエリのうち、当該ショットとマッチした値

レスポンス例

レスポンスのサンプルコードは次の通りです。

{
  "code": "0",
  "message": "success",
  "result": {
    "search_id": "JtWJKTDCKknMHP8Id4Gt",
    "status": "COMPLETED",
    "totalCount": 1,
    "totalPage": 1,
    "pageNo": 1,
    "pageSize": 50,
    "content": [
      {
        "jobId": 12345,
        "engine": "v2.1.0",
        "type":"VIDEO",
        "assetId": 67890,
        "assetName": "都会の追撃",
        "scene": 7,
        "score": 98.3,
        "startMs": 120000,
        "endMs": 135000,
        "assetUrl": "https://kr.object.ncloudstorage.com/.../12345/video.mp4?X-Amz-...",
        "sceneThumbnailUrl": "https://kr.object.ncloudstorage.com/.../12345/7.jpg?X-Amz-...",
        "shots": [
          {
            "shot": 70,
            "startMs": 121000,
            "endMs": 123000,
            "score": 98.3,
            "persons": [
              {
                "personId": 1001,
                "name": "ユ・ジェソク",
                "profileUrl": "https://kr.object.ncloudstorage.com/.../jiho0.jpg?X-Amz-..."
              }
            ],
            "scripts": [
              {
                "startMs": 121500,
                "endMs": 122000,
                "text": "こっちだ、ほら!",
                "name": "話者1",
                "personId": null
              }
            ],
            "queryRef": [
              {
                "queryType": "TEXT",
                "conditionType": "MUST",
                "matchedValues": ["暗い路地"]
              }
            ]
          },
          {
            "shot": 71,
            "startMs": 123000,
            "endMs": 125000,
            "score": 95.8,
            "persons": [
              {
                "personId": 1001,
                "name": "ユ・ジェソク",
                "profileUrl": "https://kr.object.ncloudstorage.com/.../jiho0.jpg?X-Amz-..."
              }
            ],
            "scripts": [
              {
                "startMs": 124000,
                "endMs": 124500,
                "text": "危ない、隠れろ!",
                "name": "話者2",
                "personId": 1001
              }
            ],
            "queryRef": [
              {
                "queryType": "DIALOGUE",
                "conditionType": "ANY",
                "matchedValues": ["危ない"]
              }
            ]
          }
        ]
      }
    ]
  }
}