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:
-
Masuk ke Konsol ApsaraVideo VOD.
-
Pada panel navigasi sebelah kiri, pilih Media Files > Audio/Video.
-
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
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
PageNodanPageSizeuntuk mengambil data per halaman. Metode ini hanya dapat mengakses 5.000 hasil pertama. -
Scrolling (untuk ekspor data)
Gunakan parameter paginasi
PageNodanPageSizeserta token scrollScrollTokenuntuk 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.
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
Permintaan contoh:
|
Pencocokan tepat |
Untuk mencari aset media dengan
Permintaan contoh:
|
Pencocokan kabur |
Jika
atau
Permintaan contoh:
|
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
Permintaan contoh:
|
Kueri rentang |
Untuk mencari aset media dengan
Permintaan contoh:
Jika Anda hanya menentukan batas kiri atau kanan, biarkan nilai batas lainnya kosong. Misalnya, tentukan bahwa
Permintaan contoh:
|
Bidang pengurutan | Urutkan informasi aset media berdasarkan waktu pembuatan dalam urutan kronologis terbalik: Permintaan contoh: |