すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo VOD:メディアアセット情報の検索

最終更新日:Feb 11, 2026

ご利用のライブラリに多数の音声、動画、画像ファイルが含まれている場合、特定のメディアアセットを特定するのは困難です。ApsaraVideo VOD (VOD) では、複数のディメンションにわたってアセットを検索・フィルター・ソートできる強力なメディア検索機能を提供しています。コンソールまたは API や SDK を使用して、大規模なデータセットから必要なメディアアセットを効率的かつ正確に取得できます。

シナリオ 1:コンソールを使用した検索

音声または動画情報を検索するには、次の手順を実行します。

  1. ApsaraVideo VOD コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、メディアファイル > 音声/動画 を選択し、音声/動画管理ページに移動します。

  3. ページ上部のフィルターおよび検索機能を使用して、メディアアセットを特定します。搜索媒资信息1.png

    • 検索:メディア名についてはあいまい検索を、メディア IDおよびタグ名については完全一致検索をサポートしています。

    • フィルター:音声および動画ファイルをストレージアドレスタイプ分類ステータスソース、およびストレージクラスでフィルターできます。また、結果を作成日時で昇順または降順にソートすることも可能です。

シナリオ 2:API または SDK を使用したメディアアセットの検索

説明

API を呼び出してメディアアセット情報を検索するには、サーバー側のソフトウェア開発キット(SDK)を使用します。詳細については、「VOD SDK」をご参照ください。

SearchMedia 操作を使用して、検索機能を業務システムに統合し、メディアアセットの取得を自動化できます。VideoIdCateIdStorageLocationTitle、およびTagsなどのフィールドでメディアアセットをフィルターできます。詳細については、「メディアアセット検索プロトコル」をご参照ください。以下のコードはその例です。

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vod.model.v20170321.SearchMediaRequest;
import com.aliyuncs.vod.model.v20170321.SearchMediaResponse;

public class SearchMediaExample {
    public static void main(String[] args) {
        // クライアントを初期化します。
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-shanghai",          // リージョン ID。
            "YOUR_ACCESS_KEY_ID",   // AccessKey ID。
            "YOUR_ACCESS_KEY_SECRET"// AccessKey Secret。
        );
        IAcsClient client = new DefaultAcsClient(profile);
        
        // リクエストを構築します。
        SearchMediaRequest request = new SearchMediaRequest();
        request.setMatch("Title='VOD' AND Status='Normal'");
        request.setFields("Title,CoverURL,Duration,Size");
        request.setSortBy("CreationTime:Desc");
        request.setPageSize(20);
        request.setPageNo(1);
        
