Přejít na dokumentaci
Na této stránce

Seedance 2.5

Generujte videa pomocí modelu Seedance 2.5 na základě textu, prvního a posledního snímku nebo multimodálních referencí. Tato stránka popisuje kompletní workflow od požadavku po výsledek.

ID modelu v API: seedance-2-5

Generování probíhá asynchronně. Uložte si taskId vrácené při vytvoření úlohy a poté se dotazujte na její stav nebo vyčkejte na webhook.

Schopnosti a funkce

FunkcePodporované hodnoty
Výstupní rozlišení480p · 720p · 1080p
Délka výstupu4–30 sekund
Poměr stran16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Referenční obrázkyAž 30 obrázků
Referenční videaAž 10 videí
Referenční audio souboryAž 10 audio souborů
Všechny reference dohromadyCelkem až 50 referenčních souborů
Celková délka na skupinu video/audio30 sekund
seedNepodporováno
V režimu reference-to-video lze zadat také duration=-1; viz úpravy videa a nacenění níže. image-to-video podporuje pouze hodnotu adaptive; toto pole vynechejte nebo ho nastavte na adaptive.

Ceny a kredity

Generování videa je zpoplatněno kredity na základě účtované délky v sekundách. Bez video vstupu odpovídá účtovaná délka délce výstupu. Pokud video vstup zadáte, započítává se do ní také délka referenčního videa.

U Draftů se uplatňují výše uvedené sazby pro 480p, včetně případného vstupu v podobě referenčního videa. Finální videa využívají sazbu pouze pro výstup v 1080p ve výši 30 kreditů za sekundu; vstupní referenční video se již znovu neúčtuje. Například 5sekundový Draft bez referenčního videa stojí 50 kreditů a 5sekundové finální video stojí dalších 150 kreditů.

V tabulce níže jsou uvedeny kredity účtované za sekundu, nikoli celková cena za úkol. Sazba závisí na modelu, výstupním rozlišení a na tom, zda v režimu reference-to-video zadáte referenční videa. Výpočet celkové ceny najdete ve vzorcích a příkladech pod tabulkou.

Výstupní rozlišeníBez video vstupuS video vstupem
480p10 kreditů/sekunda6 kreditů/sekunda
720p20 kreditů/sekunda12 kreditů/sekunda
1080p30 kreditů/sekunda20 kreditů/sekunda
  • Bez video vstupu: sekundy výstupu × sazba bez videa.
  • S video vstupem: (sekundy výstupu + naměřené sekundy referenčního videa) × sazba s videem. Server změří celkovou délku referenčního videa a před zaúčtováním ji zaokrouhlí nahoru na celé sekundy.
  • Samostatné obrázkové nebo zvukové reference využívají sazbu bez videa. Sazba za referenční video se uplatňuje pouze v režimu reference-to-video, pokud jsou skutečně dodány video reference.

Příklady výpočtu ceny

5sekundové text-to-video v 720p: 5 × 20 = 100 kreditů.

5sekundový výstup s 5sekundovým referenčním videem v 720p: (5 + 5) × 12 = 120 kreditů.

Tyto kredity se strhávají předem při vytvoření úkolu. Pokud je úkol úspěšně dokončen, jedná se o konečnou cenu, která se již neupravuje ani částečně nevrací podle skutečné délky výstupu. U neúspěšných nebo vypršených úkolů se automaticky spustí proces vrácení kreditů.

Kredity jsou rezervovány při odeslání požadavku a strženy při úspěšném dokončení. Selhané nebo vypršené úlohy jdou do procesu vrácení peněz (refundace). Stav účtování refund_failed znamená, že se vrácení kreditů nedokončilo; zkontrolujte protokoly API nebo kontaktujte podporu.

Jak se účtují kredity při duration=-1

Pokud je délka nastavena na -1, výsledná délka výstupu není pevně daná a model ji určí sám.

Ve většině případů doporučujeme nastavit délku na skutečně požadovanou stopáž videa namísto hodnoty -1. Použití hodnoty -1 doporučujeme výhradně pro střih a úpravu videa, nikoli pro jiné scénáře generování videa.

