Wan 3.0 API: Python ile metinden videoya ve görselden videoya
Tek betik iki klibi de üretti: kod, gerçek süreler ve Alibaba'nın saniye başına fiyatı.
Bu sayfada
- Resmî bir Wan 3.0 API var mı, hangi modeli kullanmalıyım?
- İlk çağrıdan önce ne gerekiyor?
- Hangi parametreler önemli?
- Python kodu nasıl görünüyor?
- İki çağrı ne üretti?
- Metinden videoya: demirci ocağı
- Görselden videoya: kâğıt tekne
- Ses açık mı, "no music" işe yarıyor mu?
- Video dosyasını nasıl alırsınız, bağlantılar ne kadar dayanır?
- Hangi hatalarla karşılaşırsınız?
- Bir Wan 3.0 klibi ne kadar?
- Sık sorulan sorular
- Bir çağrı ne kadar sürüyor?
- Sesi nasıl kapatırım?
- wan3.0-video mu wan3.0-video-prime mı kullanmalıyım?
- Video bağlantısı ne kadar dayanıyor?
- Kontrol edilen kaynaklar
Wan 3.0, Alibaba Cloud Model Studio'da wan3.0-video ve daha hızlı wan3.0-video-prime adlarıyla çalışıyor. Her çağrı asenkron: bir görev oluştur, kimliğini sorgula, MP4'ü indir. Python betiğimiz metinden 5 saniyelik 720P bir klibi 2 min 42 s'de, bir sabit görselden de 3 min 20 s'de üretti; ikisinde de ses var.
- Anahtarınızı
OMNIAKEY_API_KEYiçine koyun. https://api.omniakey.com/v1/media/tasksadresine model, işlem, prompt, parametreler ve yeni birIdempotency-Keyile POST gönderin.- Durum succeeded olana kadar
GET /v1/media/tasks/{id}sorgulayın, sonraassets[0].urladresini hemen indirin.
Resmî bir Wan 3.0 API var mı, hangi modeli kullanmalıyım?
Var. Resmî API Alibaba Cloud Model Studio; wan3.0-video ve wan3.0-video-prime ikisi de orada (başvuru kaynağı 15 Ekim 2026'da güncellendi). Oluşturma çağrısı X-DashScope-Async: enable başlığını istiyor, Alibaba'nın Python yolu ise DashScope SDK 2.0.1 veya üstü.
| Alibaba Model Studio | OmniaKey | |
|---|---|---|
| İki model kimliği | Var | Var |
| Async başlık | Gerekir | Gerekmez |
| Video bağlantısı | 24 saat | Yaklaşık 1 saat, yenilenir |
| Ücretlendirme | Saniye başına | Saniye başına |
| Python | DashScope SDK | Standart kütüphane |
İki kimlik de aynı gövdeyi alıyor, modu gönderdiğiniz medyadan model seçiyor. Aşağıdaki betik wan3.0-video ile çalışıyor, MODEL satırı modeli değiştiriyor. Wan 3.0 Prime ile çalıştırmadık; OmniaKey dokümanları onu aynı yetenekler, yaklaşık yarı süre olarak anlatıyor (31 Ekim 2026'da kontrol edildi).
İlk çağrıdan önce ne gerekiyor?
Üç şey gerekiyor, ilki anahtar:
-
Kabuğunuzda dışa aktarılmış bir OmniaKey API anahtarı:
bashexport OMNIAKEY_API_KEY="your-key" -
Python 3. Betik yalnızca standart kütüphaneyi içe aktarıyor, python3 onu olduğu gibi çalıştırıyor.
-
Görselden videoya geçiş için bir ilk kare: yaklaşık 1024 px genişliğinde bir JPEG ya da herkese açık bir HTTPS URL'si. Betik 700.000 baytı aşan dosyayı reddediyor, çünkü Base64 üçte bir ekliyor ve gövde sınırı 1 MiB (dokümanlar, 31 Ekim 2026'da kontrol edildi).
Hangi parametreler önemli?
İşin çoğunu yedi alan yapıyor ve her biri parameters içinde bir değer.
| Parametre | Ne yapar | Varsayılan |
|---|---|---|
| Süre | Klip uzunluğu, saniye | 5 |
| Çözünürlük | Görüntü boyutu sınıfı | 1080P |
| Oran | Kare şekli | adaptive |
| Ses | Ses parçası | açık |
| Seed | Tekrarlanabilirlik ipucu | -1 |
| Prompt extend | Promptunuzu yeniden yazar | açık |
| Watermark | Köşeye işaret ekler | kapalı |
Betik süreyi, çözünürlüğü ve oranı ayarlıyor. Alibaba'nın varsayılanı 1080P iken 720P istiyor; liste fiyatlarında 1080P saniye başına iki kat pahalı.
Python kodu nasıl görünüyor?
Aşağıdaki betik 31 Ekim 2026'da değiştirilmeden çalıştı: yalnızca standart kütüphane, iki mod, değiştirilecek tek bir MODEL satırı.
import base64
import json
import os
import time
import urllib.error
import urllib.request
import uuid
API = "https://api.omniakey.com/v1/media/tasks"
KEY = os.environ["OMNIAKEY_API_KEY"]
MODEL = "wan3.0-video"
def request(method, url, body=None, extra_headers=None):
headers = {"Authorization": f"Bearer {KEY}", "User-Agent": "omniakey-example/1"}
data = None
if body is not None:
headers["Content-Type"] = "application/json"
data = json.dumps(body).encode()
headers.update(extra_headers or {})
req = urllib.request.Request(url, data=data, headers=headers, method=method)
with urllib.request.urlopen(req, timeout=120) as resp:
return json.load(resp)
def poll(url, attempts=5):
for attempt in range(attempts):
try:
return request("GET", url)
except urllib.error.HTTPError as err:
if err.code < 500 or attempt == attempts - 1:
raise
except urllib.error.URLError:
if attempt == attempts - 1:
raise
time.sleep(5 * (attempt + 1))
def run_task(body, out_path):
task = request("POST", API, body, {"Idempotency-Key": str(uuid.uuid4())})["id"]
print("task", task, flush=True)
for _ in range(180): # 5-second polls, up to 15 minutes
time.sleep(5)
state = poll(f"{API}/{task}")
if state["status"] not in ("queued", "processing"):
break
else:
raise TimeoutError(f"{task} is still {state['status']}: poll it again later, do not resubmit")
if state["status"] != "succeeded":
raise RuntimeError(state.get("error") or state["status"])
asset_url = state["assets"][0]["url"] # signed link: short-lived, so download now
req = urllib.request.Request(asset_url, headers={"User-Agent": "omniakey-example/1"})
with urllib.request.urlopen(req, timeout=300) as resp, open(out_path, "wb") as f:
f.write(resp.read())
return task
def text_to_video(prompt, out_path, duration=5, resolution="720P", ratio="16:9"):
body = {
"model": MODEL,
"type": "video",
"operation": "text_to_video",
"input": {"prompt": prompt},
"parameters": {"duration": duration, "resolution": resolution, "ratio": ratio},
}
return run_task(body, out_path)
def image_to_video(prompt, image_path, out_path, duration=5, resolution="720P"):
with open(image_path, "rb") as f:
raw = f.read()
if len(raw) > 700_000: # base64 adds a third, and the whole body must stay under 1 MiB
raise ValueError("first frame too large: save it as a JPEG about 1024 px wide")
frame = "data:image/jpeg;base64," + base64.b64encode(raw).decode()
body = {
"model": MODEL,
"type": "video",
"operation": "image_to_video",
"input": {"prompt": prompt, "media": [{"type": "first_frame", "url": frame}]},
"parameters": {"duration": duration, "resolution": resolution, "ratio": "adaptive"},
}
return run_task(body, out_path)
if __name__ == "__main__":
print("done", text_to_video(
"A blacksmith hammers a glowing horseshoe on an anvil in a dark forge. Sparks fly at each "
"strike and light his leather apron. The camera slowly pushes in. Sound of the hammer ringing "
"on steel and the fire crackling. No dialogue, no music, no text.",
"forge.mp4",
))
print("done", image_to_video(
"Image 1 is the first frame. The paper boat drifts slowly to the right across the puddle. "
"Light rain makes small ripples and the cafe lights shimmer in the water. The camera stays "
"low and still. Sound of light rain. No dialogue, no music, no text.",
"boat.jpg",
"boat-drifts.mp4",
))
Her parçanın işi:
run_taskher iş için yeni birIdempotency-Keyüretiyor. Aynı anahtarı aynı gövdeyle yeniden göndermek özgün görevi döndürüyor ve ikinci kez ücret almıyor (dokümanlar, 31 Ekim 2026'da kontrol edildi).- 5 saniyede bir, en fazla 15 dakika sorguluyor, sonra TimeoutError veriyor.
- Zaman aşımı, aynı kimliği sonra yeniden sorgulamak demek; yeniden gönderme yeni bir anahtar üretiyor, ikinci bir iş açıyor ve onu faturalıyor.
- İlk varlık URL'sini hemen indiriyor, çünkü imzalı bağlantının ömrü kısa.
image_to_video700.000 baytı aşan kareyi reddediyor: Base64 üçte bir ekliyor ve gövde sınırı 1 MiB.- Görsel çağrısı oranı
adaptiveyapıyor, böylece klip sabit görselin şeklini izliyor.
Yazdırdığı çıktı:
task task_<id>
done task_<id>
task task_<id>
done task_<id>
İki çağrı ne üretti?
İki dosya da 5.04 saniyelik MP4 olarak döndü: 150 kare, 30 fps, H.264 ve 44.1 kHz AAC stereo parça.
Metinden videoya: demirci ocağı

Klip promptu izliyor: koyu gömlekli, deri önlüklü bir demirci parlayan turuncu bir nalı dövüyor, 2.2 saniyede kıvılcımlar fışkırıyor ve kamera biraz yaklaşıyor. Kusur, prompt metin istemese de örsün üstündeki okunaksız harflerden oluşan damga. Baştan dosyaya 2 min 42 s sürdü; MP4 1280×720 ve 6.6 MB.
Görselden videoya: kâğıt tekne

İlk kare Nano Banana 2.1 ile ürettiğimiz bir sabit görseldi: yağmur birikintisinde kırmızı bir kâğıt tekne. 1024×571 boyutunda 158 KB'lık bir JPEG'e küçültülüp data URL olarak satır içinde gönderildi. Klip o alacakaranlık ışığını ve ıslak arnavut kaldırımlarını koruyor, tekneyi istendiği gibi soldan sağa kaydırıyor, 1.6 saniyede dalgalar oluşuyor ve kamerayı alçakta ve sabit tutuyor. Uyarlanabilir oran sabit görselin şeklini izlediği için 1284×716 olarak, 3 min 20 s'de ve 7.4 MB boyutunda döndü.
Ses açık mı, "no music" işe yarıyor mu?
Ses varsayılan olarak açık. Gemini 3.8 Flash demirci parçasını konuşma ve müzik olmadan metalik tıkırtı, kâğıt tekne parçasını ise hüzünlü ve sakin bir piyano melodisi olarak tanımladı; oysa o prompt "no music" ile bitiyordu. Alibaba'nın prompt kılavuzu (16 Ekim 2026'da güncellendi) "No BGM" ya da "No background music" yazmayı öneriyor; bizim promptumuzda ikisi de yoktu.
"audio": false ile dosya yalnızca video parçası taşıyor: 2 saniyelik 480P fener işimizde ses parçası yoktu ve Alibaba iki durumda da aynı ücreti alıyor.
| Klip | Süre | Boyut | Ses |
|---|---|---|---|
| Ocak (metin) | 2 min 42 s | 1280×720 | Tıkırtı, müzik yok |
| Kâğıt tekne (görsel) | 3 min 20 s | 1284×716 | "no music"e rağmen piyano |
| Fener, ses kapalı | 4 min 36 s | 854×480 | Ses parçası yok |
Kuyruk süresi değişiyor: ses kapalı 2 saniyelik iş 4 min 36 s sürdü, iki 5 saniyelik 720P klipten de uzun. Prompt yazımı için Wan 3.0 prompt kılavuzu yapıyı ve örnek promptları veriyor.
Video dosyasını nasıl alırsınız, bağlantılar ne kadar dayanır?
Durum succeeded, failed ya da canceled olana kadar GET /v1/media/tasks/{id} sorgulayın; iş sürerken queued ya da processing yazıyor. Bitmiş görev yaklaşık bir saat dayanan imzalı bir varlık URL'si döndürüyor (OmniaKey dokümanları, 31 Ekim 2026'da kontrol edildi). Hemen indirin, eski bağlantı dolduğunda yeni bir URL için görevi yeniden sorgulayın; kayıt 24 saat yaşıyor.
Dosya 30 fps H.264 video içeren bir MP4 ve Alibaba'nın kendi video URL'si 24 saat dayanıyor. Bir Wan 3.0 işini iptal etmek render'ı durdurmuyor ve iptalden sonra başarılı olan iş yine faturalanıyor; göndermeden önce süreyi ve çözünürlüğü kontrol edin.
Hangi hatalarla karşılaşırsınız?
Bunların çoğu bir görev oluşmadan dönüyor ve her birinin çözümü istekte ya da anahtarda.
- 400
model_price_error— süre 2 ile 30 saniye aralığının dışında."duration": 1denememiz 0.9 s'de "media duration must be between 2 and 30 seconds" hatasıyla düştü; görev oluşmadı, ücret alınmadı. - 400
missing_idempotency_key— Idempotency-Key başlığı yok. Bir tane ekleyin, en fazla 255 karakter. - 409
idempotency_key_reused— aynı anahtar, farklı gövde. Her prompt için yeni anahtar üretin. - 403
model_not_allowed— anahtar o modeli çağıramıyor. Öncemodeldeğerine, sonra anahtarın ayarlarına bakın. - 403 bakiye ya da harcama sınırı mesajıyla — düşük bakiye veya anahtar başına sınır. Bakiye yükleyin ya da sınırı yükseltin.
- 404
task_not_found— yanlış kimlik ya da 24 saatten eski görev. Oluşturma çağrısının döndürdüğü kimliği sorgulayın. - 409
task_state_conflict— iş çoktan bitmiş, örneğin iptal başarıdan sonra gelmiş. Önce durumu okuyun. - 429 — çok fazla istek. OmniaKey sabit hız sınırı yayımlamıyor, bu yüzden üstel gecikme ve jitter ile geri çekilin.
- 503
no_available_channel— o işlem için kanal yok, örneğin video to video. Metinden videoya ya da görselden videoya kullanın. TimeoutError— 15 dakika sonra hâlâ sürüyor. Aynı kimliği sonra sorgulayın; yeniden gönderme ikinci bir iş açar ve faturalar.
Bir Wan 3.0 klibi ne kadar?
Alibaba videonun saniyesi başına faturalıyor ve başarısız istek faturalanmıyor (fiyat sayfası 29 Ekim 2026'da güncellendi). Tablo, 31 Ekim 2026'da Alibaba'nın Model Studio fiyat sayfasından kontrol edilen Singapur liste fiyatlarını saniye başına veriyor.
| Model | 480P | 720P | 1080P |
|---|---|---|---|
| Wan 3.0 | $0.05 | $0.1 | $0.2 |
| Wan 3.0 Prime | $0.068 | $0.14 | $0.28 |
Alibaba'da 5 saniyelik 720P klip Wan 3.0 üzerinde $0.50 (5 × $0.1), Prime üzerinde $0.70 (5 × $0.14). Üç Wan 3.0 fiyatında "Limited-time 30% off" ibaresi var ve sayfa rakamların bunu içerip içermediğini söylemiyor. Ses açık ya da kapalı, ücret aynı.
Alibaba'nın ücretsiz kotası Singapur'da wan3.0-video için 30 saniye video, girdi artı çıktı; Prime'da kota yok. Alibaba'nın Çin (Pekin) bölgesi standart model için daha düşük dolar ücretleri listeliyor: 480P, 720P ve 1080P'de saniye başına $0.041256, $0.082513 ve $0.165025.
OmniaKey de saniye başına faturalıyor; güncel ücretler Wan 3.0 ve Wan 3.0 Prime model sayfalarında.
Sık sorulan sorular
Bir çağrı ne kadar sürüyor?
Alibaba bir işin tipik olarak 1 ile 5 dakika sürdüğünü ve 15 saniyede bir sorgulamayı öneriyor (başvuru kaynağı, 31 Ekim 2026'da kontrol edildi). Üç işimiz 2 min 42 s, 3 min 20 s ve 4 min 36 s sürdü.
Sesi nasıl kapatırım?
"audio": false değerini parameters içinde ayarlayın, MP4 fener işimizde olduğu gibi yalnızca video parçasıyla geliyor. Fiyat aynı kalıyor.
wan3.0-video mu wan3.0-video-prime mı kullanmalıyım?
Alibaba'nın daha düşük liste ücreti ve Singapur'daki 30 saniyelik ücretsiz kotası için wan3.0-video seçin, hız daha önemliyse Prime. OmniaKey Prime'ı aynı yetenekler, yaklaşık yarı süre olarak anlatıyor.
Video bağlantısı ne kadar dayanıyor?
OmniaKey'de yaklaşık bir saat; kayıt 24 saat yaşadığı sürece görevi yeniden sorgulamak yeni bir bağlantı veriyor. Alibaba'nın kendi video URL'si 24 saat dayanıyor.
Kontrol edilen kaynaklar
- Wan 3.0 video üretim API başvuru kaynağı, 31 Ekim 2026'da kontrol edildi
- Wan 3.0 video üretim kılavuzu, 31 Ekim 2026'da kontrol edildi
- Wan 3.0 video üretim prompt kılavuzu, 31 Ekim 2026'da kontrol edildi
- Alibaba Cloud Model Studio model fiyatları, 31 Ekim 2026'da kontrol edildi
- OmniaKey video API dokümanları, 31 Ekim 2026'da kontrol edildi
- OmniaKey media API genel bakış, 31 Ekim 2026'da kontrol edildi
- OmniaKey API hata kodları, 31 Ekim 2026'da kontrol edildi
Bu makaledeki modeller
İlgili makaleler
Wan 3.0 prompt rehberi: yapı, örnekler ve gerçek klipler
Beş prompt, beş gerçek klip: Wan 3.0 neyi uyguladı, neyi atladı ve nasıl düzeltilir.
Wan 3.0 ve Wan 2.7
Yeni bir OmniaKey video iş akışı için Wan 3.0 pratik varsayılandır; Wan 2.7'yi yalnızca mevcut entegrasyon devam veya özel düzenleme sözleşmesine bağlıysa koruyun.
Kling 3.0 vs Wan 3.0: aynı promptla test ve fiyat
Üç prompt, iki video modeli, tek gün: her biri ne üretti ve ne kadara mal oldu.
Son makaleler
- Claude Code 2.0: Çıkış tarihi, yenilikler ve güncelleme
- Seedream 5.0 Pro vs Nano Banana Pro: aynı promptla test ve fiyat
- Suno v6 incelemesi: Gerçek şarkılar, hız ve v4.5 ile karşılaştırma
- Codex ile görsel oluşturma: imagegen ve özel sağlayıcı
- Factory Droid özel modeller: Kendi API anahtarınızla Claude ve GPT kullanın

