একটি ভিডিও জেনারেশন টাস্ক জমা দিন
একটি অ্যাসিঙ্ক্রোনাস ভিডিও জেনারেশন টাস্ক তৈরি করে এবং সঙ্গে সঙ্গে একটি task_id ফেরত দেয় (HTTP 202)। সফল না হওয়া পর্যন্ত GET /api/v1/videos/generations/{task_id} পোল করুন। রিকোয়েস্ট বডি ফ্ল্যাট আকারে ({model, prompt, ...}) অথবা নেস্টেড আকারে ({model, input: {prompt, ...}}) — দুইভাবেই দেওয়া যায়; উপস্থিত থাকলে input অবজেক্টটিই অগ্রাধিকার পায়। callback ফিল্ডগুলো (callBackUrl / callback_url / callbackUrl) উপেক্ষা করা হয়।
তিনটি পারস্পরিক একচেটিয়া ইনপুট মোড:
- text-to-video: শুধু prompt;
- image-to-video (প্রথম/শেষ ফ্রেম): first_frame_url (+ ঐচ্ছিক last_frame_url);
- omni-reference: reference_image_urls / reference_video_urls / reference_audio_urls। প্রথম/শেষ ফ্রেমের সঙ্গে যেকোনো মাল্টিমোডাল রেফারেন্স ইনপুট মেশালে 400 invalid_request_error ফেরত আসে।
- টাইপ: stringX
- Request - Id ঐচ্ছিক কলার রিকোয়েস্ট ID, ডায়াগনস্টিকসের জন্য হুবহু ফেরত দেওয়া হয়।
- টাইপ: stringX
- Felo - Channel কমা-বিভক্ত, ক্রমানুসারে সাজানো পাবলিক চ্যানেল কোড। ডিফল্ট ব্যবহার করতে এই হেডার বাদ দিন; default একা ব্যবহার করতে হবে। ওয়ালেট মোডে default মডেলের কার্যকর পাবলিক চ্যানেল ক্রম উল্টো দিক থেকে স্ক্যান করে, অপ্রকাশিত বা অনুপলব্ধ চ্যানেল এড়িয়ে যায় এবং প্রথম উপলব্ধ চ্যানেলের প্রোভাইডার নির্বাচন করে। সেই প্রোভাইডারের মধ্যে একই আপস্ট্রিম মডেল ID ও সার্ভিস টিয়ারযুক্ত উপলব্ধ এন্ডপয়েন্টগুলোও অন্তর্ভুক্ত করে। স্পষ্টভাবে উল্লেখ করা চ্যানেল ক্লায়েন্টের দেওয়া ক্রমে যাচাই করা হয়; কেবল প্রথম চ্যানেলের প্রোভাইডার গ্রুপই জমা দেওয়া হয়। অন্য প্রোভাইডারে স্বয়ংক্রিয় ফলব্যাক নেই। লিগ্যাসি প্রোভাইডার হেডার চ্যানেল রাউটিংকে ওভাররাইড করতে পারে না।
ভিডিও জেনারেশন ইনপুট। ফ্ল্যাট ({model, prompt, ...}) বা নেস্টেড ({model, input: {...}}) — যেকোনো একটি। input অগ্রাধিকার পায়। ঠিক একটি ইনপুট মোড ব্যবহার করতে হবে; প্রথম/শেষ ফ্রেমের সঙ্গে মাল্টিমোডাল রেফারেন্স ইনপুট মেশালে প্রত্যাখ্যাত হয়।
- টাইপ: stringmodelআবশ্যক
Felo-তে ব্যবহৃত মডেলের নাম, যেমন seedance-2.0-mini।
- টাইপ: string enumaspect
_ratio মান- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- টাইপ: integerdurationসর্বনিম্ন:4সর্বোচ্চ:15
Integer numbers.
- টাইপ: string ফরম্যাট: urifirst
_frame _url - টাইপ: booleangenerate
_audio - টাইপ: objectinput
ঐচ্ছিক নেস্টেড input অবজেক্ট; উপস্থিত থাকলে এর ফিল্ডগুলোই একই স্তরের অন্য ফিল্ডের উপর অগ্রাধিকার পায়।
- aspectটাইপ: string enum
_ratio আউটপুট অ্যাসপেক্ট রেশিও; adaptive ইনপুট ইমেজের অনুপাত অনুসরণ করে।
মান- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- durationটাইপ: integerসর্বনিম্ন:4সর্বোচ্চ:15
সেকেন্ডে আউটপুট সময়কাল।
- firstটাইপ: string ফরম্যাট: uri
_frame _url প্রথম ফ্রেমের ইমেজ URL (image-to-video মোড)।
- generateটাইপ: boolean
_audio সিঙ্ক্রোনাইজড অডিও ট্র্যাক তৈরি করা হবে কি না।
- lastটাইপ: string ফরম্যাট: uri
_frame _url শেষ ফ্রেমের ইমেজ URL; first_frame_url-এর সঙ্গে একত্রে ব্যবহার করতে হবে।
- promptটাইপ: stringসর্বোচ্চ দৈর্ঘ্য:2000
Prompt। text-to-video ও omni-reference মোডে আবশ্যক।
- referenceটাইপ: array string[] …3ফরম্যাট: uri
_audio _urls Omni-reference অডিও ক্লিপ।
- referenceটাইপ: array string[] …9ফরম্যাট: uri
_image _urls Omni-reference ইমেজ। প্রথম/শেষ ফ্রেমের সঙ্গে পারস্পরিক একচেটিয়া।
- referenceটাইপ: array string[] …3ফরম্যাট: uri
_video _urls Omni-reference ভিডিও। প্রথম/শেষ ফ্রেমের সঙ্গে পারস্পরিক একচেটিয়া। ভিডিও দিলে বিলিং ইউনিট মূল্য বদলায় এবং টোকেন গণনায় ইনপুট সময়কাল যোগ হয়।
- resolutionটাইপ: string enum
আউটপুট রেজোলিউশন। উচ্চ রেজোলিউশনে বেশি টোকেন লাগে এবং খরচও বেশি হয়।
মান- 480p
- 720p
- 1080p
- 4k
- serviceটাইপ: string | null
_tier বর্তমানে কেবল default (standard) সমর্থিত। বাদ দেওয়া, null, alias এবং অসমর্থিত স্ট্রিং default-এ ফিরে যায়; অন্য টাইপে HTTP 400 ফেরত আসে। কনফিগার করা চ্যানেল ও মূল্য অপরিবর্তিত থাকে। টেক্সট API প্রোভাইডারের standard মান পাঠায়; Decisions ও জেনারেশন API আপস্ট্রিম ফিল্ড বাদ দেয়।
- টাইপ: string ফরম্যাট: urilast
_frame _url - টাইপ: stringpromptসর্বোচ্চ দৈর্ঘ্য:2000
- টাইপ: array string[] …3ফরম্যাট: urireference
_audio _urls - টাইপ: array string[] …9ফরম্যাট: urireference
_image _urls - টাইপ: array string[] …3ফরম্যাট: urireference
_video _urls - টাইপ: string enumresolutionমান
- 480p
- 720p
- 1080p
- 4k
- টাইপ: string | nullservice
_tier বর্তমানে কেবল default (standard) সমর্থিত। বাদ দেওয়া, null, alias এবং অসমর্থিত স্ট্রিং default-এ ফিরে যায়; অন্য টাইপে HTTP 400 ফেরত আসে। কনফিগার করা চ্যানেল ও মূল্য অপরিবর্তিত থাকে। টেক্সট API প্রোভাইডারের standard মান পাঠায়; Decisions ও জেনারেশন API আপস্ট্রিম ফিল্ড বাদ দেয়।
- টাইপ: object · VideoGenerationAccepted202
টাস্ক গৃহীত হয়েছে
- enumkindconst:videoআবশ্যকমান
- video
- টাইপ: array string[]outputsআবশ্যক
টাস্ক সফল না হওয়া পর্যন্ত খালি।
- enumstatusconst:queuedআবশ্যকমান
- queued
- টাইপ: stringtask
_id আবশ্যকপোলিংয়ের জন্য ব্যবহার করার টাস্ক id।
application/json - টাইপ: object · GenerationError400
অবৈধ রিকোয়েস্ট (অজানা মডেল, মিশ্র ইনপুট মোড, অবৈধ ফিল্ড)
OpenAI-সামঞ্জস্যপূর্ণ এরর এনভেলপ।
- টাইপ: objecterror
- messageটাইপ: stringআবশ্যক
- typeটাইপ: string enumআবশ্যকমান
- invalid
_request _error - server
_error
- codeটাইপ: string
- paramটাইপ: string nullable
application/json - টাইপ: object · GenerationError401
Felo API key অবৈধ বা অনুপস্থিত
OpenAI-সামঞ্জস্যপূর্ণ এরর এনভেলপ।
- টাইপ: objecterror
- messageটাইপ: stringআবশ্যক
- typeটাইপ: string enumআবশ্যকমান
- invalid
_request _error - server
_error
- codeটাইপ: string
- paramটাইপ: string nullable
application/json - টাইপ: object · GenerationError402
অপর্যাপ্ত ব্যালেন্স / বিলিং শর্ত পূরণ হয়নি
OpenAI-সামঞ্জস্যপূর্ণ এরর এনভেলপ।
- টাইপ: objecterror
- messageটাইপ: stringআবশ্যক
- typeটাইপ: string enumআবশ্যকমান
- invalid
_request _error - server
_error
- codeটাইপ: string
- paramটাইপ: string nullable
application/json - টাইপ: object · GenerationError403
অ্যাকাউন্টে অনুমতি নেই (সাবস্ক্রিপশন প্রয়োজন বা ব্যবহারকারীকে নিষিদ্ধ করা হয়েছে)। নিষ্ক্রিয় মডেলগুলিও আপস্ট্রিম কলের আগে প্রত্যাখ্যাত হয়। ইতিমধ্যে গৃহীত রিকোয়েস্ট ও টাস্ক চলতে থাকে।
OpenAI-সামঞ্জস্যপূর্ণ এরর এনভেলপ।
- টাইপ: objecterror
- messageটাইপ: stringআবশ্যক
- typeটাইপ: string enumআবশ্যকমান
- invalid
_request _error - server
_error
- codeটাইপ: string
- paramটাইপ: string nullable
application/json - টাইপ: object · GenerationError429
রিকোয়েস্ট বা ব্যয়ের সীমা পূর্ণ হয়েছে
OpenAI-সামঞ্জস্যপূর্ণ এরর এনভেলপ।
- টাইপ: objecterror
- messageটাইপ: stringআবশ্যক
- typeটাইপ: string enumআবশ্যকমান
- invalid
_request _error - server
_error
- codeটাইপ: string
- paramটাইপ: string nullable
application/json - টাইপ: object · GenerationError502
আপস্ট্রিম প্রোভাইডার ব্যর্থ হয়েছে
OpenAI-সামঞ্জস্যপূর্ণ এরর এনভেলপ।
- টাইপ: objecterror
- messageটাইপ: stringআবশ্যক
- typeটাইপ: string enumআবশ্যকমান
- invalid
_request _error - server
_error
- codeটাইপ: string
- paramটাইপ: string nullable
application/json - টাইপ: object · GenerationError503
জেনারেশন পরিষেবা বা বিলিং পরিষেবা সাময়িকভাবে অনুপলব্ধ
OpenAI-সামঞ্জস্যপূর্ণ এরর এনভেলপ।
- টাইপ: objecterror
- messageটাইপ: stringআবশ্যক
- typeটাইপ: string enumআবশ্যকমান
- invalid
_request _error - server
_error
- codeটাইপ: string
- paramটাইপ: string nullable
application/json
curl https://openapi.felo.ai/api/v1/videos/generations \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"model": "seedance-2.0-mini",
"prompt": "a cinematic trailer shot, 720p",
"resolution": "720p",
"duration": 5,
"generate_audio": true
}'
{
"task_id": "string",
"status": "queued",
"kind": "video",
"outputs": [
"string"
]
}