> ## Documentation Index
> Fetch the complete documentation index at: https://phaseo.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# वीडियो और बैच जॉब

> असिंक्रोनस जॉब ट्रैक करें, वेबहुक प्राप्त करें और प्रदाता-विशिष्ट वीडियो विकल्प भेजें।

<Note>
  Video API और Batch API चुनिंदा वर्कस्पेस के लिए केवल आमंत्रण पर उपलब्ध बीटा प्रीव्यू हैं। उपलब्धता के लिए **सेटिंग्स → सुविधा प्रीव्यू** देखें। पहुँच हर वर्कस्पेस के स्तर पर प्रबंधित होती है; निजी वेब प्राथमिकता चालू करने से API पहुँच नहीं मिलती। मॉडल इस्तेमाल के सामान्य शुल्क लागू होते हैं।
</Note>

वीडियो जनरेशन और बैच प्रोसेसिंग काम पूरा होने से पहले जॉब लौटाते हैं। उसका `id` सहेजें और नवीनतम स्थिति वापस पाने के लिए लौटाया गया `polling_url` इस्तेमाल करें। सफल निर्माण जवाब का मतलब यह नहीं कि जनरेशन या बैच प्रोसेसिंग पूरी हो गई है।

बीटा के दौरान छोटे अनुरोध और API कुंजी की खर्च सीमा से शुरुआत करें। प्रदाता और मॉडल की क्षमताएँ अलग होती हैं; रेफ़रेंस इनपुट, रद्द करना और आउटपुट का प्रतिधारण चुने गए प्रदाता पर निर्भर है। पूरे हुए आउटपुट की समय-सीमा खत्म होने से पहले अपनी कॉपी रखें।

## अपडेट प्राप्त करें

दोनों में से किसी प्रकार का जॉब बनाते समय अपने वर्कस्पेस का वेबहुक एंडपॉइंट जोड़ें:

```json theme={null}
{
  "webhook": {
    "endpoint_id": "YOUR_ENDPOINT_ID",
    "events": ["job.status_changed", "job.completed", "job.failed", "job.cancelled", "job.expired"]
  }
}
```

Phaseo प्रदाता की स्थिति का मिलान करके ग्राहक सूचनाएँ भेजता है। Anthropic संदेश बैच सहित जिन प्रदाताओं को पोलिंग चाहिए, वे भी ग्राहक वेबहुक बना सकते हैं। वेबहुक डिलीवरी की विफलता जनरेशन या बैच विफलता से अलग है।

एंडपॉइंट सदस्यताएँ बैच और वीडियो इवेंट अलग-अलग चुन सकती हैं। `batch.completed` या `video.failed` जैसे नेमस्पेस वाले इवेंट प्रकार इस्तेमाल करें; सामान्य `job.*` प्रकार अभी भी समर्थित हैं और दोनों जॉब प्रकारों की संबंधित अवस्था के इवेंट की सदस्यता लेते हैं।

एंडपॉइंट सीक्रेट से `x-phaseo-signature` सत्यापित करें: हस्ताक्षर `x-phaseo-timestamp`, वास्तविक पूर्णविराम और **बिना बदला अनुरोध बॉडी** जोड़कर बनाए डेटा का हेक्साडेसिमल HMAC-SHA256 है। टाइमस्टैम्प की नवीनता जाँचें, `x-phaseo-event-id` से डुप्लिकेट हटाएँ और स्वीकृत डिलीवरी को सफल HTTP जवाब से स्वीकार करें। डिलीवरी दोबारा हो सकती हैं या क्रम से बाहर आ सकती हैं; विरोधी स्थिति परिवर्तन लागू करने से पहले जॉब प्राप्त करें।

एंडपॉइंट सहेजने के बाद सेटिंग्स में **टेस्ट इवेंट भेजें** से हस्ताक्षरित `webhook.test` पेलोड भेजें। टेस्ट डिलीवरी केवल एक प्रयास करती हैं, न दोबारा भेजी जाती हैं और न जॉब डिलीवरी इतिहास में जोड़ी जाती हैं।