Referenční vstupyJak se počítá cenaPříklad
S referenčními videiSečte se délka všech referenčních videí a výsledný čas se zaokrouhlí na celé sekundy nahoru (označme jako T). Výsledná cena se rovná (T + T) × sazba pro video. První T představuje odhadovanou délku výstupu, druhé T představuje délku vstupního videa.720p s 5sekundovým referenčním videem: (5 + 5) × 12 = 120 kreditů.
Bez referenčních videí (pouze obrázky nebo zvuk)Jako odhadovaná délka výstupu se použije 30 sekund. Výsledná cena se rovná 30 × sazba bez videa.720p bez referenčních videí: 30 × 20 = 600 kreditů.

Ověření

Vytvořte si API klíč v administraci. Celý klíč se zobrazí pouze jednou. Uložte si ho na svém serveru a posílejte ho jako Bearer token v každém požadavku.

Základní URL

https://api.seevio.ai
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json

Před spuštěním těchto příkladů nastavte proměnnou prostředí SEEVIO_API_KEY. Příklady v JavaScriptu běží na vašem serveru v prostředí Node.js; příklady v Pythonu používají knihovnu requests.

Rychlý start

Odešlete tento minimální požadavek, uložte si vrácené taskId a poté použijte níže uvedený příklad dotazu na stav úlohy. Hodnota credits v odpovědi na vytvoření představuje rezervovanou částku.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

Příklad odpovědi při vytvoření úlohy

Jakmile je výše uvedený požadavek přijat, API vrátí tuto odpověď ve formátu JSON. Hodnota taskId představuje identifikátor úlohy, který slouží k následnému dotazování na její stav. credits udává počet kreditů rezervovaných pro tuto úlohu. Tato odpověď pouze potvrzuje úspěšné vytvoření úlohy, nikoli to, že je video již hotové. Pro získání výsledného videa je nutné stav úlohy pravidelně kontrolovat (polling) nebo využít Webhook.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 100
}

Vytvoření úlohy

POST https://api.seevio.ai/v1/videos/generations

Odešlete objekt JSON obsahující model a input, případně volitelnou callback_url. Vždy uveďte přesné ID modelu uvedené na této stránce; při vynechání modelu se vybere seedance-2-0.

Tělo požadavku

PoleTypPovinnéPopis a omezení
model
stringAno

ID modelu. Chcete-li použít Seedance 2.5, nastavte toto pole na seedance-2-5.

callback_url
stringNe

Veřejný HTTPS koncový bod pro POST callbacky při dokončení nebo selhání. Privátní sítě a localhost nejsou povoleny.

Příklad: https://example.com/webhooks/seevio
input
objectAno

Nastavení generování. Musí obsahovat neprázdný prompt.

Vstupní parametry

V režimu image-to-video je pole image_urls povinné. Režim reference-to-video vyžaduje alespoň jednu referenci v polích image_urls, video_urls nebo audio_urls.
Pokud je přítomno draft_task_id, vynechejte parametry prompt, generation_type, image_urls, video_urls, audio_urls, duration, aspect_ratio, seed, generate_audio, web_search a omni_reference_task_type, a to i v případě, že se jejich hodnoty shodují s Draftem. Tato nastavení se dědí automaticky. Nekombinujte draft=true s parametrem draft_task_id.

Zadejte parametry image_urls, video_urls a audio_urls jako pole řetězců s URL (string[]). Každá zadaná URL musí být veřejně přístupná přes protokol HTTPS, a to včetně médií, která vybraný režim ignoruje.

PoleTypPovinnéVýchozíPopis a omezení
input.draft
booleanNefalse

Vytvořit náhled v rozlišení 480p (Draft). Pouze pro Seedance 2.5. Vzájemně se vylučuje s parametrem draft_task_id.

Podporované hodnoty
true | false
input.draft_task_id
stringNe—

Vytvořit finální video v 1080p z dokončeného Draftu vytvořeného pod vlastním účtem před méně než 7 dny. Zadejte taskId vrácené tímto API a vynechejte zděděná pole generování.

Příklad: 3f2aK9mR7xQp4TnZ8bLc6YwH
input.output_format
stringNemp4

Formát výstupního video kontejneru. Podporuje mp4 a mov, včetně požadavků na Draft a finální video.

Podporované hodnoty
mp4 | mov
input.prompt
stringPodmíněně—

