# API Reference

Video Inference API का उपयोग Roboflow Python SDK और एक REST API के जरिए किया जा सकता है।

### Base URL

API निम्नलिखित URL का उपयोग करता है:

```
https://api.roboflow.com
```

### API Methods

हम दृढ़ता से सुझाते हैं कि video inference तक roboflow Pip पैकेज के माध्यम से पहुँचा जाए।\
\
कच्चा Video Inference API at `https://api.roboflow.com` के तीन तरीके हैं:

<table><thead><tr><th>METHOD</th><th>DESCRIPTION</th></tr></thead><tbody><tr><td><code>POST</code> <code>/video_upload_signed_url/?api_key={{WORKSPACE_API_KEY}}</code></td><td><p>यह endpoint एक signed URL लौटाता है जहाँ उपयोगकर्ता वीडियो अपलोड कर सकता है।<br><br>यह endpoint filename के साथ एक JSON इनपुट स्वीकार करता है, इस प्रकार</p><pre><code>{
    "file_name": "my_video_file.mp4"
}
</code></pre><p>एक signed URL लौटाया जाता है</p><pre class="language-json"><code class="lang-json">{
    "signed_url": "https://storage.googleapis.com/roboflow_video_inference_input/GNPwawe7dxWthlZZ24r72VRTV852/oct27_video_file.mp4?X-Goog-Algorithm=GOOG4-RSA-SHA256&#x26;X-Goog-Credential=roboflow-staging%40appspot.gserviceaccount.com%2F2023110......."
}
</code></pre><p><br>आप फिर अपने पसंदीदा अपलोड प्रोग्राम (जैसे cURL) का उपयोग करके अपने वीडियो फ़ाइल को signed URL पर PUT कर सकते हैं।</p><pre class="language-bash"><code class="lang-bash">curl -X PUT "my_signed_url" \
-H "Content-Type: application/octet-stream" \
--data-binary "@your_video.mp4"
</code></pre></td></tr><tr><td><code>POST</code> <code>/videoinfer/?api_key={{WORKSPACE_API_KEY}}</code></td><td><p>यह endpoint प्रोसेसिंग के लिए एक वीडियो inference जॉब शेड्यूल करने के लिए json इनपुट स्वीकार करता है। ध्यान दें कि INPUT_URL कोई भी सार्वजनिक रूप से उपलब्ध URL हो सकता है, आपको पहले signed URL बनाने और फिर Roboflow पर वीडियो अपलोड करने की आवश्यकता नहीं है।</p><p>निम्न में अनुरोध के body का एक उदाहरण दिखाया गया है:</p><pre><code>{
    "input_url": "{{INPUT_URL}}",
    "infer_fps": 5,
    "models": [
        {
            "model_id": "rock-paper-scissors-presentation",
            "model_version": "4",
            "inference_type": "object-detection",
            "inference_params": {"confidence": 0.4}
        }
    ]
}
</code></pre><p>कृपया ध्यान दें कि <code>models[*].inference_params</code> वैकल्पिक है।</p><p>प्रतिक्रिया एक JSON स्ट्रिंग है, इस प्रकार</p><pre class="language-json"><code class="lang-json">{
    "job_id": "fec28362-f7d9-4cc0-a805-5e94495d063d",
    "message": "This endpoint will create videojob"
}
</code></pre><p><br>आप multiple models को निर्दिष्ट कर सकते हैं <code>models</code> array. <code>infer_fps</code> field कम से कम इस पर सेट होना चाहिए <code>1</code> और इसका मान वीडियो फ्रेम-रेट से अधिक नहीं होना चाहिए। अधिकांश उपयोग मामलों के लिए, वीडियो फ्रेम रेट, का एक सटीक गुणज होता है। <code>infer_fps</code> .</p></td></tr><tr><td><code>GET</code> <code>/videoinfer/?api_key={{WORKSPACE_API_KEY}}&#x26;job_id={{JOB_ID}}</code></td><td>यह endpoint जॉब की वर्तमान स्थिति लौटाता है। यह endpoint rate-limited है, कृपया इस endpoint को प्रति मिनट एक से अधिक बार polling न करें।<br><br>जब जॉब सफल होता है, लौटाए गए JSON की <code>status</code> कुंजी 0 पर सेट होती है, और <code>output_signed_url</code> कुंजी वीडियो inference परिणामों के डाउनलोड लिंक को रखती है।<br><br>यदि <code>status</code> 1 पर सेट है, तो यह दर्शाता है कि जॉब प्रोसेसिंग पूरा नहीं हुआ है। कोई भी उच्च मान जॉब विफलता दर्शाता है।</td></tr><tr><td></td><td></td></tr></tbody></table>

एक बार जब आप द्वारा संग्रहीत JSON फ़ाइल डाउनलोड कर लेते हैं जो `output_signed_url` location [यहाँ वर्णित है](https://inference.roboflow.com/workflows/definitions/).