जीवनचक्र की `completed`, `failed`, `cancelled` और `expired` स्थितियों को अंतिम मानें। वेबहुक इस्तेमाल करते हुए भी पोलिंग द्वारा रिकवरी का रास्ता रखें।

हर इवेंट के लिए Phaseo एक शुरुआती डिलीवरी प्रयास करता है। सफल 2xx जवाब डिलीवरी समाप्त करता है; पुनः प्रयास नहीं चाहिए। विफल डिलीवरी के लिए अधिकतम तीन पुनः प्रयास 1, 5 और 15 मिनट बाद निर्धारित होते हैं। बैकग्राउंड स्वीप पात्र प्रयास चलाते हैं, इसलिए वास्तविक डिलीवरी निर्धारित समय से बाद में हो सकती है। हर प्रयास में संख्या, समय, HTTP स्थिति, त्रुटि और अगले प्रयास का समय दर्ज होता है। चौथे असफल प्रयास के बाद डिलीवरी स्थायी रूप से विफल चिह्नित होती है। प्राप्तकर्ता को फिर भी डुप्लिकेट इवेंट हटाने होंगे: खोई पुष्टि या worker में रुकावट डिलीवरी को अनिश्चित बना सकती है।

## जॉब और अनुरोध लॉग देखें

**सेटिंग्स → इस्तेमाल → लॉग** में इन्फ़रेंस विवरण के लिए **अनुरोध**, वीडियो जीवनचक्र के लिए **वीडियो**, और बैच जॉब तथा पंक्ति परिणामों के लिए **बैच** इस्तेमाल करें। वीडियो और बैच विवरण में बिलिंग स्थिति, प्रदाता प्रयास और वेबहुक प्रयास शामिल हैं। वेबहुक डिलीवरी विफल होने पर भी जॉब सफल हो सकता है।

वीडियो सबमिशन प्रदाता से संपर्क करने से पहले क्रेडिट आरक्षित करता है। टास्क ID के बिना टाइमआउट होने पर मिलान के लिए आरक्षण बना रहता है; यह जनरेशन की विफलता का प्रमाण नहीं है। सफल काम के बाद सशुल्क वीडियो या बैच आरक्षण की कीमत अप्रत्याशित रूप से शून्य होने पर जाँच के लिए बिलिंग `unexpected_zero_cost` के साथ खुली रहती है। केवल निर्माण जवाब का शून्य लागत होना असिंक्रोनस जनरेशन में सामान्य है।

## वीडियो इनपुट

### वीडियो कीमत समझें

वीडियो की कीमत प्रदाता और मॉडल पर निर्भर है। प्रति सेकंड कीमत को बिल योग्य अवधि से गुणा करें; प्रति क्लिप कीमत केवल निर्धारित अवधि और रिज़ॉल्यूशन पर लागू है। कई आउटपुट और सशुल्क रेफ़रेंस इनपुट कुल लागत बढ़ा सकते हैं।

LTX टेक्स्ट/चित्र जनरेशन आउटपुट सेकंड पर शुल्क लगाता है, जबकि ऑडियो से वीडियो इनपुट ऑडियो सेकंड पर। BytePlus Seedance वीडियो टोकन इस्तेमाल करता है, और रेफ़रेंस वीडियो होने पर दरें बदलती हैं। MiniMax Hailuo V1 निश्चित अवधि के क्लिप की कीमत इस्तेमाल करता है; H3 सेकंड इस्तेमाल करता है और रेफ़रेंस इनपुट के लिए शुल्क लगा सकता है। दिखाई गई कीमत को पूरे अनुरोध की लागत मानने के बजाय चुने प्रदाता के कीमत आयाम जाँचें।

आरक्षण सबमिशन से पहले रोके गए अनुमान हैं। अंतिम बिलिंग जॉब के बिल योग्य इस्तेमाल पर आधारित है; इस्तेमाल न हुआ आरक्षित क्रेडिट मिलान के बाद छोड़ दिया जाता है। प्रदाता का कोई रिज़ॉल्यूशन या विकल्प समर्थित होना बीटा में उसकी उपलब्धता की गारंटी नहीं है।

