API RapidVideoMaker
The REST API lets you process video files from any HTTP client — Python scripts, n8n workflows, third-party tools. Five modes available: Merge videos (multiple MP4/MOV), Edit audio (1 MP4/MOV + 1 MP3), Create a video (1 JPG/PNG + 1 MP3), Overlay video (2 MP4/MOV picture-in-picture). Processing is asynchronous: submit files, then poll for the result.
مکمل ورک فلو
ہر انٹیگریشن یہی 4 مراحل پر مشتمل سلسلے کی پیروی کرتا ہے:
POST /api/v1/render.phpmultipart/form-data کے طور پر فائلیں بھیجیں۔ 1 JPG/PNG تصویر + 1 MP3 + mode=image_to_video → ویڈیو جنریشن۔ 1 MP4/MOV + 1 MP3 → آڈیو ترمیم۔ متعدد MP4/MOV → ضم کرنا۔ سرور ایک منفرد job_id واپس کرتا ہے۔ یا 1 تصویر + options.text + options.voice: آواز متن سے بنائی جاتی ہے، MP3 کی ضرورت نہیں۔GET /api/v1/jobs.php?job_id=…queued → processing → ready (یا error) سے گزرتی ہے۔ready ہو، تو رسپانس میں استعمال کے لیے تیار download_url فیلڈ ہوتی ہے۔GET /api/download.php?job_id=…تصدیق
ہر درخواست میں آپ کا API ٹوکن ہونا ضروری ہے۔ دو فارمیٹ قابل قبول ہیں:
آپ کا ٹوکن آپ کے ممبر ایریا میں دستیاب ہے — فی اکاؤنٹ ایک ٹوکن، رجسٹریشن پر خود بخود بنایا جاتا ہے۔
کوٹہ
ہر ممبر اکاؤنٹ میں روزانہ 20 درخواستیں ہوتی ہیں، ویب انٹرفیس اور API کے درمیان مشترک۔
POST رسپانس میں quota_used اور quota_remaining شامل ہیں۔ حد سے زیادہ ہونے پر سرور 429 سے جواب دیتا ہے۔
قطار
ایک وقت میں ایک جاب پروسیس ہوتی ہے۔ بیک وقت متعدد جابز جمع کرنے پر وہ قطار میں جاتی ہیں۔ انتظار کے دوران اسٹیٹس رسپانس میں شامل ہیں:
queue_position— قطار میں جاب کی پوزیشن (1 = اگلی پروسیس کے لیے)queue_total— انتظار کرنے والی جابز کی کل تعدادeta_minutes— پروسیسنگ شروع ہونے سے پہلے متوقع وقت
/api/v1/jobs.php اینڈ پوائنٹ فی ٹوکن 12 کالز فی منٹ قبول کرتا ہے۔ اس سے زیادہ پر سرور 429 کے ساتھ جواب دیتا ہے۔ دستیاب ٹرانزیشن
براہ راست مرج کے لیے transition_type=none (ڈیفالٹ) پاس کریں، یا کلپس کے درمیان فیڈ کے لیے نیچے دیے گئے اقسام میں سے ایک:
مدت (transition_duration) 0.2 سے 2.0 سیکنڈ کے درمیان ہے۔
اینڈ پوائنٹس
Five modes, accessible via the mode field (omit mode with multiple MP4s to auto-detect fusion):
| استعمال | API موڈ | ضروری فائلیں | تفصیل |
|---|---|---|---|
| ویڈیوز ضم کریں | fusion |
2–20 MP4/MOV فائلیں | کلپس مخصوص ترتیب میں آخر تک جوڑی جاتی ہیں۔ کلپس کے درمیان اختیاری ٹرانزیشن۔ |
| آڈیو ترمیم | add_audio یا mix_audio |
1 MP4/MOV + 1 MP3 | ویڈیو کی آڈیو ٹریک کو تبدیل یا بہتر کرتا ہے۔ ویڈیو ٹریک کبھی ری-انکوڈ نہیں ہوتی (-c:v copy). |
| ویڈیو بنائیں | image_to_video |
1 JPG/PNG + 1 MP3 — یا 1 JPG/PNG + ایک متن (options.text + options.voice): آواز بنائی جاتی ہے |
ایک ساکن تصویر اور آپ کی MP3 سے — یا صرف ایک متن (options.text) سے، جس کی آواز بنائی جاتی ہے (options.voice) — ویڈیو بناتا ہے۔ متن اوورلے (ساکن، لفظ بہ لفظ یا کراؤکے)، فیڈ، ریزولوشن اور fps فیلڈ options کے ذریعے قابلِ ترتیب ہیں۔ |
| ویڈیو اوورلے | overlay_video |
2 MP4/MOV | مرکزی ویڈیو کے اوپر دوسری ویڈیو رکھتا ہے۔ options فیلڈ سے مقام، سائز، غیر شفافیت اور آڈیو منتخب کریں۔ |
| متن شامل کریں | add_text |
1 MP4/MOV | موجودہ ویڈیو پر متن لگاتا ہے (ریزولوشن، فریم ریٹ اور آڈیو برقرار رہتے ہیں)۔ image_to_video جیسی ہی متن کی ترتیبات، ساتھ متن کے ظاہر ہونے کا وقت۔ options.text لازمی ہے۔ |
| متن سے MP3 | text_to_mp3 |
(صرف متن) | متن کو تقریر میں بدلتا ہے اور ایک MP3 فائل واپس کرتا ہے۔ کوئی فائل اپ لوڈ ضروری نہیں — mode=text_to_mp3، text اور lang فارم فیلڈز کے طور پر بھیجیں۔ |
options.text + options.voice کے ساتھ image_to_video صرف 1 تصویر قبول کرتا ہے — آواز متن سے بنائی جاتی ہے (MP3 کے بغیر)۔options.voice کے ساتھ image_to_video کا دورانیہ متن سے بنی آواز جتنا ہوتا ہے (+0.6 سیکنڈ)۔عام پیرامیٹرز (multipart/form-data)
| فیلڈ | قسم | ضروری | تفصیل |
|---|---|---|---|
| videos[] | File[] | ہاں | پروسیس کرنے کی فائلیں۔ موڈ کے مطابق: 2–20 MP4/MOV، یا 1 MP4/MOV + 1 MP3، یا 1 تصویر (JPG/PNG) + 1 MP3۔ فی فائل زیادہ سے زیادہ 500 MB۔ |
| mode | string | * | image_to_video | add_audio | mix_audio | overlay_video | text_to_mp3۔ ان non-fusion موڈز کے لیے ضروری ہے۔ صرف MP4/MOV فائلوں کے ساتھ mode چھوڑنا ہمیشہ fusion کو متحرک کرتا ہے (سٹریم کاپی ملاپ) — کبھی overlay_video نہیں، چاہے بالکل 2 MP4/MOV اپ لوڈ ہوں۔ آڈیو ترمیم کے لیے: add_audio اصل کو حذف کرتا ہے، mix_audio اسے برقرار رکھتا ہے اور اوورلے کرتا ہے۔ اگر mode فیلڈ فراہم کی گئی ہے، تو اپ لوڈ کردہ فائلوں کو بالکل مماثل ہونا چاہیے — ورنہ درخواست مسترد کر دی جاتی ہے۔ add_text بھی قبول ہے: یہ واحد موڈ ہے جو صرف ایک MP4/MOV فائل لیتا ہے، اور options.text کا تقاضا کرتا ہے۔ |
| order | JSON | صرف fusion موڈ — کلپ ترتیب کی وضاحت کرنے والی JSON انڈیکس ارے۔ | |
| transition_type | string | صرف fusion موڈ۔ ڈیفالٹ: none۔ | |
| transition_duration | float | صرف fusion موڈ۔ مدت 0.2–2.0 سیکنڈ۔ ڈیفالٹ: 0.5۔ | |
| options | JSON | image_to_video, add_text, mix_audio اور overlay_video کے لیے رینڈر پیرامیٹرز کا JSON آبجیکٹ (نیچے جدولیں دیکھیں)۔ | |
| timings | File / string | image_to_video / add_text: کراؤکی ٹائمنگ فائل (SRT یا LRC، زیادہ سے زیادہ 200 KB) — فائل فیلڈ یا سادہ متن۔ دکھایا جانے والا متن فائل سے آتا ہے؛ text_mode=karaoke لازم ہوتا ہے؛ voice کے ساتھ استعمال نہیں ہو سکتا۔ | |
| callback_url | string | پبلک URL (http/https) جو جاب مکمل ہونے پر کال ہوتی ہے۔ رسپانس میں webhook_secret شامل ہے۔ |
options پیرامیٹرز — image_to_video موڈ
سب اختیاری۔ فراہم نہ کردہ قدریں → ورکر ڈیفالٹ لاگو کرتا ہے۔
| کلید | قسم | ڈیفالٹ | تفصیل |
|---|---|---|---|
| text | string | "" | اوورلے کے طور پر دکھایا جانے والا متن۔ خالی = کوئی متن نہیں۔ زیادہ سے زیادہ 500 حروف۔ |
| font | string | "default" | متن کا فونٹ، شناخت کے مطابق۔ قابلِ قبول قدریں: default, dejavu-sans-bold, dejavu-serif, liberation-serif, dejavu-mono, amiri, noto-sans-sc (简体中文), noto-sans-tc (繁體中文), noto-sans-jp (日本語), noto-sans-kr (한국어), noto-sans-hebrew (עברית), noto-sans-thai (ไทย)۔ default = معیاری فونٹ (ایموجی معاون)؛ amiri = نسخ فونٹ، عربی متن کے لیے موزوں۔ کوئی بھی دوسری قدر invalid_option خرابی واپس کرتی ہے۔ ایموجی صرف default کے ساتھ دکھائی دیتے ہیں۔ |
| font_size | int | 60 | پکسل میں فانٹ سائز۔ رینج: 10–300۔ |
| text_color | string | "white" | متن کا رنگ (جیسے white, yellow, #ffffff)۔ |
| text_position | string | "center" | متن کی پوزیشن: center, top, bottom۔ |
| box | bool | true | متن کے پیچھے نیم شفاف پس منظر۔ |
| box_color | string | "black@0.4" | FFmpeg فارمیٹ میں رنگ + غیر شفافیت: color@opacity۔ |
| fade_duration | float | 0.5 | سیکنڈ میں فیڈ ان/آؤٹ مدت (0–2)۔ 0 = کوئی فیڈ نہیں۔ |
| width | int | 1080 | پکسل میں ویڈیو چوڑائی (64–3840، جفت عدد)۔ |
| height | int | 1920 | پکسل میں ویڈیو اونچائی (64–3840، جفت عدد)۔ |
| fps | int | 24 | فریم ریٹ (1–60)۔ |
| image_fit | string | "contain" | contain: پوری تصویر یا ویڈیو دکھائیں اور خالی جگہ منتخب پس منظر سے بھریں۔ solid (پہلے سے طے شدہ) یا blur۔ دھندلاہٹ کے لیے image_fit=contain ضروری ہے۔ متن واضح رہتا ہے۔ cover: تصویر فریم بھرنے کے لیے زوم ہوتی ہے، درمیان میں — کنارے کٹ جاتے ہیں۔ |
| bg_color | string | "black" | background_mode=solid: پس منظر رنگ اگر تصویر ہدف ریزولوشن نہ بھرے — صرف image_fit=contain کے ساتھ متعلق۔ |
| background_mode | string | "solid" | solid (پہلے سے طے شدہ) یا blur۔ دھندلاہٹ کے لیے image_fit=contain ضروری ہے۔ متن واضح رہتا ہے۔ |
| blur_strength | number | 20 | 1 سے 50 تک عدد؛ پہلے سے طے شدہ 20۔ گاوسی دھندلاہٹ صرف پس منظر پر لاگو ہوتی ہے۔ |
| enable_image_motion | bool | false | فوٹو انیمیشن فعال کرتا ہے۔ false پر تصویر ساکن رہتی ہے۔ |
| image_motion_effect | string | "ken_burns" | انیمیشن اثر۔ قابل قبول قدریں: zoom_in, zoom_out, pan_left_to_right, pan_right_to_left, pan_top_to_bottom, pan_bottom_to_top, zoom_pan_soft, ken_burns۔ |
| motion_intensity | float | 1.0 | فوٹو انیمیشن کی شدت (0.25–2.0)۔ |
| text_effect | string | "none" | متن اوورلے انیمیشن۔ قابل قبول قدریں: none, fade_in, slide_up, slide_down, slide_left, bounce۔ |
| text_effect_intensity | float | 1.0 | متن انیمیشن کی شدت (0.25–2.0)۔ |
| text_border_width | int | 0 | حروف کے گرد کالی آؤٹ لائن کی موٹائی پکسل میں (0 = غیر فعال، 1–10)۔ |
| text_border_color | string | "black" | حروف کے حاشیے کا رنگ (text_color جیسا فارمیٹ، ڈیفالٹ "black")۔ text_border_width > 0 ہونے پر استعمال ہوتا ہے۔ |
| text_mode | string | "static" | متن ظاہر کرنے کا موڈ۔ static (ڈیفالٹ): پہلے فریم سے پورا متن نظر آتا ہے۔ word_by_word: word_reveal_speed کی رفتار سے الفاظ ایک ایک کر کے ظاہر ہوتے ہیں۔ text_effect کے ساتھ استعمال نہیں ہو سکتا: text_mode=word_by_word ہونے پر text_effect نظرانداز ہو جاتا ہے۔ "karaoke": آڈیو کی لے کے ساتھ متن کا رنگ بدلتا ہے، صفحہ بہ صفحہ (1,000 حروف تک)۔ voice کے ساتھ لفظ بہ لفظ ہم وقت، ورنہ الفاظ کی لمبائی کے مطابق آڈیو پر تقسیم۔ |
| word_reveal_speed | float | 1.5 | فی سیکنڈ الفاظ ظاہر کرنے کی رفتار (0.3–5.0، ڈیفالٹ 1.5)۔ صرف text_mode=word_by_word کے ساتھ۔ OpenAI TTS سنک کے لیے تجویز کردہ قدر: 2.0۔ |
| word_anim | string | "none" | ہر لفظ کی ظاہر ہونے کی اینیمیشن۔ none (ڈیفالٹ): فوری ظاہر ہونا۔ fade: ہر نیا لفظ 0.2s فیڈ کے ساتھ ظاہر ہوتا ہے۔ صرف text_mode=word_by_word کے ساتھ۔ |
| karaoke_style | string | "fill" | کراؤکی انداز: fill (بولے گئے الفاظ نمایاں رنگ لیتے ہیں)، sweep (ہر لفظ بتدریج بھرتا ہے؛ دائیں سے بائیں لکھی جانے والی تحریروں میں پورے الفاظ) یا highlight (صرف موجودہ لفظ رنگین)۔ |
| highlight_color | string | "#FFD200" | کراؤکی موڈ میں بولے گئے الفاظ / موجودہ لفظ کا رنگ (text_color جیسا فارمیٹ)۔ |
| karaoke_lines | int | 2 | کراؤکی موڈ میں فی صفحہ دکھائی جانے والی سطریں (1–4)۔ |
| voice | string | "" | آواز کی ID (text_to_mp3 والی فہرست، مثلاً ur-PK-UzmaNeural): اسی جاب میں text سے آواز تیار ہوتی ہے۔ تب image_to_video کو صرف تصویر چاہیے (ساتھ بھیجی گئی MP3 مسترد کی جاتی ہے)۔ کراؤکی موڈ میں ہر لفظ آواز کے ساتھ ہم وقت ہوتا ہے۔ |
| voice_rate | int | 0 | تیار کی گئی آواز کی رفتار، % میں (−50 سے +50)۔ |
اپنی ٹائمنگ کے ساتھ کراؤکی (SRT / LRC)
timings فیلڈ میں SRT یا LRC فائل بھیجیں: ہر سطر اپنے وقت پر ظاہر ہوتی ہے اور کراؤکی کا ایک صفحہ بنتی ہے (500 سطروں، 5,000 حروف تک)۔ SRT: سطر اپنے اختتامی وقت پر غائب ہو جاتی ہے۔ LRC: سطر اگلی سطر تک رہتی ہے (خالی سطر اسے روک دیتی ہے)؛ [offset:] اور enhanced LRC کی لفظی ٹائمنگ <mm:ss.xx> معاون ہیں — ورنہ ہر سطر اپنی مدت پر تقسیم ہوتی ہے۔ add_text میں اوقات ویڈیو کے آغاز سے، text_start کے برابر سرکا کر، شمار ہوتے ہیں۔
options پیرامیٹرز — overlay_video موڈ
سب اختیاری ہیں۔ اپ لوڈ کی ترتیب اہم ہے: پہلی فائل مرکزی ویڈیو (پس منظر) ہے، دوسری فائل اوپر رکھی گئی ویڈیو ہے۔ سبز پردہ ہٹانے کے لیے chroma_key استعمال کریں۔
| کلید | قسم | ڈیفالٹ | تفصیل |
|---|---|---|---|
| position | string | "bottom-right" | ویڈیو رکھنے کا کونہ: top-left، top-right، bottom-left، bottom-right یا center۔ |
| scale | float | 0.30 | مرکزی ویڈیو کی چوڑائی کے تناسب سے اوورلے کا سائز۔ 0.25 = چوڑائی کا 25%۔ حد: 0.05–1.0۔ |
| opacity | float | 1.0 | اوورلے کی غیر شفافیت۔ 1.0 = مکمل غیر شفاف، 0.0 = نظر نہ آنے والا۔ |
| margin | int | 10 | اوورلے اور فریم کے کنارے کے درمیان فاصلہ، پکسلز میں۔ position=center پر نظر انداز ہوتا ہے۔ حد: 0–200۔ |
| audio | string | "main" | کون سی آڈیو برقرار رہے: main صرف مرکزی ویڈیو، overlay صرف اوپر والی ویڈیو، mix دونوں ٹریکس برابر آواز پر ملاتا ہے۔ |
| chroma_key | bool | false | اوپر والی ویڈیو کا خالص سبز (#00FF00) پس منظر ہٹانے کے لیے true دیں — سبز پردے پر بنائی گئی ویب کیم ویڈیوز یا اینیمیشن کے لیے مفید۔ |
| chroma_similarity | float | 0.20 | سبز پردے کی برداشت۔ کم قدر موضوع کے کنارے محفوظ رکھتی ہے؛ زیادہ قدر غیر یکساں روشنی کو سنبھالتی ہے۔ ڈیجیٹل سبز کے لیے 0.10–0.20، حقیقی پردے کے لیے 0.25–0.45 تجویز کردہ ہیں۔ حد: 0.01–0.60۔ |
options پیرامیٹرز — add_text موڈ
متن ضروری ہے۔ پہلے سے طے شدہ حالت میں ویڈیو کا فارمیٹ، فریم ریٹ اور آڈیو برقرار رہتے ہیں۔ output_format سے image_fit، bg_color اور background_mode کے ساتھ نیا فریم منتخب ہوتا ہے۔ width، height، fps اور تصویر کی حرکت کے اختیارات نظر انداز رہتے ہیں۔ زیادہ سے زیادہ دورانیہ: 15 منٹ۔
{"text":"Hello","output_format":"portrait","image_fit":"contain","background_mode":"blur","blur_strength":20}
| کلید | قسم | ڈیفالٹ | تفصیل |
|---|---|---|---|
| text | string | ہاں | لگانے کا متن۔ لازمی، 1–200 حروف۔ |
| text_start | float | 0 | وہ سیکنڈ جب متن ظاہر ہوتا ہے (≥ 0)۔ یہ ویڈیو کے اختتام سے پہلے ہونا چاہیے۔ |
| text_duration | float | 0 | متن کتنی دیر نظر آئے گا، سیکنڈ میں (0.1–3600)۔ 0 = ویڈیو کے آخر تک۔ |
| font | string | "default" | متن کا فونٹ، شناخت کے مطابق۔ قابلِ قبول قدریں: default, dejavu-sans-bold, dejavu-serif, liberation-serif, dejavu-mono, amiri, noto-sans-sc (简体中文), noto-sans-tc (繁體中文), noto-sans-jp (日本語), noto-sans-kr (한국어), noto-sans-hebrew (עברית), noto-sans-thai (ไทย)۔ default = معیاری فونٹ (ایموجی معاون)؛ amiri = نسخ فونٹ، عربی متن کے لیے موزوں۔ کوئی بھی دوسری قدر invalid_option خرابی واپس کرتی ہے۔ ایموجی صرف default کے ساتھ دکھائی دیتے ہیں۔ |
| font_size | int | 60 | فونٹ کا سائز، اس ویڈیو کے لیے دیا گیا جس کا چھوٹا کنارہ 1080 px ہو، اور اصل ریزولوشن کے مطابق خودکار طور پر اسکیل ہوتا ہے — ایک ہی قدر 720p اور 4K پر یکساں نظر آتی ہے۔ حد: 10–300۔ |
| fade_duration | float | 0.5 | متن (ویڈیو کا نہیں) کے فیڈ ان/آؤٹ کا دورانیہ، سیکنڈ میں۔ حد: 0–2۔ |
| text_color, box, box_color, text_position, text_border_width, text_border_color, text_effect, text_effect_intensity, text_mode, word_reveal_speed, word_anim, karaoke_style, highlight_color, karaoke_lines, voice, voice_rate | — | — | image_to_video کے مطابق (اوپر کا جدول دیکھیں)۔ |
| original_volume | float | 0.3 | voice کے ساتھ: آواز کے نیچے ویڈیو کی اصل آواز کا والیوم (0–2، ڈیفالٹ 0.3؛ 0 = تبدیل)۔ آواز text_start پر شروع ہوتی ہے؛ اس کے ختم ہونے تک متن نظر آتا ہے، اور اگر یہ ویڈیو کے اختتام سے آگے جائے تو آخری فریم روک دیا جاتا ہے۔ |
| background_mode | string | "solid" | solid (پہلے سے طے شدہ) یا blur۔ دھندلاہٹ کے لیے image_fit=contain ضروری ہے۔ متن واضح رہتا ہے۔ |
| blur_strength | number | 20 | 1 سے 50 تک عدد؛ پہلے سے طے شدہ 20۔ گاوسی دھندلاہٹ صرف پس منظر پر لاگو ہوتی ہے۔ |
| output_format | string | "original" | صرف add_text: original (پہلے سے طے شدہ)، portrait (1080×1920)، square (1080×1080)، landscape (1920×1080)۔ دھندلاہٹ کے لیے original کے علاوہ فارمیٹ ضروری ہے۔ |
| image_fit | string | "contain" | contain: پوری تصویر یا ویڈیو دکھائیں اور خالی جگہ منتخب پس منظر سے بھریں۔ solid (پہلے سے طے شدہ) یا blur۔ دھندلاہٹ کے لیے image_fit=contain ضروری ہے۔ متن واضح رہتا ہے۔ cover: تصویر فریم بھرنے کے لیے زوم ہوتی ہے، درمیان میں — کنارے کٹ جاتے ہیں۔ |
| bg_color | string | "black" | background_mode=solid: پس منظر رنگ اگر تصویر ہدف ریزولوشن نہ بھرے — صرف image_fit=contain کے ساتھ متعلق۔ |
options پیرامیٹرز — آڈیو ترمیم (mix_audio)
صرف mode=mix_audio کے ساتھ دستیاب۔
| کلید | قسم | ڈیفالٹ | تفصیل |
|---|---|---|---|
| mp3_volume | float | 1.0 | اوورلیڈ MP3 کی والیوم (0.0 = خاموش، 1.0 = اصل والیوم، 2.0 = دوگنا)۔ |
text_to_mp3 موڈ — براہ راست پیرامیٹرز (options JSON نہیں)
دیگر موڈز کے برعکس، یہ فیلڈز براہ راست فارم فیلڈز کے طور پر بھیجے جاتے ہیں، options JSON آبجیکٹ کے اندر نہیں۔ صرف text ضروری ہے۔
| کلید | قسم | ڈیفالٹ | تفصیل |
|---|---|---|---|
| text | string | — | آواز میں تبدیل کرنے کے لیے متن۔ ضروری۔ زیادہ سے زیادہ 5,000 حروف۔ |
| lang | string | "en" | زبان کوڈ جو voice کے حذف یا غلط ہونے پر ڈیفالٹ آواز منتخب کرنے کے لیے استعمال ہوتا ہے۔ سائٹ کی 20 زبانوں میں سے ایک (نیچے جدول دیکھیں)۔ نامعلوم ہونے پر en پر واپس جاتا ہے۔ |
| voice | string | خودکار | edge-tts آواز کی ID (نیچے جدول دیکھیں)۔ اگر حذف ہو یا غلط ہو، تو lang کی پہلی آواز خودکار طور پر استعمال ہوتی ہے۔ |
| slow | bool | false | بولنے کی رفتار 25% کم کرنے کے لیے true (یا 1) سیٹ کریں۔ کوئی بھی دوسری قدر false سمجھی جاتی ہے۔ |
text_to_mp3 کو videos[] کی ضرورت نہیں۔ عام فارم فیلڈز کے طور پر mode=text_to_mp3 کے ساتھ text / lang / voice / slow بھیجیں۔دستیاب آوازیں (edge-tts، Microsoft Neural)، زبان کوڈ کے مطابق گروپ بند:
| زبان | دستیاب آوازیں |
|---|---|
en |
en-US-AvaNeural, en-US-AndrewNeural, en-GB-LibbyNeural, en-AU-NatashaNeural, en-AU-WilliamMultilingualNeural |
fr |
fr-FR-DeniseNeural, fr-FR-HenriNeural, fr-FR-EloiseNeural, fr-CA-SylvieNeural, fr-CA-ThierryNeural |
es |
es-ES-ElviraNeural, es-ES-AlvaroNeural, es-MX-DaliaNeural, es-AR-ElenaNeural, es-AR-TomasNeural |
ar |
ar-SA-ZariyahNeural, ar-SA-HamedNeural, ar-EG-SalmaNeural, ar-MA-MounaNeural, ar-MA-JamalNeural |
pt |
pt-BR-FranciscaNeural, pt-BR-AntonioNeural, pt-PT-RaquelNeural |
de |
de-DE-KatjaNeural, de-DE-ConradNeural, de-DE-AmalaNeural, de-AT-IngridNeural, de-AT-JonasNeural |
it |
it-IT-ElsaNeural, it-IT-DiegoNeural, it-IT-IsabellaNeural |
nl |
nl-NL-ColetteNeural, nl-NL-MaartenNeural, nl-BE-DenaNeural, nl-BE-ArnaudNeural |
ru |
ru-RU-SvetlanaNeural, ru-RU-DmitryNeural |
tr |
tr-TR-EmelNeural, tr-TR-AhmetNeural |
hi |
hi-IN-SwaraNeural, hi-IN-MadhurNeural |
bn |
bn-IN-TanishaaNeural, bn-IN-BashkarNeural, bn-BD-NabanitaNeural, bn-BD-PradeepNeural |
ur |
ur-PK-UzmaNeural, ur-PK-AsadNeural, ur-IN-GulNeural, ur-IN-SalmanNeural |
id |
id-ID-GadisNeural, id-ID-ArdiNeural |
ja |
ja-JP-NanamiNeural, ja-JP-KeitaNeural |
ko |
ko-KR-SunHiNeural, ko-KR-InJoonNeural |
zh-CN |
zh-CN-XiaoxiaoNeural, zh-CN-YunxiNeural, zh-CN-XiaoyiNeural |
zh-TW |
zh-TW-HsiaoChenNeural, zh-TW-YunJheNeural |
vi |
vi-VN-HoaiMyNeural, vi-VN-NamMinhNeural |
pl |
pl-PL-ZofiaNeural, pl-PL-MarekNeural |
کامیابی رسپانس (HTTP 200)
text_to_mp3 کے لیے، جواب میں file_count یا transition فیلڈز شامل نہیں ہوتیں (کوئی فائل اپ لوڈ نہیں ہوئی) — باقی سب یکساں ہے: job_id، quota_used، quota_remaining، status_url، webhook_secret۔curl مثال — image_to_video موڈ
تیار کی گئی آواز کے ساتھ کراؤکی متن (image_to_video، بغیر MP3)
SRT فائل کے ساتھ کراؤکی (image_to_video + آپ کی MP3)
curl مثال — آڈیو ترمیم
curl مثال — overlay_video موڈ
curl مثال — add_text موڈ
curl مثال — ویڈیوز ضم کریں
curl مثال — text_to_mp3 موڈ
حالت میں اصل مرحلہ اور گزرا وقت شامل ہے۔ اندازے تقریبی ہیں؛ کلائنٹ کا وقت ختم ہونا کام کی ناکامی نہیں۔ اسی کام کے شناختی نمبر کی نگرانی جاری رکھیں۔ فائلیں تکمیل کے دو گھنٹے بعد ختم ہوتی ہیں۔
ممکنہ حالتیں
| حالت | معنی | اضافی فیلڈز |
|---|---|---|
| queued | قطار میں، ابھی پروسیس نہیں ہوئی | queue_position, queue_total, eta_minutes |
| processing | FFmpeg پروسیسنگ جاری ہے | processing_stage, processing_elapsed_seconds, stage_elapsed_seconds, last_activity_at, processed_media_seconds, eta_overrun |
| ready | مکمل — فائل دستیاب | download_url, media_available, created_at, expires_at |
| error | پروسیسنگ ناکام | error (message), quota_refund_status: pending | confirmed | not_required |
| cancelled | منسوخ ہو گیا | quota_refund_status: pending | confirmed | not_required |
حالت کے مطابق رسپانس
curl مثال
عام پیرامیٹرز (multipart/form-data)
| پیرامیٹر | قسم | ڈیفالٹ | تفصیل |
|---|---|---|---|
page | integer | 1 | صفحہ نمبر (1 سے شروع) |
limit | integer | 20 | فی صفحہ نتائج (زیادہ سے زیادہ 50، ڈیفالٹ 20) |
حالت کے مطابق رسپانس
آخری فائل کو سٹریم کرتا ہے۔ Content-Type ویڈیو موڈز کے لیے video/mp4، یا text_to_mp3 کے لیے audio/mpeg ہے۔ ٹوکن کی ضرورت نہیں۔ صرف اس وقت دستیاب جب اسٹیٹس ready ہو۔
فائل جاب مکمل ہونے کے 2 گھنٹے بعد حذف ہو جاتی ہے۔
اختیاری پیرامیٹرز
| پیرامیٹر | تفصیل |
|---|---|
| filename | ڈاؤن لوڈ کی گئی فائل کا تجویز کردہ نام (جیسے meri-video.mp4) |
| preview | ڈاؤن لوڈ شروع کرنے کے بجائے ان لائن پلے بیک کے لیے (Content-Disposition: attachment کو چھوڑتا ہے) 1 سیٹ کریں — براؤزر میں پیش منظر کے لیے استعمال ہوتا ہے۔ |
curl مثال
ویب ہکس
ویب ہکس پولنگ کا متبادل ہیں: ہر X سیکنڈ میں اسٹیٹس چیک کرنے کی بجائے، آپ ایک URL فراہم کرتے ہیں اور سرور خود بخود جاب مکمل ہونے پر آپ کو کال کرتا ہے۔
یہ کیسے کام کرتا ہے
/api/v1/render.phpکو POST میںcallback_urlپاس کریں- رسپانس میں
webhook_secretہوتا ہے — دستخط تصدیق کے لیے رکھیں - جب جاب
readyیاerrorپہنچتی ہے تو سرور آپ کے URL پر دستخط شدہ JSONPOSTبھیجتا ہے HMAC-SHA256(webhook_secret, raw_body)سے دستخط تصدیق کریں
callback_url ایک عوامی طور پر قابل رسائی URL ہونا ضروری ہے۔ نجی اور لوپ بیک IP پتے بلاک ہیں۔ ٹائم آؤٹ: 10 سیکنڈ۔ موصولہ پے لوڈ
سرور کے بھیجے گئے ہیڈرز
| ہیڈر | قدر |
|---|---|
| Content-Type | application/json |
| X-RVM-Signature | sha256=<hmac_hex> — raw body کا HMAC-SHA256 دستخط |
| X-RVM-Job-Id | متعلقہ job_id |
دستخط تصدیق
غلطی کوڈز
| HTTP | JSON کوڈ | وجہ |
|---|---|---|
| 401 | unauthorized | ٹوکن غائب، غلط یا منسوخ |
| 400 | missing_files | کوئی فائل نہیں ملی |
| 400 | too_few_files | 2 سے کم فائلیں بھیجی گئیں |
| 400 | too_many_files | 20 سے زیادہ فائلیں بھیجی گئیں |
| 400 | invalid_mime | غیر معاون فائل — صرف MP4، MP3 اور JPG/PNG تصاویر قبول ہیں |
| 400 | wrong_file_count | فائلوں کی تعداد منتخب موڈ سے مطابقت نہیں رکھتی |
| 400 | wrong_file_types | فائل اقسام منتخب موڈ سے مطابقت نہیں رکھتیں |
| 400 | invalid_file_combination | موڈ کے بغیر فائل مجموعہ کسی معاون موڈ سے مطابقت نہیں رکھتا |
| 400 | invalid_options | options فیلڈ درست JSON نہیں ہے |
| 400 | invalid_option | options میں ایک قدر غلط ہے |
| 400 | file_too_large | ایک فائل 500 MB سے زیادہ ہے |
| 400 | text_required | options.text فیلڈ موجود نہیں یا خالی ہے (add_text موڈ) |
| 400 | video_too_long | ویڈیو 15 منٹ سے لمبی ہے (add_text موڈ) |
| 400 | text_start_out_of_range | text_start ویڈیو کے اختتام سے آگے ہے |
| 400 | invalid_voice | نامعلوم voice ID۔ |
| 400 | invalid_timings | ناقابلِ مطالعہ ٹائمنگ فائل (فارمیٹ نہیں پہچانا گیا، کوئی وقت والی سطر نہیں، اختتام آغاز سے پہلے، بہت طویل…)۔ |
| 400 | invalid_order | order ارے ایک درست پرمیوٹیشن نہیں ہے |
| 400 | invalid_job_id | غلط job_id فارمیٹ (32 حرفی hex ہونا چاہیے) |
| 404 | job_not_found | جاب نہیں ملی — job_id نامعلوم یا کبھی موجود نہیں تھی |
| 410 | job_expired | جاب میعاد ختم — موجود تھی لیکن 2 گھنٹے کی ریکوری ونڈو گزر گئی |
| 429 | quota_exceeded | روزانہ 20 کامیاب جابز پہنچ گئیں |
| 429 | rate_limited | /api/v1/jobs.php پر 12 سے زیادہ کالز/منٹ — Retry-After سیکنڈ انتظار کریں |
| 500 | server_error | اندرونی سرور خرابی |
انٹیگریشن مثالیں
ہر موڈ کے لیے مثالیں — pip install requests سے requests انسٹال کریں۔
مشترک ترتیب
image_to_video موڈ — تصویر + آڈیو → ویڈیو
آڈیو ترمیم
overlay_video موڈ — تصویر میں تصویر
add_text موڈ — ویڈیو پر متن
ویڈیوز ضم کریں
text_to_mp3 موڈ — متن سے آواز
پولنگ + ڈاؤن لوڈ (تمام موڈز کے لیے مشترک)
n8n میں دو طریقے: پولنگ (اسٹیٹس لوپ) یا ویب ہک (سرور n8n کو کال کرتا ہے)۔ ویب ہک تجویز کیا جاتا ہے۔
طریقہ A — ویب ہک (تجویز کردہ)
صرف 3 نوڈز، کوئی لوپ نہیں۔
نوڈ 1 — ویب ہک ٹرگر
ورک فلو ان پٹ کے طور پر ایک Webhook نوڈ شامل کریں (طریقہ POST)۔
نوڈ 2 — جاب بنائیں (HTTP Request)
| طریقہ | POST |
| URL | https://rapidvideomaker.com/api/v1/render.php |
| تصدیق | Header Auth — Authorization: Bearer rvm_… |
| Body Content Type | Form-Data Multipart |
| Body params | ہر کلپ کے لیے بائنری فیلڈ videos[] + ٹیکسٹ فیلڈ callback_url = اوپر ویب ہک نوڈ URL |
دستخط تصدیق کے لیے رسپانس سے webhook_secret ورک فلو متغیر میں محفوظ کریں۔
نوڈ 3 — نتیجہ پروسیس کریں (ویب ہک سے چلنے والے ورک فلو میں)
جب n8n سرور کا POST وصول کرے، $json.status ready یا error ہوتا ہے۔
webhook_secret سے raw body کے HMAC-SHA256 کے ساتھ {{ $headers['x-rvm-signature'] }} کا موازنہ کریں۔طریقہ B — پولنگ (ویب ہک کے بغیر)
5 نوڈز، ہر 10 سیکنڈ میں اسٹیٹس لوپ۔
نوڈ 1 — جاب بنائیں — اوپر جیسی ترتیب، callback_url کے بغیر۔
نوڈ 2 — انتظار کریں — 10 سیکنڈ۔
نوڈ 3 — اسٹیٹس پول کریں (HTTP Request GET)
| URL | https://rapidvideomaker.com/api/v1/jobs.php |
| Query پیرامیٹرز | job_id = {{ $('نوڈ 1').item.json.job_id }} |
| تصدیق | Header Auth — وہی ٹوکن |
نوڈ 4 — If: {{ $json.status }} === 'ready' → true: نوڈ 5 / false: نوڈ 2 پر واپس۔
نوڈ 5 — ڈاؤن لوڈ: {{ $json.download_url }} پر HTTP Request GET، Response Format File۔
مرحلہ 1 — جاب بنائیں (موڈ منتخب کریں)
مرحلہ 2 — پولنگ
مرحلہ 3 — ڈاؤن لوڈ
بہترین طریقے
- اسی کام کی حالت ہر 5 سے 10 سیکنڈ بعد دیکھیں۔ دورانیہ موڈ اور ان پٹ کے حجم پر منحصر ہے۔
- حالت میں اصل مرحلہ اور گزرا وقت شامل ہے۔ اندازے تقریبی ہیں؛ کلائنٹ کا وقت ختم ہونا کام کی ناکامی نہیں۔ اسی کام کے شناختی نمبر کی نگرانی جاری رکھیں۔ فائلیں تکمیل کے دو گھنٹے بعد ختم ہوتی ہیں۔
- جلدی ڈاؤن لوڈ کریں: اسٹیٹس
readyہوتے ہی فائل ڈاؤن لوڈ کریں۔ جاب مکمل ہونے کے 2 گھنٹے بعد حذف ہو جاتی ہے۔ - کوٹہ انتظام: POST رسپانس میں
quota_remainingچیک کریں۔ - نیٹ ورک غلطیاں: پولنگ کے دوران نیٹ ورک غلطی پر انتظار کریں اور دوبارہ کوشش کریں۔