        try {
            SearchMediaResponse response = client.getAcsResponse(request);
            System.out.println("Total Records: " + response.getTotal());
            for (SearchMediaResponse.Media media : response.getMediaList()) {
                System.out.println("VideoId: " + media.getMediaId() + ", Title: " + media.getVideo().getTitle());
            }
        } catch (Exception e) {
            System.err.println("An error occurred: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
from aliyunsdkcore.client import AcsClient
from aliyunsdkvod.request.v20170321 import SearchMediaRequest
import json

# クライアントを初期化します。
client = AcsClient(
    'YOUR_ACCESS_KEY_ID', 
    'YOUR_ACCESS_KEY_SECRET', 
    'cn-shanghai'
)

# リクエストを構築します。
request = SearchMediaRequest.SearchMediaRequest()
request.set_Match("Title='VOD' AND Status='Normal'")
request.set_Fields("Title,CoverURL,Duration,Size")
request.set_SortBy("CreationTime:Desc")
request.set_PageSize(20)
request.set_PageNo(1)

try:
    response_str = client.do_action_with_exception(request)
    response_data = json.loads(response_str)
    print(f"Total Records: {response_data.get('Total')}")
    for media in response_data.get('MediaList', {}).get('Media', []):
        print(f"VideoId: {media.get('MediaId')}, Title: {media.get('Video', {}).get('Title')}")
except Exception as e:
    print(f"An error occurred: {e}")

ページングとデータ走査

クエリパフォーマンスを確保するため、メディア検索では 2 種類のページングモードを提供しています。

  • 標準ページング(UI 表示用)

    PageNo および PageSize パラメーターを使用して、データをページ単位で取得します。検索結果の最初の 5,000 件まで取得できます。

  • スクロールベースの走査(データエクスポート用)

    PageNo および PageSize パラメーターと ScrollToken カーソルを使用して、深い階層の走査を実行します。この方法により、すべての検索結果をセグメント単位で取得できます。各セグメントは最大 1,200 件のレコードに制限されます。以下のコードはその例です。

    // スクロールベースの走査の例
    String scrollToken = null;
    // 完全な走査中は SessionId を同じ値に維持する必要があります。
    String sessionId = java.util.UUID.randomUUID().toString(); 
    List<SearchMediaResponse.Media> allMedia = new ArrayList<>();
    
    do {
        SearchMediaRequest request = new SearchMediaRequest();
        request.setPageSize(100); // 一度に最大 100 件のレコードを取得します。
        request.setSessionId(sessionId);
        
        if (scrollToken != null) {
            request.setScrollToken(scrollToken);
        }
        
        SearchMediaResponse response = client.getAcsResponse(request);
        if (response.getMediaList() != null) {
            allMedia.addAll(response.getMediaList());
        }
        
        scrollToken = response.getScrollToken();
        
    // ScrollToken が空または null の場合、すべてのデータの走査が完了しています。
    } while (scrollToken != null && !scrollToken.isEmpty());
    

API 呼び出しの例

以下のセクションのサンプルコードは、動画情報をクエリする際に使用するクエリ文について説明しています。

重要
  • リクエストを送信する前に、リクエストパラメーターに対して URL エンコーディングを実行する必要があります。

  • クエリ文で使用される等号(=)、二重引用符(")、一重引用符(')、および括弧は、すべて半角文字である必要があります。

分類

説明

返却フィールド

メディア検索操作では、デフォルトで基本的なメディアアセット情報が返されます。追加情報を取得するには、Fields パラメーターを指定します。以下の例では、Title および CoverURL を返します。

Fields=Title,CoverURL

リクエスト例:

http://vod.cn-shanghai.aliyuncs.com?Action=SearchMedia
&Fields=Title,CoverURL

完全一致

VideoId28ba2b26d540446c94cdd2c4c48090e5 の動画に関する情報をクエリします。

VideoId='28ba2b26d540446c94cdd2c4c48090e5'

リクエスト例:

http://vod.cn-shanghai.aliyuncs.com?Action=SearchMedia
&Match=VideoId='28ba2b26d540446c94cdd2c4c48090e5'

あいまい一致

TitleMusic を含むものを検索するには、以下を使用できます。

Title='Music'

または、次のように記述することも可能です。

Title in ('Music')

リクエスト例:

http://vod.cn-shanghai.aliyuncs.com?Action=SearchMedia
&Match=Title='Music'

複数値クエリ

注:クエリに使用するフィールドがあいまい一致のみをサポートしている場合、クエリ結果もあいまい一致に基づいて返されます。

StatusNormal または Checking のものをクエリします。

Status in ('Normal','Checking')

リクエスト例:

http://vod.cn-shanghai.aliyuncs.com?Action=SearchMedia
&Match=Status in ('Normal','Checking')

範囲クエリ

閉区間または開区間を使用して範囲を指定します。CreationTime2018-01-01T00:00:00Z から 2018-02-01T00:00:00Z の間の場合:

CreationTime=('2018-01-01T00:00:00Z','2018-02-01T00:00:00Z')

リクエスト例:

http://vod.cn-shanghai.aliyuncs.com?Action=SearchMedia
&Match=CreationTime=('2018-01-01T00:00:00Z','2018-02-01T00:00:00Z')

開始時間または終了時間のいずれか一方のみを指定する場合は、もう一方の値を空にしてください。たとえば、CreationTime2018-01-01T00:00:00Z より後の場合:

CreationTime=('2018-01-01T00:00:00Z',)

リクエスト例:

http://vod.cn-shanghai.aliyuncs.com?Action=SearchMedia
&Match=CreationTime=('2018-01-01T00:00:00Z',)

ソートフィールド

作成日時を基準に、メディアアセット情報を新しい順にソートします。

CreationTime:Desc

リクエスト例:

http://vod.cn-shanghai.aliyuncs.com?Action=SearchMedia
&SortBy=CreationTime:Desc

参考