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. status = "completed" না হওয়া পর্যন্ত GET /jobs/{job_id} দিয়ে কাজটি **পর্যবেক্ষণ করুন**
3. ঐচ্ছিকভাবে POST /improve দিয়ে ফলো-আপ নির্দেশনায় ভিডিও **উন্নত করুন**
4. ভিজ্যুয়ালে সন্তুষ্ট হলে POST /audio দিয়ে **বর্ণনা যোগ করুন**
5. প্রয়োজনে POST /improve-narration দিয়ে **বর্ণনা উন্নত করুন**

তৈরি ও উন্নত করার কল 1.5 ক্রেডিট থেকে শুরু হয় এবং প্রিসেট অনুযায়ী বদলায়। অডিও ও improve-narration কলের খরচ 1 ক্রেডিট। ডেটা পড়া বিনামূল্যে।

## এন্ডপয়েন্ট

### ভিডিও তৈরি করুন
একটি টেক্সট প্রম্পট থেকে নতুন ভিডিও তৈরি করুন। ডিফল্টভাবে অডিও বর্ণনা অন্তর্ভুক্ত থাকে।

অনুরোধের বডি:
```json
{
  "message": "মাধ্যাকর্ষণ কীভাবে কাজ করে ব্যাখ্যা করুন",
  "session_id": null,
  "preferred_locale": "bn"
}
```
- `message` (required): (প্রয়োজনীয়) ভিডিও তৈরির নির্দেশনা
- `session_id` (optional): (ঐচ্ছিক) আগের কথোপকথন চালিয়ে যেতে সেশন ID

প্রতিক্রিয়া:
```json
{
  "job_id": "abc-123",
  "session_id": "def-456",
  "status": "pending"
}
```

### ভিডিও উন্নত করুন
আগের ভিডিও উন্নত বা পরিবর্তন করুন। এতে অডিও থাকে না—সব পরিবর্তন শেষে /audio দিয়ে আলাদাভাবে যোগ করুন।

অনুরোধের বডি:
```json
{
  "session_id": "def-456",
  "message": "পটভূমি আরও গাঢ় করুন এবং অ্যানিমেশন ধীর করুন",
  "preferred_locale": "bn"
}
```

প্রতিক্রিয়া:
```json
{
  "job_id": "ghi-789",
  "session_id": "def-456",
  "status": "pending"
}
```

### অডিও যোগ করুন
আগের ভিডিওতে বর্ণনার অডিও যোগ করুন।

অনুরোধের বডি:
```json
{
  "session_id": "def-456",
  "message_id": "msg-123",
  "high_quality": false,
  "preferred_locale": "bn"
}
```

### বর্ণনা উন্নত করুন
ভিডিওর বিদ্যমান বর্ণনা উন্নত করুন।

অনুরোধের বডি:
```json
{
  "session_id": "def-456",
  "message_id": "msg-123",
  "high_quality": true,
  "mode": "better_narration",
  "instruction": "নতুন শিক্ষার্থীদের জন্য ব্যাখ্যাটি আরও সহজবোধ্য করুন।",
  "preferred_locale": "bn"
}
```

### কাজ
কাজের অবস্থা ও ফলাফল দেখুন।

phase ক্ষেত্রটি তৈরির বর্তমান ধাপ দেখায়।

সম্পূর্ণ কাজের প্রতিক্রিয়া:
```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

### কাজ বাতিল করুন

### সেশন তালিকাভুক্ত করুন

### একটি সেশন দেখুন

### সেশন মুছুন

### সেশনের কাজ
একটি নির্দিষ্ট সেশনের কাজ তালিকাভুক্ত করুন।

### বার্তা

### ক্রেডিট
আপনার ক্রেডিট ব্যালেন্স ও সাবস্ক্রিপশন দেখুন।

### বর্তমান ব্যবহারকারী
বর্তমান ব্যবহারকারীর অ্যাকাউন্ট তথ্য দেখুন।

## ত্রুটির প্রতিক্রিয়া

- 401 — API কী অনুপস্থিত বা অবৈধ
- 402 — পর্যাপ্ত ক্রেডিট নেই
- 404 — রিসোর্স পাওয়া যায়নি
- 422 — অনুরোধ অবৈধ

## পোলিং

কাজ সম্পূর্ণ বা ব্যর্থ না হওয়া পর্যন্ত কয়েক সেকেন্ড পরপর তার status দেখুন।

## সম্পূর্ণ উদাহরণ

```python
import requests, time

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

# ভিডিও তৈরি করুন
r = requests.post(f"{BASE}/generate", headers=headers, json={
    "message": "মাধ্যাকর্ষণ কীভাবে কাজ করে ব্যাখ্যা করুন",
    "preferred_locale": "bn"
})
job_id = r.json()["job_id"]
session_id = r.json()["session_id"]

# সম্পূর্ণ হওয়া পর্যন্ত অপেক্ষা করুন
while True:
    job = requests.get(f"{BASE}/jobs/{job_id}", headers=headers).json()
    if job["status"] in ("completed", "failed"):
        break
    time.sleep(4)

# ফলাফল পান
video_url = job["result"]["video_url"]
message_id = job["result"]["message_id"]

# ভিডিও উন্নত করুন
r = requests.post(f"{BASE}/improve", headers=headers, json={
    "session_id": session_id,
    "message": "পটভূমি আরও গাঢ় করুন এবং অ্যানিমেশন ধীর করুন",
    "preferred_locale": "bn"
})
# উন্নতির কাজ দেখুন

# বর্ণনা যোগ করুন
r = requests.post(f"{BASE}/audio", headers=headers, json={
    "session_id": session_id,
    "message_id": message_id,
    "high_quality": False,
    "preferred_locale": "bn"
})
# অডিওর কাজ দেখুন

# বর্ণনা উন্নত করুন
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": "bn"
})
# বর্ণনা উন্নতির কাজ দেখুন
```
এজেন্ট স্কিল | DeepManim