Model text-to-video Wan menghasilkan video yang mulus dari text prompts .
Referensi: Panduan pengguna
Ketersediaan
Untuk memastikan pemanggilan berhasil, model, URL Endpoint, dan Kunci API harus berada di wilayah yang sama. Pemanggilan lintas-wilayah akan gagal.
- Pilih model: Konfirmasi wilayah model tersebut.
- Pilih URL: Gunakan URL Endpoint regional yang sesuai. Didukung URL HTTP dan URL SDK DashScope.
- Konfigurasikan Kunci API: Pilih wilayah, dapatkan Kunci API, lalu konfigurasikan Kunci API sebagai Variabel lingkungan (fitur ini akan segera digabung ke dalam konfigurasi Kunci API).
- Instal SDK: Untuk melakukan pemanggilan menggunakan SDK, Anda harus menginstal SDK DashScope.
CatatanKode contoh dalam topik ini berlaku untuk wilayah Singapura.
PentingAlibaba Cloud Model Studio telah merilis domain khusus ruang kerja untuk wilayah China (Beijing) dan Singapura. Domain khusus baru ini memberikan performa lebih unggul dan stabilitas lebih tinggi untuk permintaan inferensi. Kami merekomendasikan migrasi ke domain baru:
- China (Beijing): dari
https://dashscope.aliyuncs.comkehttps://{WorkspaceId}.cn-beijing.maas.aliyuncs.com - Singapura: dari
https://dashscope-intl.aliyuncs.comkehttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
{WorkspaceId} adalah ID ruang kerja Anda, yang dapat ditemukan di halaman Detail Ruang Kerja pada Konsol Alibaba Cloud Model Studio. Domain yang ada tetap berfungsi penuh.
HTTP
PentingAPI ini menggunakan protokol lama dan mendukung model wan2.6 serta versi sebelumnya (wan2.5/wan2.2/wan2.1).
Karena tugas text-to-video memerlukan waktu lama (biasanya 1 hingga 5 menit), API ini menggunakan pemanggilan asinkron. Seluruh proses mencakup dua langkah utama: Buat tugas → Polling hasil. Alurnya sebagai berikut:
Langkah 1: Buat tugas dan dapatkan ID tugas
Singapura
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Virginia
POST https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Frankfurt
POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Beijing
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Catatan
- Setelah tugas dibuat, gunakan
task_idyang dikembalikan untuk menanyakan hasilnya.task_idberlaku selama 24 jam. Jangan membuat tugas duplikat. Sebagai gantinya, gunakan polling untuk mengambil hasilnya. - Untuk panduan pemula, lihat Panggil API dengan Postman atau cURL.
Parameter permintaanHeader permintaanContent-Type Tipe konten permintaan. Harus Authorization Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx. X-DashScope-Async Mengaktifkan pemrosesan asinkron. Permintaan HTTP hanya mendukung pemanggilan asinkron. Harus PentingJika header permintaan ini tidak ada, kesalahan "current user api does not support synchronous calls" dikembalikan. Body permintaanmodel Nama model yang akan digunakan. Untuk daftar model yang tersedia, lihat daftar model. Contoh: wan2.6-t2v. input Berisi informasi input dasar, seperti prompt. parameters Parameter pemrosesan video, seperti mengatur resolusi video, mengaktifkan penulisan ulang prompt, dan menambahkan Watermark. | Narasi multi-shot
Sediakan file audioModel yang didukung: model seri wan2.6/wan2.5. Anda dapat menyediakan URL file audio kustom menggunakan parameter Dubbing otomatisModel yang didukung: model seri wan2.6/wan2.5. Jika Anda tidak menyediakan Hasilkan video tanpa suaraHanya model seri wan2.2 dan wan2.1 yang mendukung pembuatan video tanpa suara. Model-model ini menghasilkan video tanpa suara secara default dan tidak memerlukan konfigurasi tambahan.
Gunakan prompt negatifModel yang didukung: Semua model. Gunakan parameter negative_prompt untuk mengecualikan elemen "bunga" dan mencegahnya muncul dalam video. |
Parameter responsoutput Berisi informasi output tugas. request_id Pengidentifikasi permintaan unik untuk pelacakan dan troubleshooting. code Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan. message Pesan kesalahan terperinci. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan. | Respons berhasilSimpan Respons errorPembuatan tugas gagal. Lihat Kode kesalahan. |
Langkah 2: Tanyakan hasil berdasarkan ID tugas
Singapura
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Virginia
GET https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Frankfurt
GET https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Beijing
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Catatan
- Rekomendasi polling: Pembuatan video memerlukan beberapa menit. Gunakan mekanisme polling dengan interval yang masuk akal, misalnya 15 detik.
- Transisi status tugas: PENDING → RUNNING → SUCCEEDED atau FAILED.
- Tautan hasil: Setelah tugas berhasil, URL video yang berlaku selama 24 jam dikembalikan. Unduh dan simpan video ke penyimpanan permanen, seperti OSS.
task_idmasa berlaku: 24 jam. Setelah periode ini, kueri mengembalikan status tugas sebagaiUNKNOWN.
Parameter permintaanHeader permintaanAuthorization Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx. Parameter path URLtask_id ID tugas. | Tanyakan hasil tugasGanti |
Parameter responsoutput Berisi informasi output tugas. usage Berisi statistik tentang output. Informasi ini hanya diberikan untuk tugas yang berhasil. request_id Pengidentifikasi permintaan unik untuk pelacakan dan troubleshooting. | Tugas berhasilURL video hanya berlaku selama 24 jam, lalu secara otomatis dihapus. Segera simpan video yang dihasilkan. Tugas gagalSaat tugas gagal, Kueri tugas kedaluwarsa
|
DashScope SDK
Nama parameter dalam SDK sebagian besar konsisten dengan API HTTP, dan struktur parameter dienkapsulasi agar sesuai dengan fitur bahasa pemrograman.
Karena tugas text-to-video memerlukan waktu lama untuk diselesaikan (biasanya 1 hingga 5 menit), SDK mengenkapsulasi proses pemanggilan asinkron HTTP dan mendukung metode pemanggilan sinkron maupun asinkron.
Waktu pemrosesan aktual bergantung pada jumlah tugas dalam antrian dan status layanan. Tunggu hasilnya.
Python
PentingPastikan versi SDK Python DashScope Anda minimal1.25.16 sebelum menjalankan kode berikut.
Jika Anda menggunakan versi lama, Anda mungkin mengalami kesalahan seperti "url error, please check url!". Untuk memperbarui SDK, lihat Instal SDK.
Atur dashscope.base_http_api_url berdasarkan wilayah tempat model berada:
Singapura
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Virginia
dashscope.base_http_api_url = 'https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1'
Beijing
dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Frankfurt
dashscope.base_http_api_url = 'https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1'
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Pemanggilan sinkron
Contoh permintaan
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os
# URL untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL bervariasi berdasarkan wilayah. Untuk informasi lebih lanjut, lihat https://www.alibabacloud.com/help/en/model-studio/text-to-video-api-reference.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# Jika tidak ada variabel lingkungan yang dikonfigurasi, ganti dengan Kunci API Model Studio Anda: api_key="sk-xxx".
# Kunci API bervariasi berdasarkan wilayah. Untuk informasi lebih lanjut, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key.
api_key = os.getenv("DASHSCOPE_API_KEY")
def sample_sync_call_t2v():
# Panggil API sinkron dan kembalikan hasilnya.
print('Mohon tunggu...')
rsp = VideoSynthesis.call(api_key=api_key,
model='wan2.6-t2v',
prompt="Shot dari sudut rendah, close-up medium, dengan nada hangat, pencahayaan campuran (cahaya praktis dari lampu meja menyatu dengan cahaya mendung dari jendela), pencahayaan samping, dan komposisi sentral. Di kantor detektif klasik, rak buku kayu dipenuhi berkas kasus lama dan asbak. Lampu meja hijau menerangi berkas kasus yang tersebar di tengah meja. Seekor rubah, mengenakan trench coat coklat tua dan fedora abu-abu muda, duduk di kursi kulit, bulunya merah tua, ekornya bertumpu ringan di tepi, jarinya perlahan membalik halaman-halaman yang menguning. Di luar, gerimis ringan turun di bawah langit biru, meninggalkan jejak berkelok di kaca. Perlahan ia mengangkat kepala, telinganya bergerak sedikit, matanya yang kuning keemasan menatap langsung ke kamera, mulutnya jelas bergerak saat berbicara dengan suara halus dan sinis: 'Kasus ini dingin, lebih dingin dari ikan di musim dingin. Tapi setiap ayam punya rahasia, dan saya, untuk satu hal, berniat menemukannya.'",
audio_url='https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250929/stjqnq/%E7%8B%90%E7%8B%B8.mp3',
size='1280*720',
duration=10,
negative_prompt="",
prompt_extend=True,
watermark=False,
seed=12345)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output.video_url)
else:
print('Gagal. Kode status: %s, kode: %s, pesan: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
sample_sync_call_t2v()
Contoh respons
video_url berlaku selama 24 jam. Segera unduh.
{
"status_code": 200,
"request_id": "167f3beb-3dd0-47fe-a83c-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "5b65411f-d946-4e29-859e-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-bj.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
"submit_time": "2025-10-23 11:47:23.879",
"scheduled_time": "2025-10-23 11:47:34.351",
"end_time": "2025-10-23 11:52:35.323",
"orig_prompt": "Shot dari sudut rendah, close-up medium, dengan nada hangat, pencahayaan campuran (cahaya praktis dari lampu meja menyatu dengan cahaya mendung dari jendela), pencahayaan samping, dan komposisi sentral. Di kantor detektif klasik, rak buku kayu dipenuhi berkas kasus lama dan asbak. Lampu meja hijau menerangi berkas kasus yang tersebar di tengah meja. Seekor rubah, mengenakan trench coat coklat tua dan fedora abu-abu muda, duduk di kursi kulit, bulunya merah tua, ekornya bertumpu ringan di tepi, jarinya perlahan membalik halaman-halaman yang menguning. Di luar, gerimis ringan turun di bawah langit biru, meninggalkan jejak berkelok di kaca. Perlahan ia mengangkat kepala, telinganya bergerak sedikit, matanya yang kuning keemasan menatap langsung ke kamera, mulutnya jelas bergerak saat berbicara dengan suara halus dan sinis: 'Kasus ini dingin, lebih dingin dari ikan di musim dingin. Tapi setiap ayam punya rahasia, dan saya, untuk satu hal, berniat menemukannya '."
},
"usage": {
"video_count": 1,
"duration": 10,
"size": "1280*720",
"input_video_duration": 0,
"output_video_duration": 10,
"SR": 720
}
}
Pemanggilan asinkron
Contoh permintaan
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os
# Ini adalah URL wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL bervariasi berdasarkan wilayah. Untuk informasi lebih lanjut, lihat: https://www.alibabacloud.com/help/en/model-studio/text-to-video-api-reference
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# Jika variabel lingkungan tidak dikonfigurasi, ganti ini dengan Kunci API Model Studio Anda: api_key="sk-xxx"
# Kunci API bervariasi berdasarkan wilayah. Untuk informasi lebih lanjut, lihat: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
def sample_async_call_t2v():
# Panggil API asinkron dan kembalikan informasi tugas.
# Gunakan ID tugas untuk memeriksa status.
rsp = VideoSynthesis.async_call(api_key=api_key,
model='wan2.6-t2v',
prompt="Shot dari sudut rendah, close-up medium, dengan nada hangat, pencahayaan campuran (cahaya praktis dari lampu meja menyatu dengan cahaya mendung dari jendela), pencahayaan samping, dan komposisi sentral. Di kantor detektif klasik, rak buku kayu dipenuhi berkas kasus lama dan asbak. Lampu meja hijau menerangi berkas kasus yang tersebar di tengah meja. Seekor rubah, mengenakan trench coat coklat tua dan fedora abu-abu muda, duduk di kursi kulit, bulunya merah tua, ekornya bertumpu ringan di tepi, jarinya perlahan membalik halaman-halaman yang menguning. Di luar, gerimis ringan turun di bawah langit biru, meninggalkan jejak berkelok di kaca. Perlahan ia mengangkat kepala, telinganya bergerak sedikit, matanya yang kuning keemasan menatap langsung ke kamera, mulutnya jelas bergerak saat berbicara dengan suara halus dan sinis: 'Kasus ini dingin, lebih dingin dari ikan di musim dingin. Tapi setiap ayam punya rahasia, dan saya, untuk satu hal, berniat menemukannya '.",
audio_url='https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250929/stjqnq/%E7%8B%90%E7%8B%B8.mp3',
size='1280*720',
duration=10,
negative_prompt="",
prompt_extend=True,
watermark=False,
seed=12345)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print("task_id: %s" % rsp.output.task_id)
else:
print('Gagal. Kode status: %s, kode: %s, pesan: %s' %
(rsp.status_code, rsp.code, rsp.message))
# Ambil informasi tugas, termasuk status tugas.
status = VideoSynthesis.fetch(task=rsp, api_key=api_key)
if status.status_code == HTTPStatus.OK:
print(status.output.task_status) # Periksa status tugas.
else:
print('Gagal. Kode status: %s, kode: %s, pesan: %s' %
(status.status_code, status.code, status.message))
# Tunggu hingga tugas selesai. Metode ini memanggil fetch secara berkala dan memeriksa apakah tugas berada dalam status selesai.
rsp = VideoSynthesis.wait(task=rsp, api_key=api_key)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output.video_url)
else:
print('Gagal. Kode status: %s, kode: %s, pesan: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
sample_async_call_t2v()
Contoh respons
- Contoh respons terhadap permintaan pembuatan tugas
{
"status_code": 200,
"request_id": "c86ff7ba-8377-917a-90ed-xxxxxx",
"code": "",
"message": "",
"output": {
"task_id": "721164c6-8619-4a35-a6d9-xxxxxx",
"task_status": "PENDING",
"video_url": ""
},
"usage": null
}
- Contoh respons terhadap permintaan kueri tugas
URL video kedaluwarsa dalam 24 jam. Harap unduh video sebelum kedaluwarsa.
{
"status_code": 200,
"request_id": "167f3beb-3dd0-47fe-a83c-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "5b65411f-d946-4e29-859e-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-bj.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
"submit_time": "2025-10-23 11:47:23.879",
"scheduled_time": "2025-10-23 11:47:34.351",
"end_time": "2025-10-23 11:52:35.323",
"orig_prompt": "Shot dari sudut rendah, close-up medium, dengan nada hangat, pencahayaan campuran (cahaya praktis dari lampu meja menyatu dengan cahaya mendung dari jendela), pencahayaan samping, dan komposisi sentral. Di kantor detektif klasik, rak buku kayu dipenuhi berkas kasus lama dan asbak. Lampu meja hijau menerangi berkas kasus yang tersebar di tengah meja. Seekor rubah, mengenakan trench coat coklat tua dan fedora abu-abu muda, duduk di kursi kulit, bulunya merah tua, ekornya bertumpu ringan di tepi, jarinya perlahan membalik halaman-halaman yang menguning. Di luar, gerimis ringan turun di bawah langit biru, meninggalkan jejak berkelok di kaca. Perlahan ia mengangkat kepala, telinganya bergerak sedikit, matanya yang kuning keemasan menatap langsung ke kamera, mulutnya jelas bergerak saat berbicara dengan suara halus dan sinis: 'Kasus ini dingin, lebih dingin dari ikan di musim dingin. Tapi setiap ayam punya rahasia, dan saya, untuk satu hal, berniat menemukannya '."
},
"usage": {
"video_count": 1,
"duration": 10,
"size": "1280*720",
"input_video_duration": 0,
"output_video_duration": 10,
"SR": 720
}
}
Java
PentingPastikan versi kit pengembangan perangkat lunak (SDK) Java DashScope Anda minimal2.22.14 sebelum menjalankan kode berikut.
Jika Anda menggunakan versi lama, Anda mungkin mengalami kesalahan seperti "url error, please check url!". Untuk memperbarui SDK, lihat Instal SDK.
Atur Constants.baseHttpApiUrl berdasarkan wilayah tempat model berada:
Singapura
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Virginia
Constants.baseHttpApiUrl = "https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1";
Beijing
Constants.baseHttpApiUrl = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Frankfurt
Constants.baseHttpApiUrl = "https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1";
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda.
Pemanggilan sinkron
Contoh permintaan
// Copyright (c) Alibaba, Inc. dan afiliasinya.
// SDK dashscope versi 2.18.2 atau lebih baru
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisParam;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
import java.util.HashMap;
import java.util.Map;
public class Text2Video {
static {
// URL wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL bervariasi berdasarkan wilayah. Untuk informasi lebih lanjut, lihat https://www.alibabacloud.com/help/en/model-studio/text-to-video-api-reference.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// Jika tidak ada variabel lingkungan yang dikonfigurasi, ganti nilai ini dengan Kunci API Model Studio Anda: apiKey = "sk-xxx".
// Kunci API bervariasi berdasarkan wilayah. Untuk informasi lebih lanjut, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key.
public static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void text2Video() throws ApiException, NoApiKeyException, InputRequiredException {
VideoSynthesis vs = new VideoSynthesis();
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", 12345);
VideoSynthesisParam param =
VideoSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.6-t2v")
.prompt("Shot dari sudut rendah, close-up medium, dengan nada hangat, pencahayaan campuran (cahaya praktis dari lampu meja menyatu dengan cahaya mendung dari jendela), pencahayaan samping, dan komposisi sentral. Di kantor detektif klasik, rak buku kayu dipenuhi berkas kasus lama dan asbak. Lampu meja hijau menerangi berkas kasus yang tersebar di tengah meja. Seekor rubah, mengenakan trench coat coklat tua dan fedora abu-abu muda, duduk di kursi kulit, bulunya merah tua, ekornya bertumpu ringan di tepi, jarinya perlahan membalik halaman-halaman yang menguning. Di luar, gerimis ringan turun di bawah langit biru, meninggalkan jejak berkelok di kaca. Perlahan ia mengangkat kepala, telinganya bergerak sedikit, matanya yang kuning keemasan menatap langsung ke kamera, mulutnya jelas bergerak saat berbicara dengan suara halus dan sinis: 'Kasus ini dingin, lebih dingin dari ikan di musim dingin. Tapi setiap ayam punya rahasia, dan saya, untuk satu hal, berniat menemukannya'.")
.audioUrl("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250929/stjqnq/%E7%8B%90%E7%8B%B8.mp3")
.negativePrompt("")
.size("1280*720")
.duration(10)
.parameters(parameters)
.build();
System.out.println("Mohon tunggu...");
VideoSynthesisResult result = vs.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
text2Video();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
Contoh respons
video_url berlaku selama 24 jam. Segera unduh.
{
"request_id": "c1209113-8437-424f-a386-xxxxxx",
"output": {
"task_id": "966cebcd-dedc-4962-af88-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
"orig_prompt": "Shot dari sudut rendah, close-up medium, dengan nada hangat, pencahayaan campuran (cahaya praktis dari lampu meja menyatu dengan cahaya mendung dari jendela), pencahayaan samping, dan komposisi sentral. Di kantor detektif klasik, rak buku kayu dipenuhi berkas kasus lama dan asbak. Lampu meja hijau menerangi berkas kasus yang tersebar di tengah meja. Seekor rubah, mengenakan trench coat coklat tua dan fedora abu-abu muda, duduk di kursi kulit, bulunya merah tua, ekornya bertumpu ringan di tepi, jarinya perlahan membalik halaman-halaman yang menguning. Di luar, gerimis ringan turun di bawah langit biru, meninggalkan jejak berkelok di kaca. Perlahan ia mengangkat kepala, telinganya bergerak sedikit, matanya yang kuning keemasan menatap langsung ke kamera, mulutnya jelas bergerak saat berbicara dengan suara halus dan sinis: 'Kasus ini dingin, lebih dingin dari ikan di musim dingin. Tapi setiap ayam punya rahasia, dan saya, untuk satu hal, berniat menemukannya '",
"submit_time": "2026-01-22 23:13:40.553",
"scheduled_time": "2026-01-22 23:13:49.415",
"end_time": "2026-01-22 23:17:56.380"
},
"usage": {
"video_count": 1,
"duration": 10.0,
"size": "1280*720",
"input_video_duration": 0,
"output_video_duration": 10,
"SR": 720
},
"status_code": 200,
"code": "",
"message": ""
}
Pemanggilan asinkron
Contoh permintaan
// Copyright (c) Alibaba, Inc. dan afiliasinya.
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisListResult;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisParam;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.task.AsyncTaskListParam;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
import java.util.HashMap;
import java.util.Map;
public class Text2Video {
static {
// URL untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL bervariasi berdasarkan wilayah. Untuk informasi lebih lanjut, lihat https://www.alibabacloud.com/help/en/model-studio/text-to-video-api-reference
Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// Jika variabel lingkungan tidak diatur, ganti placeholder ini dengan Kunci API Model Studio Anda, misalnya: apiKey="sk-xxx"
// Kunci API bervariasi berdasarkan wilayah. Untuk informasi lebih lanjut, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
public static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void text2Video() throws ApiException, NoApiKeyException, InputRequiredException {
VideoSynthesis vs = new VideoSynthesis();
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", 12345);
VideoSynthesisParam param =
VideoSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.6-t2v")
.prompt("Shot dari sudut rendah, close-up medium, dengan nada hangat, pencahayaan campuran (cahaya praktis dari lampu meja menyatu dengan cahaya mendung dari jendela), pencahayaan samping, dan komposisi sentral. Di kantor detektif klasik, rak buku kayu dipenuhi berkas kasus lama dan asbak. Lampu meja hijau menerangi berkas kasus yang tersebar di tengah meja. Seekor rubah, mengenakan trench coat coklat tua dan fedora abu-abu muda, duduk di kursi kulit, bulunya merah tua, ekornya bertumpu ringan di tepi, jarinya perlahan membalik halaman-halaman yang menguning. Di luar, gerimis ringan turun di bawah langit biru, meninggalkan jejak berkelok di kaca. Perlahan ia mengangkat kepala, telinganya bergerak sedikit, matanya yang kuning keemasan menatap langsung ke kamera, mulutnya jelas bergerak saat berbicara dengan suara halus dan sinis: 'Kasus ini dingin, lebih dingin dari ikan di musim dingin. Tapi setiap ayam punya rahasia, dan saya, untuk satu hal, berniat menemukannya '.")
.audioUrl("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250929/stjqnq/%E7%8B%90%E7%8B%B8.mp3")
.negativePrompt("")
.size("1280*720")
.duration(10)
.parameters(parameters)
.build();
// Lakukan pemanggilan asinkron.
VideoSynthesisResult task = vs.asyncCall(param);
System.out.println(JsonUtils.toJson(task));
System.out.println("mohon tunggu...");
// Ambil hasilnya.
VideoSynthesisResult result = vs.wait(task, apiKey);
System.out.println(JsonUtils.toJson(result));
}
// Ambil daftar tugas.
public static void listTask() throws ApiException, NoApiKeyException {
VideoSynthesis is = new VideoSynthesis();
AsyncTaskListParam param = AsyncTaskListParam.builder().build();
param.setApiKey(apiKey);
VideoSynthesisListResult result = is.list(param);
System.out.println(result);
}
// Ambil hasil satu tugas.
public static void fetchTask(String taskId) throws ApiException, NoApiKeyException {
VideoSynthesis is = new VideoSynthesis();
// Jika Anda mengatur variabel lingkungan DASHSCOPE_API_KEY, Anda bisa mengatur apiKey ke null.
VideoSynthesisResult result = is.fetch(taskId, apiKey);
System.out.println(result.getOutput());
System.out.println(result.getUsage());
}
public static void main(String[] args) {
try {
text2Video();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
Contoh respons
- Contoh respons terhadap permintaan pembuatan tugas.
{
"request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}
- Contoh respons terhadap permintaan kueri tugas
video_url berlaku selama 24 jam. Segera unduh.
{
"request_id": "c1209113-8437-424f-a386-xxxxxx",
"output": {
"task_id": "966cebcd-dedc-4962-af88-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
"orig_prompt": "Shot dari sudut rendah, close-up medium, dengan nada hangat, pencahayaan campuran (cahaya praktis dari lampu meja menyatu dengan cahaya mendung dari jendela), pencahayaan samping, dan komposisi sentral. Di kantor detektif klasik, rak buku kayu dipenuhi berkas kasus lama dan asbak. Lampu meja hijau menerangi berkas kasus yang tersebar di tengah meja. Seekor rubah, mengenakan trench coat coklat tua dan fedora abu-abu muda, duduk di kursi kulit, bulunya merah tua, ekornya bertumpu ringan di tepi, jarinya perlahan membalik halaman-halaman yang menguning. Di luar, gerimis ringan turun di bawah langit biru, meninggalkan jejak berkelok di kaca. Perlahan ia mengangkat kepala, telinganya bergerak sedikit, matanya yang kuning keemasan menatap langsung ke kamera, mulutnya jelas bergerak saat berbicara dengan suara halus dan sinis: 'Kasus ini dingin, lebih dingin dari ikan di musim dingin. Tapi setiap ayam punya rahasia, dan saya, untuk satu hal, berniat menemukannya '",
"submit_time": "2026-01-22 23:13:40.553",
"scheduled_time": "2026-01-22 23:13:49.415",
"end_time": "2026-01-22 23:17:56.380"
},
"usage": {
"video_count": 1,
"duration": 10.0,
"size": "1280*720",
"input_video_duration": 0,
"output_video_duration": 10,
"SR": 720
},
"status_code": 200,
"code": "",
"message": ""
}
Kode kesalahan
Jika pemanggilan model gagal dan mengembalikan pesan kesalahan, lihat Kode kesalahan untuk penyelesaian.
FAQ
T: Bagaimana cara mengonversi tautan video sementara menjadi tautan permanen?
J: Anda tidak dapat mengonversi tautan secara langsung. Prosedur yang benar adalah layanan backend Anda mengambil URL tersebut, mengunduh file videonya, lalu mengunggahnya ke layanan penyimpanan objek permanen, seperti Alibaba Cloud Object Storage Service (OSS), untuk menghasilkan tautan akses permanen baru.
Kode contoh: Unduh video ke perangkat lokal
import requests
def download_and_save_video(video_url, save_path):
try:
response = requests.get(video_url, stream=True, timeout=300) # Atur timeout
response.raise_for_status() # Bangkitkan pengecualian jika kode status HTTP bukan 200
with open(save_path, 'wb') as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
print(f"Video berhasil diunduh ke: {save_path}")
# Tambahkan logika untuk mengunggah ke penyimpanan permanen di sini
except requests.exceptions.RequestException as e:
print(f"Gagal mengunduh video: {e}")
if __name__ == '__main__':
video_url = "http://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxxx"
save_path = "video.mp4"
download_and_save_video(video_url, save_path)
T: Apakah tautan video yang dikembalikan dapat diputar langsung di browser?
J: Tidak. Anda sebaiknya tidak memutar tautan tersebut langsung di browser karena akan kedaluwarsa setelah 24 jam. Sebagai gantinya, Anda harus mengunduh dan menyimpan video tersebut, lalu menggunakan tautan permanen untuk pemutaran.