DeepManim
API दस्तावेज़

एजेंट कौशल

नीचे दिए निर्देश कॉपी करके अपने AI एजेंट (Claude, GPT, Cursor आदि) को दें, ताकि वह आपकी ओर से DeepManim API इस्तेमाल करना जान सके।

SKILL.md
# DeepManim API कौशल

टेक्स्ट प्रॉम्प्ट से एनिमेटेड व्याख्यात्मक वीडियो बनाने, बेहतर करने और उनमें वाचन जोड़ने के लिए DeepManim API का उपयोग करें।

## बेस URL

```
https://api.deepmanim.com/api/v1
```

## प्रमाणीकरण

हर अनुरोध में Authorization हेडर के भीतर API कुंजी आवश्यक है:

```
Authorization: Bearer dm_k_YOUR_API_KEY
```

## कार्यप्रवाह

सामान्य कार्यप्रवाह यह है:

1. **बनाएँ** — `POST /generate` से टेक्स्ट प्रॉम्प्ट का वीडियो बनाएँ
2. **जाँचें** — `GET /jobs/{job_id}` से लौटे कार्य को `status` के `"completed"` होने तक जाँचें
3. **सुधारें** — `POST /improve` से आगे के निर्देशों द्वारा वीडियो सुधारें (वैकल्पिक, बार-बार किया जा सकता है)
4. **ऑडियो जोड़ें** — दृश्य पसंद आने पर `POST /audio` से वाचन जोड़ें
5. **वाचन सुधारें** — ज़रूरत होने पर `POST /improve-narration` इस्तेमाल करें

निर्माण और सुधार कॉल 1.5 क्रेडिट से शुरू होती हैं और प्रीसेट के अनुसार बदलती हैं। ऑडियो और improve-narration कॉल की लागत 1 क्रेडिट है। डेटा पढ़ना मुफ़्त है।

## एंडपॉइंट

### POST /generate
टेक्स्ट प्रॉम्प्ट से नया वीडियो बनाएँ। ऑडियो वाचन डिफ़ॉल्ट रूप से शामिल है।

अनुरोध बॉडी:
```json
{
  "message": "गुरुत्वाकर्षण समझाएँ",
  "session_id": null,
  "preferred_locale": "hi"
}
```
- `message` (required): क्या एनिमेट करना है, यह बताने वाला प्रॉम्प्ट।
- `session_id` (optional): बातचीत जारी रखने के लिए मौजूदा सत्र ID भेजें।

उत्तर:
```json
{
  "job_id": "abc-123",
  "session_id": "def-456",
  "status": "pending"
}
```

### POST /improve
मौजूदा वीडियो को बेहतर या संशोधित करें। इसमें ऑडियो नहीं होता — सभी बदलावों के बाद /audio से अलग जोड़ें।

अनुरोध बॉडी:
```json
{
  "session_id": "def-456",
  "message": "और रंग जोड़ें और गति धीमी करें",
  "preferred_locale": "hi"
}
```

उत्तर:
```json
{
  "job_id": "ghi-789",
  "session_id": "def-456",
  "status": "pending"
}
```

### POST /audio
मौजूदा वीडियो में ऑडियो वाचन जोड़ें।

अनुरोध बॉडी:
```json
{
  "session_id": "def-456",
  "message_id": "msg-123",
  "high_quality": false,
  "preferred_locale": "hi"
}
```

### POST /improve-narration
वीडियो का मौजूदा वाचन बेहतर करें।

अनुरोध बॉडी:
```json
{
  "session_id": "def-456",
  "message_id": "msg-123",
  "high_quality": true,
  "mode": "better_narration",
  "instruction": "शुरुआती लोगों के लिए व्याख्या को अधिक सहज बनाएँ।",
  "preferred_locale": "hi"
}
```

### GET /jobs/{job_id}
कार्य की स्थिति जाँचें। `phase` प्रगति बताता है: `brainstorming` → `crafting_vision` → `assembling_pieces` → `polishing` → `done`

पूरा होने पर उत्तर:

पूरा होने पर उत्तर:
```json
{
  "job_id": "abc-123",
  "status": "completed",
  "phase": "done",
  "estimated_time_remaining_seconds": 0,
  "result": {
    "video_url": "https://...",
    "description": "गुरुत्वाकर्षण समझाएँ",
    "session_id": "def-456",
    "message_id": "msg-789",
    "duration_seconds": 24.6,
    "has_audio": true,
    "follow_up": "शुरुआती लोगों के लिए व्याख्या को अधिक सहज बनाएँ।"
  }
}
```

`status` के संभावित मान: `pending`, `running`, `completed`, `failed`।

### POST /jobs/{job_id}/cancel — चल रहे या लंबित कार्य को रद्द करें।

### GET /sessions — अपने सभी सत्रों की सूची पाएँ।

### GET /sessions/{session_id} — पूरे संदेश इतिहास वाला सत्र पाएँ।

### DELETE /sessions/{session_id} — सत्र और उसके सभी संदेश हटाएँ।

### GET /sessions/{session_id}/jobs
सत्र के कार्यों की सूची पाएँ। वैकल्पिक क्वेरी: `?status=completed`

### GET /messages/{message_id} — ID से एक संदेश पाएँ।

### GET /credits
क्रेडिट शेष पाएँ: `balance`, `total_used`, `total_purchased`, `plan`।

### GET /me
वर्तमान उपयोगकर्ता की जानकारी पाएँ: `id`, `email`, `display_name`।

## त्रुटि कोड

- `401` — API कुंजी नहीं है या अमान्य है
- `402` — पर्याप्त क्रेडिट नहीं
- `404` — संसाधन नहीं मिला
- `400` — अमान्य अनुरोध

## पोलिंग रणनीति

कार्य सामान्यतः 60–120 सेकंड लेते हैं। हर 3–5 सेकंड में `GET /jobs/{job_id}` जाँचें। आवृत्ति बदलने के लिए `estimated_time_remaining_seconds` का उपयोग करें। `status` के `completed` या `failed` होने पर जाँच रोक दें।

## उदाहरण: पूरा कार्यप्रवाह

```python
import requests, time

API_KEY = "dm_k_YOUR_KEY"
BASE = "https://api.deepmanim.com/api/v1"
headers = {"Authorization": f"Bearer {API_KEY}"}

# 1. बनाएँ
r = requests.post(f"{BASE}/generate", headers=headers, json={
    "message": "गुरुत्वाकर्षण समझाएँ",
    "preferred_locale": "hi"
})
job_id = r.json()["job_id"]
session_id = r.json()["session_id"]

# 2. पूरा होने तक जाँचें
while True:
    job = requests.get(f"{BASE}/jobs/{job_id}", headers=headers).json()
    if job["status"] in ("completed", "failed"):
        break
    time.sleep(4)

# 3. परिणाम पाएँ
video_url = job["result"]["video_url"]
message_id = job["result"]["message_id"]

# 4. वैकल्पिक सुधार
r = requests.post(f"{BASE}/improve", headers=headers, json={
    "session_id": session_id,
    "message": "और रंग जोड़ें और गति धीमी करें",
    "preferred_locale": "hi"
})
# नए job_id को इसी तरह जाँचें…

# 5. सुधारों के बाद ऑडियो जोड़ें
r = requests.post(f"{BASE}/audio", headers=headers, json={
    "session_id": session_id,
    "message_id": message_id,
    "high_quality": False,
    "preferred_locale": "hi"
})
# नए job_id को जाँचें…

# 6. वाचन की शिक्षण-गुणवत्ता वैकल्पिक रूप से सुधारें
r = requests.post(f"{BASE}/improve-narration", headers=headers, json={
  "session_id": session_id,
  "message_id": message_id,
  "high_quality": True,
  "mode": "better_narration",
  "instruction": "शुरुआती लोगों के लिए व्याख्या को अधिक सहज बनाएँ।",
  "preferred_locale": "hi"
})
# नए job_id को जाँचें…
```
एजेंट कौशल | DeepManim