Vyžadováno pro běžné generování a pro vytvoření Draftu. Neposílejte jej při generování finálního videa pomocí draft_task_id; prompt se zdědí z Draftu.

Příklad: A cat surfing at sunset
input.generation_type
stringNetext-to-video

text-to-video používá pouze prompt; image-to-video používá 1–2 obrázky; reference-to-video používá obrázkové, video a/nebo audio reference.

Podporované hodnoty
text-to-video | image-to-video | reference-to-video
input.image_urls
string[]Podmíněně[]

image-to-video: 1 obrázek pro první snímek, nebo 2 seřazené obrázky pro první a poslední snímek. reference-to-video: až 30 obrázků. V režimu text-to-video se ignoruje.

Příklad: ["https://example.com/first-frame.jpg"]
input.video_urls
string[]Podmíněně[]

Předává se pouze v režimu reference-to-video; celkem až 10 videí o celkové délce 30 sekund. V ostatních režimech se ignoruje.

Příklad: ["https://example.com/source.mp4"]
input.audio_urls
string[]Podmíněně[]

Předává se pouze v režimu reference-to-video; celkem až 10 zvukových souborů o celkové délce 30 sekund. V ostatních režimech se ignoruje.

Příklad: ["https://example.com/music.mp3"]
input.duration
integerNe5

Délka výstupu: 4–30 sekund, výchozí 5. Hodnota duration=-1 je povolena pro Drafty a režim reference-to-video. Pro finální video tento parametr vynechejte; dědí se z Draftu.

Podporované hodnoty
-1 | 4–30
Příklad: 5
input.aspect_ratio
stringNeadaptive

Poměr stran výstupu. Hodnota adaptive umožní modelu určit poměr stran automaticky. image-to-video podporuje pouze hodnotu adaptive; toto pole vynechejte nebo ho nastavte na adaptive.

Podporované hodnoty
16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Příklad: adaptive
input.resolution
stringNe720p

Běžné generování je standardně nastaveno na 720p. Drafty podporují pouze 480p (výchozí pro Draft). Finální videa podporují pouze 1080p (výchozí pro finální video).

Podporované hodnoty
480p | 720p | 1080p
Příklad: 720p
input.generate_audio
booleanNetrue

Vyžádat vygenerování synchronizovaného zvuku.

Podporované hodnoty
true | false
Příklad: true
input.watermark
booleanNefalse

Vyžádat vložení AI vodoznaku do vygenerovaného videa.

Podporované hodnoty
true | false
Příklad: false
input.web_search
booleanNefalse

Povolit vyhledávání na webu, pokud je modelem podporováno.

Podporované hodnoty
true | false
Příklad: false
input.return_last_frame
booleanNefalse

Vyžádat poslední snímek. Výsledek dotazu obsahuje data.last_frame_url, jakmile je snímek k dispozici, jinak je hodnota null.

Podporované hodnoty
true | false
Příklad: true

Booleovská pole musí mít hodnotu JSON true nebo false, nikoli řetězec nebo číslo.

Odpověď na vytvoření

HTTP 200 vrací taskId (řetězec) a credits (číslo). Potvrzuje se tím vytvoření úlohy, nikoli její dokončení. Částka níže odpovídá 5sekundovému rychlému startu v rozlišení 720p.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 100
}

Náhled Draft → finální video v 1080p

Seedance 2.5 podporuje dvoukrokový proces: nejprve vygenerujete náhled (Draft) v rozlišení 480p pro kontrolu vizuální stránky a pohybu, a poté jej použijete k vytvoření finálního videa v rozlišení 1080p. Oba kroky používají POST /v1/videos/generations a vytvářejí samostatné, zpoplatněné úkoly.

Režim Draft umožňuje snížit náklady při zkoušení různých nápadů. Namísto generování každého pokusu přímo v 1080p můžete vytvořit několik cenově výhodnějších 480p Draftů, vybrat ten nejlepší a z něj vygenerovat finální video v 1080p. To vám umožní prozkoumat různé výsledky s nižšími náklady předtím, než zaplatíte za vybranou verzi ve vysokém rozlišení.

Pro generování finálního videa musíte dokončený Draft použít do 7 dnů od jeho vytvoření. Draft musí patřit pod stejný API účet. Použijte taskId vrácené tímto API.