आउटपुट अवधि के लिए `seconds` या `duration` इस्तेमाल करें। दोनों मौजूद हों तो समान होने चाहिए। `resolution` के साथ `aspect_ratio`, या `1280x720` जैसा पिक्सेल `size` इस्तेमाल करें।

पहला और आखिरी फ़्रेम स्पष्ट रूप से बताने के लिए `frame_images` इस्तेमाल करें:

```json theme={null}
{
  "frame_images": [
    {
      "type": "image_url",
      "frame_type": "first_frame",
      "image_url": { "url": "https://example.com/start.png" }
    }
  ],
  "input_references": [
    {
      "type": "image_url",
      "role": "reference",
      "image_url": { "url": "https://example.com/character.png" }
    }
  ]
}
```

रेफ़रेंस URL को HTTPS इस्तेमाल करना चाहिए। केवल रेफ़रेंस चित्रों के लिए `role: "reference"` स्पष्ट रूप से बताएँ: `frame_images` के बिना पुराने अनुरोध पहले बिना लेबल वाले चित्र को पहला फ़्रेम मानते हैं। `frame_images` को `input_references` की पहले/आखिरी फ़्रेम की भूमिका या `input_reference` के साथ न मिलाएँ।

वीडियो और ऑडियो रेफ़रेंस `type: "video_url"` या `"audio_url"` और `media_url: { "url": "https://..." }` इस्तेमाल करते हैं। मॉडल और प्रदाता अलग संयोजन समर्थित करते हैं। रेफ़रेंस की अवधि कीमत प्रभावित करे तो `input_video_duration` और `input_audio_duration` सेकंड में दें।

## प्रदाता विकल्प

मॉडल, अवधि, रिज़ॉल्यूशन, ऑडियो जनरेशन, इनपुट मीडिया और आउटपुट संख्या मानक फ़ील्ड में रखें। प्रदाता-विशिष्ट एक्सटेंशन मानक प्रदाता ID के नीचे भेजें:

```json theme={null}
{
  "provider_options": {
    "atlascloud": { "watermark": false, "output_format": "mp4" },
    "byteplus": { "camera_fixed": true }
  }
}
```

केवल चुने प्रदाता के विकल्प आगे भेजे जाते हैं। विकल्प प्रदाता नहीं चुनते; इसके लिए `provider` रूटिंग कॉन्फ़िगरेशन इस्तेमाल करें। `provider_options` को पुराने `provider_params` से न मिलाएँ। नेस्ट किए विकल्प गेटवे द्वारा नियंत्रित बिलिंग या कॉलबैक फ़ील्ड ओवरराइड नहीं कर सकते।

