Keahlian agen
Salin instruksi di bawah dan berikan kepada agen AI Anda (Claude, GPT, Cursor, dan sebagainya) agar agen tersebut tahu cara menggunakan API DeepManim atas nama Anda.
SKILL.md
# Keahlian API DeepManim
Anda dapat menggunakan API DeepManim untuk membuat, memperbaiki, dan memberi narasi pada video penjelasan animasi dari prompt teks.
## URL dasar
```
https://api.deepmanim.com/api/v1
```
## Autentikasi
Semua permintaan memerlukan kunci API di header Authorization:
```
Authorization: Bearer dm_k_YOUR_API_KEY
```
## Alur kerja
Alur kerja umumnya adalah:
1. **Buat** video dari prompt teks melalui `POST /generate`
2. **Periksa** job yang dikembalikan melalui `GET /jobs/{job_id}` sampai `status` menjadi `"completed"`
3. **Perbaiki** video dengan instruksi lanjutan melalui `POST /improve` (opsional dan dapat diulang)
4. **Tambahkan** narasi melalui `POST /audio` setelah visualnya sesuai
5. **Perbaiki narasi** melalui `POST /improve-narration` bila diperlukan
Panggilan untuk membuat dan memperbaiki dimulai dari 1,5 kredit dan bervariasi menurut preset. Panggilan audio dan improve-narration berharga 1 kredit. Membaca data gratis.
## Endpoint
### POST /generate
Buat video baru dari prompt teks. Narasi audio disertakan secara bawaan.
Isi permintaan:
```json
{
"message": "Jelaskan gravitasi",
"session_id": null,
"preferred_locale": "id"
}
```
- `message` (required): Prompt yang menjelaskan apa yang harus dianimasikan.
- `session_id` (optional): Kirim ID session yang sudah ada untuk melanjutkan percakapan.
Respons:
```json
{
"job_id": "abc-123",
"session_id": "def-456",
"status": "pending"
}
```
### POST /improve
Perbaiki atau ubah video yang sudah ada. TIDAK menyertakan audio—tambahkan secara terpisah melalui /audio setelah semua perubahan selesai.
Isi permintaan:
```json
{
"session_id": "def-456",
"message": "Tambahkan lebih banyak warna dan perlambat animasinya",
"preferred_locale": "id"
}
```
Respons:
```json
{
"job_id": "ghi-789",
"session_id": "def-456",
"status": "pending"
}
```
### POST /audio
Tambahkan narasi audio ke video yang sudah ada.
Isi permintaan:
```json
{
"session_id": "def-456",
"message_id": "msg-123",
"high_quality": false,
"preferred_locale": "id"
}
```
### POST /improve-narration
Perbaiki narasi yang sudah ada pada video.
Isi permintaan:
```json
{
"session_id": "def-456",
"message_id": "msg-123",
"high_quality": true,
"mode": "better_narration",
"instruction": "Buat penjelasannya lebih intuitif bagi pemula.",
"preferred_locale": "id"
}
```
### GET /jobs/{job_id}
Periksa status job. Kolom `phase` menunjukkan kemajuan: `brainstorming` → `crafting_vision` → `assembling_pieces` → `polishing` → `done`
Respons saat selesai:
Respons saat selesai:
```json
{
"job_id": "abc-123",
"status": "completed",
"phase": "done",
"estimated_time_remaining_seconds": 0,
"result": {
"video_url": "https://...",
"description": "Jelaskan gravitasi",
"session_id": "def-456",
"message_id": "msg-789",
"duration_seconds": 24.6,
"has_audio": true,
"follow_up": "Buat penjelasannya lebih intuitif bagi pemula."
}
}
```
Nilai `status` yang mungkin: `pending`, `running`, `completed`, `failed`.
### POST /jobs/{job_id}/cancel — Batalkan job yang sedang berjalan atau masih menunggu.
### GET /sessions — Daftar semua session Anda.
### GET /sessions/{session_id} — Dapatkan session dengan seluruh riwayat pesan.
### DELETE /sessions/{session_id} — Hapus session dan semua pesannya.
### GET /sessions/{session_id}/jobs
Daftar job untuk sebuah session. Parameter query opsional: `?status=completed`
### GET /messages/{message_id} — Dapatkan satu pesan berdasarkan ID.
### GET /credits
Dapatkan saldo kredit: `balance`, `total_used`, `total_purchased`, `plan`.
### GET /me
Dapatkan informasi pengguna saat ini: `id`, `email`, `display_name`.
## Kode kesalahan
- `401` — Kunci API tidak ada atau tidak valid
- `402` — Kredit tidak mencukupi
- `404` — Sumber daya tidak ditemukan
- `400` — Permintaan tidak valid
## Strategi pemantauan
Job biasanya memerlukan waktu 60–120 detik. Pantau `GET /jobs/{job_id}` setiap 3–5 detik. Gunakan kolom `estimated_time_remaining_seconds` untuk menyesuaikan frekuensi. Hentikan pemantauan saat `status` menjadi `completed` atau `failed`.
## Contoh: alur kerja lengkap
```python
import requests, time
API_KEY = "dm_k_YOUR_KEY"
BASE = "https://api.deepmanim.com/api/v1"
headers = {"Authorization": f"Bearer {API_KEY}"}
# 1. Buat
r = requests.post(f"{BASE}/generate", headers=headers, json={
"message": "Jelaskan gravitasi",
"preferred_locale": "id"
})
job_id = r.json()["job_id"]
session_id = r.json()["session_id"]
# 2. Pantau sampai selesai
while True:
job = requests.get(f"{BASE}/jobs/{job_id}", headers=headers).json()
if job["status"] in ("completed", "failed"):
break
time.sleep(4)
# 3. Dapatkan hasil
video_url = job["result"]["video_url"]
message_id = job["result"]["message_id"]
# 4. Perbaiki bila perlu
r = requests.post(f"{BASE}/improve", headers=headers, json={
"session_id": session_id,
"message": "Tambahkan lebih banyak warna dan perlambat animasinya",
"preferred_locale": "id"
})
# Pantau job_id baru dengan cara yang sama…
# 5. Tambahkan audio setelah perbaikan
r = requests.post(f"{BASE}/audio", headers=headers, json={
"session_id": session_id,
"message_id": message_id,
"high_quality": False,
"preferred_locale": "id"
})
# Pantau job_id baru…
# 6. Perbaiki pedagogi narasi bila perlu
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": "Buat penjelasannya lebih intuitif bagi pemula.",
"preferred_locale": "id"
})
# Pantau job_id baru…
```