1. Vygenerování 480p náhledu (Draft)

Nastavte input.draft=true a zadejte obvyklý prompt, reference a nastavení generování. Rozlišení je v režimu Draft standardně 480p; ostatní rozlišení jsou odmítnuta. U Draftu můžete povolit return_last_frame, jak je znázorněno níže.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "draft": true,
    "duration": 5,
    "resolution": "480p",
    "return_last_frame": true
  }
}'
{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 50
}

2. Vyčkání na dokončení Draftu

Uložte si taskId z odezvy vytvoření a dotazujte se přes GET /v1/tasks/TASK_ID, dokud status nebude completed. Odezva na dotaz obsahuje is_draft=true; video si můžete prohlédnout v data.results. Vyžádaný poslední snímek najdete v data.last_frame_url, pokud je dostupný.

Po dokončení Draftu můžete výsledek obdržet také prostřednictvím Webhooku. Nastavte callback_url na nejvyšší úrovni požadavku na vytvoření Draftu. Jakmile se Draft dokončí, na tuto URL bude odesláno oznámení a vaše služba může callback zpracovat za účelem uložení výsledku, aktualizace stavu úkolu nebo spuštění navazujících procesů. Formát callbacku naleznete v sekci Webhooky na této stránce.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "is_draft": true,
  "draft_task_id": null,
  "status": "completed",
  "billing_status": "charged",
  "credits": 50,
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": "https://cdn.seevio.ai/api/images/draft-last-frame.jpg",
    "processing_time": 48
  }
}

3. Vygenerování finálního videa v 1080p

Nahraďte draft_task_id v tomto příkladu hodnotou taskId vašeho dokončeného Draftu. Finální video podědí obsah i délku Draftu. Rozlišení je standardně 1080p a žádné jiné rozlišení není přijímáno. Parametry output_format, watermark a return_last_frame lze nastavit nezávisle pro každé finální video; callback_url se i nadále nachází na nejvyšší úrovni požadavku.

Pokud je přítomno draft_task_id, vynechejte parametry prompt, generation_type, image_urls, video_urls, audio_urls, duration, aspect_ratio, seed, generate_audio, web_search a omni_reference_task_type, a to i v případě, že se jejich hodnoty shodují s Draftem. Tato nastavení se dědí automaticky. Nekombinujte draft=true s parametrem draft_task_id.
curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "draft_task_id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
    "resolution": "1080p",
    "output_format": "mp4",
    "watermark": false,
    "return_last_frame": true
  }
}'

Odezva obsahuje nové taskId pro finální video. Dotazujte se na toto nové ID nebo počkejte na jeho webhook. Odezva na dotaz pro finální video obsahuje is_draft=false a draft_task_id odpovídající ID původního Draftu v API. Původní Draft zůstává i nadále k dispozici. Každý přijatý požadavek na finální video vytváří nový, samostatně účtovaný úkol.

{
  "taskId": "final_7mQx2pN8kR4vT9cL6bW3",
  "credits": 150
}

Účtování Draftu a finálního videa

U Draftů se uplatňují výše uvedené sazby pro 480p, včetně případného vstupu v podobě referenčního videa. Finální videa využívají sazbu pouze pro výstup v 1080p ve výši 30 kreditů za sekundu; vstupní referenční video se již znovu neúčtuje. Například 5sekundový Draft bez referenčního videa stojí 50 kreditů a 5sekundové finální video stojí dalších 150 kreditů.

V případě nastavení duration=-1 se u Draftu i u finálního videa rezervují kredity až na 30 sekund výstupu (u Draftu navíc s připočtením referenčního videa). Po dokončení se cena upraví podle skutečné délky výstupu, pokud ji lze určit, a nevyužité rezervované kredity se vrátí. U finálního videa se rezervuje až 900 kreditů.

Nedokončený, expirovaný zdroj, zdroj, který není Draftem, nebo nepřístupný zdroj bude odmítnut s chybou HTTP 400 (invalid_request). Neplatné rozlišení, zděděná pole nebo konfliktní parametry Draftu rovněž způsobí chybu HTTP 400. Nedostatek kreditů vrátí chybu HTTP 402.

Režimy generování a příklady