| प्रदाता | मूल एक्सटेंशन के उदाहरण | संदर्भ |
| - | - | - |
| AtlasCloud Seedance 2.5 | `watermark`, `output_format`, `return_last_frame`, `omni_reference_task_type` | [मॉडल API](https://www.atlascloud.ai/models/bytedance/seedance-2.5/reference-to-video) |
| Novita Seedance 1.5 | `watermark`, `camera_fixed`, `fps` (24), `service_tier` (`default`) | [एकीकृत वीडियो API](https://docs.novita.ai/api-reference/reference-unified-video-generation) |
| BytePlus Seedance | `camera_fixed` | इस्तेमाल से पहले चुने मॉडल का प्रदाता अनुबंध जाँचें। |
| MiniMax V1 | `fast_pretreatment`; प्रॉम्प्ट सुधार के लिए मानक `enhance_prompt` इस्तेमाल करें | [वीडियो API](https://platform.minimax.io/docs/api-reference/video-generation-t2v) |

AtlasCloud Seedance मूल `resolution`, `ratio` और `last_image` फ़ील्ड इस्तेमाल करता है। उसका रेफ़रेंस से वीडियो संस्करण क्रमबद्ध चित्र, वीडियो और ऑडियो रेफ़रेंस लेता है। स्वतः अवधि संपादन (`duration: -1`) गेटवे के निश्चित-अवधि आरक्षण अनुबंध में समर्थित नहीं है। मॉडल रूट करने से पहले प्रदाता की मॉडल उपलब्धता और कीमत कॉन्फ़िगर करनी होगी; प्रदाता विकल्प अनुपलब्ध मॉडल सक्षम नहीं करता।

MiniMax H3 V2 इस्तेमाल करता है: `768P` या `2K` पर 4–15 पूर्ण सेकंड। H3 Max `480P` या `768P` पर टेक्स्ट या फ़्रेम चित्रों के साथ 5–15 पूर्ण सेकंड समर्थित करता है। H3 चित्र, वीडियो और ऑडियो रेफ़रेंस लेता है; रेफ़रेंस को पहले/आखिरी फ़्रेम से नहीं मिला सकते। दोनों मॉडल हर अनुरोध पर एक वीडियो बनाते हैं और V1 प्रॉम्प्ट सुधार विकल्प समर्थित नहीं करते। मानक `aspect_ratio` इस्तेमाल करें; फ़्रेम इनपुट अपना अनुपात निर्धारित करते हैं। रेफ़रेंस वीडियो आरक्षण प्रदाता की 15 सेकंड इनपुट सीमा को कवर करता है, और वास्तविक इस्तेमाल पूरा होने पर निपटता है। [MiniMax V2 अनुबंध](https://platform.minimax.io/docs/api-reference/video-generation-v2-create) देखें।

## बैच प्रदाता

बैच अनुरोध भी `provider_options` स्वीकार करते हैं: OpenAI `output_expires_after` और Mistral `metadata` समर्थित करता है। मानक प्रदाता ID इस्तेमाल करें और ये फ़ील्ड शीर्ष स्तर पर दोबारा न दें। उदाहरण के लिए `provider_options: { "openai": { "output_expires_after": { "anchor": "created_at", "seconds": 86400 } } }` OpenAI आउटपुट का प्रतिधारण सेट करता है। पंक्ति इनपुट, मॉडल, एंडपॉइंट और वेबहुक गंतव्य विकल्पों से ओवरराइड नहीं किए जा सकते।

Mistral का मूल बैच एडाप्टर पहले से है। Anthropic संदेश बैच पोल किए जाते हैं; अन्य प्रदाता पोलिंग को मूल पूर्णता सूचनाओं से जोड़ सकते हैं। उपलब्धता प्रदाता के समर्थित एंडपॉइंट और डिप्लॉयमेंट की बैच अनुमति सूची पर निर्भर है। फ़ाइल या इनलाइन अनुरोध भेजने से पहले बैच क्षमता जवाब जाँचें।

पूरा हुआ बैच विफल पंक्तियाँ भी रख सकता है। सभी पंक्तियाँ सफल मानने के बजाय हर परिणाम उसके कस्टम ID से जाँचें। परिणाम और बिलिंग के मिलान तक मूल इनपुट तथा जॉब ID रखें। अनिश्चित सबमिशन दोहराने से पहले जाँचें, क्योंकि प्रदाता मूल अनुरोध स्वीकार कर चुका हो सकता है।

### बैच परिणाम डाउनलोड करें

समर्थित बैच अंतिम स्थिति पर पहुँचने के बाद उसका `results_url` प्रमाणीकरण वाले Phaseo डाउनलोड की ओर जाता है। बैच के मालिक वर्कस्पेस की सामान्य Phaseo API कुंजी इस्तेमाल करें:

```bash theme={null}
curl --fail "https://api.phaseo.app/v1/batches/$BATCH_ID/results" \
  -H "Authorization: Bearer $PHASEO_API_KEY" \
  --output results.jsonl
```

हर समर्थित बैच प्रदाता के लिए जवाब उसी एंडपॉइंट से JSONL स्ट्रीम करता है। Phaseo अलग सफलता और त्रुटि फ़ाइलें मिलाता है, इनलाइन परिणाम ऐरे JSONL में बदलता है और परिणाम पेजिनेशन का अनुसरण करता है। जनरेट की गई सामग्री और हर अनुरोध की त्रुटियाँ सुरक्षित रहती हैं। पंक्ति फ़ील्ड प्रदाता के मूल प्रारूप में रहते हैं: OpenAI-संगत और Anthropic पंक्तियों के लिए `custom_id`, Gemini के लिए अनुरोध मेटाडेटा, और xAI के लिए `batch_request_id` इस्तेमाल करें। Anthropic की सफल पंक्तियों में जनरेट किया संदेश `result.message` में होता है।

डाउनलोड OpenAI, Anthropic, Google AI Studio, Mistral, Together, Groq, Alibaba Cloud, Moonshot, Parasail, OVHcloud और xAI एडाप्टर समर्थित करते हैं। प्रदाता उपलब्धता अभी भी प्रीव्यू पहुँच और सबमिशन अनुमति सूची पर निर्भर है; डाउनलोड समर्थन अतिरिक्त रूट सक्षम नहीं करता। मौजूदा `output_file_id`, `error_file_id` और फ़ाइल सामग्री एंडपॉइंट उपलब्ध रहते हैं। बैच अनुरोध-पंक्ति एंडपॉइंट में ट्रैकिंग और बिलिंग मेटाडेटा होता है, जनरेट किए संदेशों की बॉडी नहीं।

परिणाम डाउनलोड करना दूसरा बैच नहीं भेजता और इन्फ़रेंस शुल्क नहीं जोड़ता। प्रदाता क्रेडेंशियल की जरूरत नहीं है। वेबहुक जॉब अपडेट बताते हैं; परिणाम अलग डाउनलोड करें। अंतिम जॉब में आंशिक परिणाम या कोई आउटपुट नहीं हो सकता: प्रोसेसिंग के दौरान एंडपॉइंट `409` और कोई आउटपुट उपलब्ध न होने पर `404` लौटाता है। प्रदाता की प्रतिधारण अवधि खत्म होने से पहले परिणाम सहेजें। डाउनलोड रुके तो अधूरी फ़ाइल छोड़ें और डाउनलोड दोहराएँ, बैच सबमिशन नहीं। इनलाइन JSON परिणाम प्रति पंक्ति 8 MiB सुरक्षा सीमा के साथ स्ट्रीम होते हैं; मूल JSONL फ़ाइलें उस पंक्ति सीमा के बिना स्ट्रीम होती हैं।

बड़े आउटपुट के लिए TypeScript का `client.batches.streamResults(batchId, { signal })` बिना बफ़रिंग `ReadableStream<Uint8Array>` लौटाता है। इसे अपने गंतव्य तक पहुँचाएँ और जल्दी रोकने के लिए स्ट्रीम रद्द करें या सिग्नल रोकें; डाउनलोड का कोई निश्चित कुल टाइमआउट नहीं है। Python का `client.batches.stream_results(batch_id)` कॉन्फ़िगर किए HTTP टाइमआउट के साथ बाइट खंड देता है; जल्दी रुकने पर इटरेटर बंद करें। जनरेट किए `retrieveBatchResults` ऑपरेशन पूरा JSONL टेक्स्ट लौटाते हैं और छोटे आउटपुट के लिए बेहतर हैं।

### बैच डाउनलोड सीमाएँ

बैच परिणाम डाउनलोड एक खिसकती 30 मिनट की विंडो में हर वर्कस्पेस और बैच के लिए 10 प्रयास देते हैं, जो API कुंजियों और `/batches` तथा `/batch` उपनामों में साझा हैं। डाउनलोड प्रवेश तक पहुँचने वाले प्रयास गिने जाते हैं, भले अपस्ट्रीम डाउनलोड विफल हो या रद्द हो जाए। स्वामित्व और तैयारी जाँच की विफलताएँ नहीं गिनी जातीं। `429` जवाब में `Retry-After` सेकंड में होता है। लिमिटर उपलब्ध न हो तो डाउनलोड `Retry-After: 30` के साथ `503` लौटाते हैं।


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.