Skip to content

Medya oluşturma (video, görseller, müzik) ​

NordRouter, metin modelleriyle aynı sk-nr-… anahtarı ve aynı bakiye ile görseller, videolar ve müzik oluşturabilir. Ücretlendirme kullanım başına yapılır; token veya paket yoktur.

İstekler yalnızca backend'den yapılabilir, tarayıcıdan yapılamaz

/media/* uç noktalarına doğrudan tarayıcıdan erişilemez — istek CORS kontrolünden geçemez ve Failed to fetch hatasıyla sonlanır.

Bu kasıtlı olarak böyledir. Uç nokta, Authorization başlığında anahtarınızı gerektirir ve tarayıcıya giren her şey geliştirici araçlarını açan herkes tarafından görülebilir: anahtarınız sızar ve bakiyenizden başkaları harcama yapmaya başlar. fetch içindeki hiçbir başlık bunu engellemez.

Doğru yapı:

tarayıcı → sizin sunucunuz (anahtar burada tutulur) → nordrouter.com

Bu sırada hazır dosya normal bir bağlantıyla sunulur — bu bağlantıyı doğrudan sayfadaki <img src> veya <video src> içine ekleyebilirsiniz; bunun için herhangi bir ayar yapmanız gerekmez.

Nasıl çalışır ​

Oluşturma asenkron çalışır (video ve müzik birkaç saniyeden birkaç dakikaya kadar sürebilir):

  1. Görev oluşturun — model ve parametrelerle POST /media/generate.
  2. Sonucu bekleyin — status, done olana kadar GET /media/job/:id ile sorgulama yapın.
  3. Dosyayı alın — result_url üzerinden (nordrouter.com bağlantısı).

1. Görev oluşturma ​

bash
curl https://nordrouter.com/media/generate \
  -H "Authorization: Bearer sk-nr-YOUR-KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "image/nano-banana-2",
    "input": { "prompt": "kış ormanında rahat bir kulübe, suluboya", "resolution": "2k" }
  }'

Yanıt:

json
{ "id": "beefb531-…", "model": "image/nano-banana-2", "status": "processing",
  "poll": "https://nordrouter.com/media/job/beefb531-…" }

Hata her zaman aynı biçimdedir: { "error": "anlaşılır bir metin", "code": "missing_param" }. code değerine göre kodunuzda dallanmak kolaydır (invalid_input, missing_param, unknown_model, insufficient_balance, rate_limited, no_auth…), error ise kullanıcı içindir.

2. Sonucu bekleme ​

bash
curl https://nordrouter.com/media/job/beefb531-…
json
{ "id": "beefb531-…", "status": "done",
  "result_url": "https://nordrouter.com/media/file/beefb531-…",
  "cost_usd": 0.052, "error": null }

status: processing → done (veya failed). Hazır dosya result_url üzerinden alınır.

🎵 Suno bir görev başına iki parça oluşturur: ilki result_url, ikincisi result_url_2 içindedir (aynı bağlantı formatı). Ücret görevin tamamı içindir; her iki parça da buna dahildir.

Webhook'lar (polling yerine) ​

Sorgulama yapmak istemiyorsanız, POST /media/generate isteğine callback_url alanını ekleyin; görev tamamlandığında sonucu POST isteğiyle kendimiz göndeririz:

bash
curl https://nordrouter.com/media/generate \
  -H "Authorization: Bearer sk-nr-YOUR-KEY" -H "Content-Type: application/json" \
  -d '{
    "model": "image/nano-banana-2",
    "input": { "prompt": "…" },
    "callback_url": "https://your-server.com/webhooks/nordrouter",
    "callback_secret": "sizin-gizli-anahtarınız"
  }'

Görev done/failed durumuna geçtiğinde callback_url adresine, GET /media/job/:id yanıtındaki gövdenin aynısı ve ek olarak event alanı içeren bir POST gönderilir:

json
{ "event": "media.completed", "id": "beefb531-…", "status": "done",
  "result_url": "https://nordrouter.com/media/file/beefb531-…", "cost_usd": 0.052, "error": null }

event: media.completed veya media.failed.

İmza doğrulama. callback_secret belirlediyseniz, X-NR-Signature başlığında sha256=<hmac> gönderilir — bu, sizin gizli anahtarınızla istek gövdesi üzerinden hesaplanan HMAC-SHA256 değeridir. İsteğin bizden geldiğini doğrulamak için karşılaştırın:

python
import hmac, hashlib
expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
assert hmac.compare_digest(expected, request.headers["X-NR-Signature"])

Gereksinimler ve güvenilirlik:

  • callback_url yalnızca https:// kullanmalı ve herkese açık bir adres olmalıdır (dahili/özel IP adresleri 400 hatasıyla reddedilir).
  • Artan bekleme aralıklarıyla en fazla 4 teslimat denemesi yapılır; 2xx yanıtı verin, aksi takdirde tekrar deneriz.
  • Webhook polling'i iptal etmez — ikisini birlikte kullanabilir veya yedek seçenek olarak GET /media/job/:id isteğini kullanabilirsiniz.

Daha fazla bilgi

Görev yaşam döngüsü, örneklerle imza doğrulama ve teslimat güvenilirliği hakkında daha fazla bilgi için Görevler ve webhook'lar sayfasına bakın.

3. Model ve fiyat listesi ​

GET /media/models, kullanılabilir modelleri, parametrelerini ve tahmini maliyetlerini döndürür:

json
{ "models": [
    { "id": "image/nano-banana-2", "type": "image",
      "fields": [ {"name":"prompt","type":"textarea"}, {"name":"resolution","type":"select","options":["1k","2k","4k"]},
                  {"name":"safety_filter","type":"bool","default":true} ],
      "est_usd": 0.052 }
  ], "retention_days": 14 }

Tam referans

input parametreleri ve fiyatlarıyla birlikte tüm modeller için Medya: tüm modeller ve faturalandırma sayfasına bakın.

Modeller ​

95 model mevcuttur — parametreleri ve fiyatları içeren güncel listenin tamamı her zaman GET /media/models adresindedir. Başlıca aileler:

TürAileModlar≈ fiyat
🖼 GörsellerNano Banana / 2 / Pro (image/nano-banana*)metinden görsel, düzenleme, 4K’ya kadar$0.025’ten
🖼Imagen 4 Fast / Ultra (image/imagen4*)metinden görsel$0.025’ten
🖼GPT Image 1.5 / 2 (image/gpt-image-*)metinden görsel, düzenleme, 4K’ya kadar$0.025’ten
🖼Flux 2 Pro / Flex (image/flux2-*)metinden görsel, düzenleme$0.03’ten
🖼Seedream v4 / 4.5 / 5 Lite (image/seedream-*)metinden görsel, düzenleme$0.04’ten
🖼Ideogram v3 / Character (image/ideogram-*)metin, remiks, karakter$0.02’den
🖼Qwen / Wan Image / Grok / Z-Imagemetinden görsel, düzenleme$0.01’den
🛠 AraçlarTopaz / Recraft (image/*upscale*, image/recraft-remove-bg)8K’ya kadar yükseltme, arka plan kaldırma$0.01’den
🎬 VideoVeo 3.1 Lite / Fast / Quality (video/veo-3.1-*)metin/fotoğraftan video$0.19’dan
🎬Kling 2.1 → 3.0 (video/kling-*)metin/fotoğraftan video, motion, avatarlar, 4K’ya ve 15 sn’ye kadar$0.16’dan
🎬Wan 2.2 → 2.7 (video/wan-*)metin/fotoğraf/videodan video, konuşmadan video$0.25’ten
🎬Seedance 1.5 / 2 / Fast / Mini (video/seedance-*)metin/fotoğraftan video, 4K’ya kadar, ses$0.06’dan
🎬Hailuo 02 / 2.3 (video/hailuo-*)metin/fotoğraftan video$0.08’den
🎬HappyHorse 1.0 / 1.1 (video/happyhorse-*)metin/fotoğraf/referanstan video, video düzenleme$0.70’ten
🎬Grok Video / 1.5 (video/grok-*)metin/fotoğraftan video, 30 sn’ye kadar$0.06’dan
🎬Gemini Omni (video/gemini-omni)sesli video, 4K’ya kadar$0.39’dan
🗣 AvatarlarKling Avatar, OmniHuman, InfiniteTalk, Lip Syncfotoğraf+ses → konuşan video$0.19’dan
🎵 MüzikSuno V6 / V6 Wild / V6 Mini (music/suno-*)metin/stilden 2 parça, cover, devam, vokal, kanallar, sesler~$0.08
🎙 SeslendirmeElevenLabs Turbo / Multilingual (audio/elevenlabs-*)metinden konuşma, sesi yalıtma1000 karakter başına $0.04’ten

Parametreler ​

Parametreler modele göre değişir; tam liste /media/models adresindedir (fields alanı: ad, tür, seçenekler, varsayılan). Adlar tek biçimdedir (snake_case), değerler küçük harflidir. Ortak parametreler:

  • prompt — açıklama (tüm üretken modeller için).
  • resolution — 1k/2k/4k (görseller) veya 480p/720p/768p/1080p/4k (video). Fiyat çözünürlüğe bağlıdır.
  • aspect_ratio — 1:1, 16:9, 9:16 vb.; boyut seçimi sunan modellerde 1:1-hd de bulunur.
  • duration — video süresi, saniye cinsinden (çoğunda 5/10, Kling 3.0 ve Wan 2.7’de 15’e, Grok’ta 30’a kadar). Video saniye başına ücretlendirilir.
  • audio — videodaki ses kanalı (true/false). Sesli üretim daha pahalıdır; /media/estimate tahmini bunu hesaba katar.
  • mode / quality / render_mode — kalite düzeyi (Kling 3.0 standard/pro/4k, GPT Image medium/high, Ideogram fast/balanced/quality).
  • safety_filter — 18+ filtresi (varsayılan olarak etkin).
  • enhance_prompt — model prompt’u daha ayrıntılı hâle getirir (Qwen, Flux 3).
  • file_format — dosya biçimi (görsellerde png/jpeg, 3D’de glb/obj/fbx/stl/usdz).
  • image — giriş görseli (düzenleme, fotoğraftan video; doğrudan bir bağlantı iletin veya /media/upload üzerinden yükleyin).
  • video_url / audio_url — giriş video/ses dosyaları (video düzenleme, dudak senkronizasyonu, avatarlar).

Müzik: title, style, instrumental, version (v6, v6-wild, v6-mini), advanced (özel ad, stil ve duration süresiyle ayrıntılı ayarlar), exclude_styles, vocal (female/male), continue_from (devam edilecek saniye); sesler için loop, bpm, tonality; kanallara ayırma için mode (vocals, stems, track) ve çıkarılacak kanalı belirten track. İnce stil ayarları: style_weight, weirdness, audio_weight (0…1).

Seslendirme: text, voice (options içinden kısa ses adı; örneğin james, bella, Zephyr), speed; Gemini modellerinde ayrıca style, pace, accent, voice_description, scene, temperature. İki sesli diyalog:

json
{ "model": "audio/gemini-3.1-flash-tts",
  "input": {
    "voices": [ { "voice": "Kore", "style": "newscaster" }, { "voice": "Puck", "pace": "fast" } ],
    "dialogue": [ { "speaker": 1, "text": "Привет! Сегодня у нас в гостях…" }, { "speaker": 2, "text": "Спасибо, что позвали." } ]
  } }

Belirli bir yapılandırmanın kesin fiyatını çalıştırmadan önce aynı model + input değerleriyle POST /media/estimate üzerinden görebilirsiniz.

Önceki parametre adları da çalışmaya devam eder

19 Ekim 2026’da parametre adları ve değerleri tek biçime getirildi (snake_case, değerler küçük harfle). Entegrasyonunuz önceki belge sürümündeki adları ve değerleri iletiyorsa herhangi bir değişiklik yapmanız gerekmez: sunucu bunları da kabul eder; sonuç ve fiyat aynıdır. /media/models ve bu belgede yalnızca yeni biçim kullanılır.

🧊 3D modeller ​

Metinden veya fotoğraftan 3D üretimi. Çıktı GLB’dir (ayrıca farklı modellerde OBJ, FBX, STL, USDZ, USD, 3MF) ve bir önizleme görseli sunulur: görevde her biri kendi uzantısına sahip birkaç dosya gelir.

Çağrı, diğer medya türleriyle aynıdır: POST /media/generate ve GET /media/job/{id} ile durum sorgulama.

bash
curl -X POST https://nordrouter.com/media/generate   -H "Authorization: Bearer $NR_KEY" -H "Content-Type: application/json"   -d '{"model":"3d/tripo-text","input":{"prompt":"seramik kupa, mat sır"}}'
idkaynak≈ fiyatözellikler
3d/tripo-text, 3d/tripo-imagemetin, fotoğraf$0.31'dan başlayan fiyatlarlaen ucuz, quad ağ, PBR
3d/hunyuan-rapid-text, -imagemetin, fotoğraf$0.43'dan başlayan fiyatlarlahızlı, 5 dosya biçimi
3d/seed3d-imagefotoğraf$0.50'dan başlayan fiyatlarlaGLB, OBJ, USD, USDZ
3d/hunyuan-pro-text, -imagemetin, fotoğraf$0.71'dan başlayan fiyatlarla1,5 milyon poligona kadar
3d/meshy-text, -image, -multi-imagemetin, fotoğraf, en fazla 4 açı$0.94'dan başlayan fiyatlarla8K'ya kadar dokular, karakter pozu

Doku olarak fotoğraf. 3d/meshy-* modelleri ayrı bir görsel (texture_photo) veya sözcüklerle malzeme açıklaması (texture_text) kabul eder; doku geometriden bağımsız olarak belirlenir. 3d/meshy-multi-image aynı nesnenin en fazla dört açısını kullanır: böylece geometri daha doğru olur.

Fiyat yalnızca üretimden sonra belli olur

3D, kullanılan kaynaklara göre ücretlendirilir; bu nedenle kesin tutar, model hesaplandıktan sonra belli olur. Mümkün olan en yüksek tutarı bloke ederiz; hesaplama tamamlandığında gerçek tutarı tahsil eder ve aradaki farkı iade ederiz. Nihai tutar her zaman cost_usd alanında görünür.

Stüdyoda bu modeller bir etiketle işaretlenir ve üretim yalnızca onayınızdan sonra başlar.

Uzun sürer. 3D hesaplaması yarım dakikadan birkaç dakikaya kadar sürebilir; bu, görsel veya kısa bir videodan daha uzundur. Görevi açık tutmanız gerekmez: durum kaydedilir ve webhook'lar kullanılabilir.

Ücretlendirme ve saklama ​

  • USD bakiyenizden üretimin gerçek maliyeti tahsil edilir; kesin tutar tamamlanınca cost_usd alanında görünür.
  • Başarısız üretimler için ücret alınmaz; bloke edilen tutar otomatik olarak iade edilir.
  • Dosyalar sunucularımızda sınırlı bir süre saklanır (/media/models içindeki retention_days değerine bakın); saklamak için indirin.