Nahraďte ukázkové adresy URL z example.com vlastními veřejně přístupnými soubory na HTTPS. Ukázkové adresy URL slouží pouze pro ilustraci struktury požadavku a nelze je stáhnout.

Text na video

Generování na základě textového zadání. Adresy URL médií se v tomto režimu nepředávají.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

První snímek

Zadejte jeden obrázek jako první snímek a v promptu popište požadovaný pohyb.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/first-frame.jpg"
    ],
    "aspect_ratio": "adaptive"
  }
}'

První a poslední snímek

Zadejte dvě URL adresy obrázků v pořadí: první snímek, poté poslední snímek. Tento příklad také vyžaduje vrácení posledního snímku vygenerovaného videa.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/first-frame.jpg",
      "https://example.com/last-frame.jpg"
    ],
    "aspect_ratio": "adaptive",
    "return_last_frame": true
  }
}'

Multimodální reference

Kombinujte obrázkové, video a audio reference. Prompt je i nadále vyžadován. Vstup v podobě referenčního videa mění výpočet ceny.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Follow the reference camera movement and keep the character consistent. Use the audio for ambience.",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "image_urls": [
      "https://example.com/character.jpg"
    ],
    "video_urls": [
      "https://example.com/camera.mp4"
    ],
    "audio_urls": [
      "https://example.com/ambience.mp3"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Audio reference

Použijte zvuk jako jediný typ reference s povinným textovým promptem popisujícím požadované video.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Create a coastal sunrise scene matching the rhythm of this audio.",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "audio_urls": [
      "https://example.com/music.mp3"
    ]
  }
}'

Úprava videa

Pro úpravu videa v Seedance 2.5 je nutné nastavit délku (duration) na -1 a poměr stran (aspect_ratio) na adaptive. Obě tato nastavení jsou vyžadována, jinak generování selže.

