All Products
Search
Document Center

ApsaraVideo VOD:Kueri informasi aset media

Last Updated:Jun 21, 2026

Saat pustaka media Anda berisi koleksi besar file audio, video, dan gambar, menemukan aset tertentu dengan cepat menjadi tantangan. Fitur pencarian aset media di ApsaraVideo VOD menyediakan kemampuan pencarian, penyaringan, dan pengurutan multidimensi yang andal, memungkinkan Anda mengambil aset media yang dibutuhkan secara efisien dari kumpulan data masif melalui Konsol atau API/SDK.

Skenario 1: Pencarian di Konsol

Ikuti langkah-langkah berikut untuk mencari aset audio atau video:

  1. Masuk ke Konsol ApsaraVideo VOD.

  2. Pada panel navigasi sebelah kiri, pilih Media Files > Audio/Video.

  3. Gunakan fitur filter dan pencarian di bagian atas halaman untuk menemukan aset media.

    • Pencarian: Mendukung pencarian fuzzy berdasarkan Video Title dan pencarian tepat berdasarkan Media ID atau Tag Name.

    • Penyaringan: Mendukung penyaringan file audio/video berdasarkan Address, Type, Category, Status, Source, dan storage type. Anda juga dapat mengurutkan hasil berdasarkan Created At dalam urutan menaik atau menurun.

Skenario 2: Pencarian menggunakan API dan SDK

Catatan

Kami merekomendasikan penggunaan SDK sisi server untuk mencari aset media. Untuk informasi selengkapnya, lihat Petunjuk penggunaan VOD SDK.

Operasi API SearchMedia memungkinkan Anda mengintegrasikan kemampuan pencarian ke dalam sistem bisnis Anda. Bidang yang dapat disaring mencakup VideoId, CateId, StorageLocation, Title, Tags, dan lainnya. Untuk detailnya, lihat protokol untuk pencarian aset media. Kode berikut memberikan contoh:

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) {
        // Inisialisasi klien.
        DefaultProfile profile = DefaultProfile.getProfile(
            "cn-shanghai",          // ID wilayah.
            "YOUR_ACCESS_KEY_ID",   // ID AccessKey Anda.
            "YOUR_ACCESS_KEY_SECRET"// Rahasia AccessKey Anda.
        );
        IAcsClient client = new DefaultAcsClient(profile);
        // Bangun permintaan.
        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("Terjadi kesalahan: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
from aliyunsdkcore.client import AcsClient
from aliyunsdkvod.request.v20170321 import SearchMediaRequest
import json
# Inisialisasi klien.
client = AcsClient(
    'YOUR_ACCESS_KEY_ID', 
    'YOUR_ACCESS_KEY_SECRET', 
    'cn-shanghai'
)
# Bangun permintaan.
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"Terjadi kesalahan: {e}")

Paginasi dan traversing data

Untuk memastikan kinerja kueri, pencarian aset media menyediakan dua mode paginasi.

  • Paginasi standar (untuk tampilan UI)

    Gunakan parameter paginasi PageNo dan PageSize untuk mengambil data per halaman. Metode ini hanya dapat mengakses 5.000 hasil pertama.

  • Scrolling (untuk ekspor data)

    Gunakan parameter paginasi PageNo dan PageSize serta token scroll ScrollToken untuk melakukan traversing terhadap semua hasil. Metode ini mengambil hasil dalam segmen hingga 1.200 catatan per segmen. Kode berikut memberikan contoh:

    // Contoh scrolling
    String scrollToken = null;
    // SessionId harus tetap tidak berubah selama traversing lengkap.
    String sessionId = java.util.UUID.randomUUID().toString(); 
    List<SearchMediaResponse.Media> allMedia = new ArrayList<>();
    do {
        SearchMediaRequest request = new SearchMediaRequest();
        request.setPageSize(100); // Ambil hingga 100 catatan sekaligus.
        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();
    // Jika scrollToken yang dikembalikan null atau kosong, semua data telah ditraversing.
    } while (scrollToken != null && !scrollToken.isEmpty());
    

Contoh pemanggilan API

Kode contoh pada bagian berikut menjelaskan pernyataan kueri yang digunakan untuk mengkueri informasi video.

Penting
  • Sebelum mengirim permintaan, Anda harus melakukan URL encoding terhadap parameter permintaan.

  • Tanda sama dengan (=), tanda kutip ganda ("), tanda kutip tunggal ('), dan tanda kurung yang digunakan dalam pernyataan harus berupa karakter single-byte.

Item

Deskripsi

Bidang yang dikembalikan

Secara default, operasi API SearchMedia mengembalikan informasi dasar tentang aset media. Untuk menyertakan informasi tambahan, tentukan parameter Fields. Contoh berikut menunjukkan cara menyertakan Title dan CoverURL dalam hasil kueri:

Fields=Title,CoverURL

Permintaan contoh:

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

Pencocokan tepat

Untuk mencari aset media dengan VideoId bernilai 28ba2b26d540446c94cdd2c4c48090e5:

VideoId='28ba2b26d540446c94cdd2c4c48090e5'

Permintaan contoh:

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

Pencocokan kabur

Jika Title mengandung music, Anda dapat menuliskannya sebagai:

Title='Music'

atau

Title in ('Music')

Permintaan contoh:

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

Kueri multi-nilai

Catatan: Jika bidang yang digunakan untuk kueri hanya mendukung pencocokan kabur, hasil kueri juga dikembalikan berdasarkan pencocokan kabur.

Untuk mencari aset media dengan Status bernilai Normal atau Checking:

Status in ('Normal','Checking')

Permintaan contoh:

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

Kueri rentang

Untuk mencari aset media dengan CreationTime antara 2018-01-01T00:00:00Z dan 2018-02-01T00:00:00Z:

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

Permintaan contoh:

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

Jika Anda hanya menentukan batas kiri atau kanan, biarkan nilai batas lainnya kosong. Misalnya, tentukan bahwa CreationTime lebih besar dari 2018-01-01T00:00:00Z:

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

Permintaan contoh:

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

Bidang pengurutan

Urutkan informasi aset media berdasarkan waktu pembuatan dalam urutan kronologis terbalik:

CreationTime:Desc

Permintaan contoh:

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

Referensi