Video Transcription API
Kirimkan video atau file audio dan terima transkrip tingkat kata dengan diarisasi pembicara (setiap segmen diberi label pembicara yang terdeteksi). API ini mendukung video dari platform utama dan file video/audio yang diunggah secara lokal, beserta pengaturan bahasa.
Sumber Video yang Didukung
API menerima URL dari platform berikut: YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble, dan lainnya.
Anda juga dapat mentranskripsi file audio atau video lokal yang Anda unggah — unggah lokal memerlukan paket Standard atau lebih tinggi.
Alur Kerja
- Kirim tugas transkripsi dari URL video
- Polling hasil hingga status menjadi
SUCCEEDED
Kirim Tugas Transkripsi
Kirimkan tugas transkripsi baru dari URL video atau audio.
POST https://wayinvideo-api.wayin.ai/api/v2/transcripts
Body Permintaan
| Parameter | Tipe | Wajib | Default | Deskripsi |
|---|---|---|---|---|
video_url | string | Ya | — | URL video/audio sumber atau identifier file yang diunggah |
source_lang | string | Tidak | null | Bahasa sumber video (lihat Bahasa yang Didukung). Jika null, sistem mendeteksi bahasa asli secara otomatis. |
target_lang | string | Tidak | null | Bahasa target untuk transkrip (lihat Bahasa yang Didukung). Jika null, tidak ada penerjemahan yang diterapkan. Jika target_lang berbeda dari bahasa asli video, transkrip akan diterjemahkan secara otomatis ke bahasa target. |
Contoh Permintaan
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-wayinvideo-api-version: v2" \
-d '{
"video_url": "https://www.youtube.com/watch?v=example",
"target_lang": "en"
}'
import requests
requests.post(
"https://wayinvideo-api.wayin.ai/api/v2/transcripts",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"x-wayinvideo-api-version": "v2",
},
json={
"video_url": "https://www.youtube.com/watch?v=example",
"target_lang": "en",
},
)
await fetch("https://wayinvideo-api.wayin.ai/api/v2/transcripts", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"x-wayinvideo-api-version": "v2",
"Content-Type": "application/json",
},
body: JSON.stringify({
video_url: "https://www.youtube.com/watch?v=example",
target_lang: "en",
}),
});
Respons
{
"data": {
"id": "trans_proj_001",
"name": "sample project name",
"status": "CREATED"
}
}
| Field | Tipe | Deskripsi |
|---|---|---|
id | string | Identifier tugas (digunakan untuk mengambil hasil) |
name | string | Nama tugas |
status | string | CREATED, QUEUED, ONGOING, SUCCEEDED, FAILED |
Contoh
Skenario transkripsi yang umum. Ganti YOUR_API_KEY dengan kunci dari API Dashboard.
Transkripsikan video YouTube
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-wayinvideo-api-version: v2" \
-H "Content-Type: application/json" \
-d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}'
Transkripsikan podcast dengan beberapa pembicara
Berikan URL audio podcast apa pun (atau identifier file yang diunggah) — diarisasi pembicara berjalan otomatis; setiap segmen dalam respons membawa label speaker.
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-wayinvideo-api-version: v2" \
-H "Content-Type: application/json" \
-d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}'
Terjemahkan transkrip non-Inggris ke bahasa Inggris
Atur target_lang untuk menerjemahkan secara langsung. Gabungkan dengan source_lang jika Anda sudah mengetahui bahasa sumbernya.
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-wayinvideo-api-version: v2" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://www.youtube.com/watch?v=EXAMPLE",
"source_lang": "ja",
"target_lang": "en"
}'
Ambil Hasil Transkripsi
Ambil transkrip dengan stempel waktu tingkat kata dan label pembicara. Lakukan polling hingga status menjadi SUCCEEDED.
GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/{id}
Parameter Path
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
id | string | Ya | ID tugas yang dikembalikan oleh endpoint pengiriman |
Contoh Permintaan
curl -X GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/trans_proj_001 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-wayinvideo-api-version: v2"
Respons
{
"data": {
"status": "SUCCEEDED",
"cost_usage": 27.0,
"transcript": [
{
"text": "Welcome to today's presentation",
"language": null,
"start": 200,
"end": 4500,
"speaker": "Speaker 1"
},
{
"text": "Thanks for coming",
"language": null,
"start": 5000,
"end": 8200,
"speaker": "Speaker 2"
}
]
}
}
Field Respons
| Field | Tipe | Deskripsi |
|---|---|---|
status | string | CREATED, QUEUED, ONGOING, SUCCEEDED, FAILED |
error_message | string | Alasan error (hanya ada saat status adalah FAILED) |
cost_usage | number | Kredit API yang digunakan untuk permintaan ini |
transcript | array | Daftar segmen transkrip (lihat di bawah) |
Segmen Transkrip
| Field | Tipe | Deskripsi |
|---|---|---|
text | string | Teks yang ditranskripsikan |
language | string | null | Kode bahasa yang terdeteksi, atau null jika tidak terdeteksi |
start | integer | Waktu mulai dalam milidetik |
end | integer | Waktu berakhir dalam milidetik |
speaker | string | Label pembicara (mis. "Speaker 1") |
FAQ
Berapa panjang video maksimum?
Tidak ada batasan panjang yang tegas. API ini mendukung klip pendek maupun konten video atau audio berdurasi panjang dari platform sumber yang didukung.
Apakah API mengembalikan stempel waktu tingkat kata?
Ya. Setiap segmen transkrip menyertakan stempel waktu start dan end dalam milidetik, text yang ditranskripsikan, language yang terdeteksi, dan label speaker yang diberikan dari diarisasi pembicara.
Bagaimana cara kerja diarisasi pembicara?
Pembicara dideteksi dan diberi label secara otomatis (Speaker 1, Speaker 2, …) per segmen. Tidak ada konfigurasi yang diperlukan — diarisasi berjalan pada setiap tugas transkripsi.
Format audio dan video apa saja yang didukung?
URL sumber didukung dari YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble, dan lainnya. Untuk unggahan lokal, kirim mp4, mov, webm, atau avi (file audio-saja dapat di-mux ke salah satu kontainer ini).
Bisakah saya menerjemahkan transkrip ke bahasa lain?
Bisa — berikan parameter target_lang. Transkrip diterjemahkan ketika target_lang berbeda dari bahasa sumber. Lihat Bahasa yang Didukung untuk daftar lengkap kode bahasa.