Popište požadovanou úpravu a vložte zdrojové video. Nastavte duration=-1 a použijte adaptivní poměr stran (adaptive). Pro tento postup použijte zdrojový klip dlouhý alespoň 4 sekundy. Pravidlo účtování pro duration=-1 je popsáno výše.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Edit the source video: change the character’s coat to blue and preserve the camera movement.",
    "duration": -1,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "video_urls": [
      "https://example.com/source.mp4"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Prodloužení videa

Pro video extension v Seedance 2.5 musí být poměr stran (aspect_ratio) nastaven na „adaptive“, jinak může generování selhat. Délku videa (duration) nastavte standardně na požadovanou délku výsledného videa v rámci podporovaného rozsahu – není nutné používat hodnotu -1.

Popište, jak by mělo zdrojové video pokračovat. Použijte adaptivní poměr stran (adaptive) a nastavte běžnou délku výstupu v mezích rozsahu modelu.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Continue the camera movement from the source video, revealing a forest clearing.",
    "duration": 8,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "video_urls": [
      "https://example.com/source.mp4"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Dotaz na stav úlohy

GET https://api.seevio.ai/v1/tasks/{taskId}

Nahraďte ukázkové ID za taskId vrácené při vytvoření. Dotazy vracejí pouze úlohy patřící uživateli daného API klíče; nepřístupná nebo neznámá ID vrací HTTP 404.

Jako výchozí bod se dotazujte každých 10–20 sekund, při chybě HTTP 429 frekvenci snižte a dotazování ukončete, jakmile je stav completed nebo failed. V produkčním prostředí dejte přednost webhookům. Každá ukázka kódu níže provede jeden dotaz.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
StavPopis a omezení
queuedPřijato a čeká na zpracování.
generatingGenerování probíhá.
completedÚspěšně dokončeno. Stáhněte si data.results před vypršením platnosti.
failedTrvalé selhání. Zkontrolujte failed_reason a billing_status.
PoleTypPopis a omezení
idstring
Identifikátor úlohy. Jedná se o taskId z odpovědi na vytvoření.
created_atnumber
Čas vytvoření úlohy jako unixový čas v sekundách.
modelstring
Veřejné ID modelu použité pro tuto úlohu.
is_draftboolean
True pro 480p Draft; false pro finální nebo běžné video.
draft_task_idstring | null
ID původního Draftu v API pro finální video; null pro Drafty a běžná videa.
billing_statusstring
reserved (rezervováno), charged (zaúčtováno), refunded (vráceno) nebo refund_failed (vrácení selhalo).
creditsnumber
Kredity rezervované pro tuto úlohu. Tato hodnota zůstává zachována i po vrácení kreditů; pro zjištění konečného stavu platby zkontrolujte billing_status.
failed_reasonstring | null
Důvod selhání u neúspěšných úloh; v ostatních případech null. Odpovědi na dotazy u selhaných úloh neobsahují objekt data.
dataobject
Přítomno u úspěšně dotázaných úloh, které neselhaly. Obsahuje výstup a podrobnosti o zpracování.
data.resultsstring[]
Pole URL adres vygenerovaných videí. Prázdné do dokončení nebo po vypršení platnosti videa.
data.video_expires_atstring | null
Vypršení platnosti videa jako ISO 8601 časové razítko, nebo null, pokud ještě není k dispozici. Uložte si výsledek před tímto časem.
data.last_frame_urlstring | null
URL posledního snímku, pokud byl vyžádán a je k dispozici, jinak null.
data.processing_timenumber | null
Doba zpracování u poskytovatele v sekundách, pokud je k dispozici, jinak null.

Dokončená úloha: odpověď na dotaz s výsledným videem

Pokud dotaz vrátí status=completed, generování videa bylo dokončeno. Adresy URL videa si přečtěte v data.results a stáhněte si je před vypršením času v data.video_expires_at. billing_status=charged znamená, že vyhrazené kredity byly naúčtovány.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "is_draft": false,
  "draft_task_id": null,
  "status": "completed",
  "billing_status": "charged",
  "credits": 100,
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Neúspěšná úloha: odpověď na dotaz s podrobnostmi o chybě a účtování

Pokud dotaz vrátí status=failed, generování skončilo neúspěšně. Důvod chyby najdete v failed_reason a výsledek vrácení peněz v billing_status. V tomto příkladu hodnota refunded znamená, že kredity byly vráceny. V credits zůstává původní vyhrazená částka a odpověď neobsahuje žádná data.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "is_draft": false,
  "draft_task_id": null,
  "status": "failed",
  "billing_status": "refunded",
  "credits": 100,
  "failed_reason": "provider_failed"
}

Webhooky

Nastavením callback_url v požadavku na vytvoření obdržíte JSON POST požadavek při dokončení nebo selhání úlohy. Odpovězte stavovým kódem 2xx do 15 sekund. Neúspěšná doručení se opakují; opakovaná doručení zpracovávejte idempotentně podle ID úlohy.

Koncový bod pro zpětné volání (callback) musí přijímat požadavky typu POST s tělem ve formátu JSON (Content-Type: application/json).

Vytvoření úlohy s callbackem

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  },
  "callback_url": "https://example.com/webhooks/seevio"
}'

Úloha byla dokončena: callback s úspěšným výsledkem

Pokud generování proběhne úspěšně, callback vrátí status=completed. K identifikaci úlohy použijte id a k získání adres URL vygenerovaného videa data.results. Výsledky si stáhněte a uložte před vypršením času v data.video_expires_at.

created_at je čas vytvoření události, task_created_at čas vytvoření úlohy, v sekundách Unix. Příklady ukazují doporučená pole; odpovědi mohou obsahovat další pole.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652848,
  "model": "seedance-2-5",
  "status": "completed",
  "task_created_at": 1788652800,
  "billing_status": "charged",
  "credits": 100,
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Úloha selhala: callback s chybovým hlášením

Pokud generování selže, callback vrátí status=failed. K identifikaci úlohy použijte id, pro zjištění důvodu selhání failed_reason a pro počet vrácených kreditů credits_refunded.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652848,
  "model": "seedance-2-5",
  "status": "failed",
  "task_created_at": 1788652800,
  "billing_status": "refunded",
  "credits": 100,
  "failed_reason": "provider_failed",
  "credits_refunded": 100
}

Příklad přijímače

export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const videoUrls = callbackData.data.results;
    // Save the video URLs and mark this task as completed in your application.
    console.log(callbackData.id, videoUrls);
  }

  if (callbackData.status === "failed") {
    const { failed_reason, credits_refunded } = callbackData;
    // Record the failure reason and refunded credits for this task.
    console.error(callbackData.id, failed_reason, credits_refunded);
  }

  return new Response(null, { status: 200 });
}

Tento příklad v Next.js načítá tělo callbacku ve formátu JSON a rovnou zpracovává dokončené i neúspěšné úlohy. Do své aplikace přidejte perzistentní ukládání a deduplikaci podle ID úloh. Náročnější operace zařazujte do fronty ještě před potvrzením přijetí callbacku.

Požadavky na média a omezení

  • Všechny adresy URL médií a callbacků musí být veřejné adresy HTTPS. Vyhněte se localhostu, privátním IP adresám a souborům vyžadujícím cookies nebo přihlášení. URL referenčního videa/audia musí odkazovat přímo na čitelný mediální soubor.
  • V režimu reference-to-video poskytněte alespoň jednu referenci, s maximálně 30 obrázky, 10 videi, 10 zvukovými soubory a maximálně 50 materiály celkem. Celková délka videa i celková délka audia může být každá maximálně 30 sekund.
  • text-to-video ignoruje všechny reference na média. image-to-video předává pouze obrázky pro první/poslední snímek a ignoruje reference na video a audio. Chcete-li média kombinovat, použijte reference-to-video.
  • Každé referenční video a audio soubor musí mít délku 2–30 sekund. U příkladů úprav videa použijte zdrojové klipy dlouhé alespoň 4 sekundy.

Požadavky na obrázky

  • Velikost každého obrázku musí být menší než 30 MB.
  • Podporované formáty: jpeg, png, webp, bmp, tiff, gif.
  • Poměr stran (šířka ÷ výška): od 0,4 do 2,5 včetně.
  • Šířka i výška musí být v rozmezí od 300 do 6 000 pixelů včetně.

Požadavky na videa

  • Podporované formáty: mp4, mov.
  • Velikost každého videa nesmí překročit 100 MB.
  • Snímková frekvence: 24 až 60 FPS včetně.
  • Poměr stran (šířka ÷ výška): od 0,4 do 2,5 včetně.
  • Celkový počet pixelů (šířka × výška): od 407 696 do 8 295 044 včetně. Například 614 × 664 = 407 696 a 3 326 × 2 494 = 8 295 044. Jedná se o příklady celkového počtu pixelů, nikoli o pevně stanovené požadavky na šířku a výšku.

Požadavky na audio

  • Podporované formáty: wav, mp3.
  • Velikost každého audiosouboru nesmí překročit 15 MB.

Chyby

Chyby HTTP obsahují objekt error s poli code a message. Úspěšně přijatá úloha může přesto později selhat; dotazujte se na stav úlohy nebo ošetřete callback o jejím selhání.

{
  "error": {
    "code": "invalid_request",
    "message": "input.prompt is required."
  }
}
HTTPPoleCo dělat
400invalid_request
Před dalším pokusem opravte JSON, chybějící prompt, rozsah parametrů nebo URL adresu média.
401invalid_api_key
Zkontrolujte token Bearer a zda je API klíč aktivní.
402insufficient_credits
Dobijte si kredity nebo snižte náročnost úlohy. Odpověď může obsahovat požadované a dostupné množství kreditů.
403forbidden
Zkontrolujte omezení na úrovni účtu popsané v chybové zprávě.
404not_found
Zkontrolujte ID úlohy a zda klíč patří uživateli, který úlohu vytvořil.
429rate_limited
Před dalším pokusem vyčkejte po dobu uvedenou v intervalu Retry-After.
500internal_error
Zkontrolujte chybovou zprávu a protokoly API. Opakujte pokus opatrně; opětovné odeslání požadavku na vytvoření může vytvořit další zpoplatněnou úlohu.

Limity četnosti požadavků

Vytváření úkolů: každý API klíč standardně umožňuje až 100 požadavků za minutu. Vlastní limity četnosti v současné době nejsou k dispozici.

Dotazování na úkoly: každý API klíč standardně umožňuje až 120 požadavků za minutu. Požadavky na dotazy a požadavky na vytváření úkolů se počítají samostatně.

Chyba HTTP 429 obsahuje hlavičku Retry-After: 60 pro vytváření úloh a Retry-After: 5 pro dotazy. Používejte odklad (backoff) a nedotazujte se častěji, než je nutné.