Dokumentasi API

REST API untuk transkrip, pencarian, dan metadata YouTube. Dapatkan API key dari dashboard Anda — 100 kredit gratis, tanpa perlu kartu.

Autentikasi

Sertakan API key Anda sebagai bearer token, atau melalui x-api-key:

Authorization: Bearer sk_live_...
# or
x-api-key: sk_live_...

URL Dasar

https://getyoutubetranscript.com/api/v1

Kredit & paket

PaketHargaKredit/bulanHarga top-upBatas laju
Gratis$0/bulan100 (sekali saja)—60 req/menit
Bulanan$5/bulan1.000$2,50 / 1.000200 req/menit
Tahunan$4,50/bulan ($54/tahun)1.000$1,50 / 1.000300 req/menit
Starter$19/bulan7.500$1,50 / 1.000300 req/menit
Pro$49/bulan25.000$1,50 / 1.000400 req/menit
Scale$99/bulan60.000$1,50 / 1.000600 req/menit

1 kredit = 1 request yang berhasil. Request yang gagal tidak pernah dikenakan biaya. Contoh: 10 request transkrip dengan 2 video tanpa teks hanya memakai 8 kredit, dan mencoba ulang video yang gagal tidak dikenakan biaya sampai berhasil. Kredit top-up kedaluwarsa 30 hari setelah pembelian atau di akhir periode penagihan Anda saat ini, mana yang lebih lambat, dan memerlukan langganan aktif untuk dapat digunakan.

Endpoint

GET/transcript1 kredit

Ambil transkrip untuk video YouTube, lengkap dengan metadata (judul, channel, thumbnail). Juga mengembalikan language_code vs requested_language, caption_type (manual atau auto, null jika tidak diketahui), serta cached / fetched_at.

ParameterWajibDeskripsi
vYaID video atau URL YouTube lengkap
languageTidakKode bahasa (default: en)
timestampsTidakSetel ke true untuk menambahkan penanda waktu per baris (segments: start, duration, text dalam detik). Nonaktif secara default.

Permintaan

curl "https://getyoutubetranscript.com/api/v1/transcript?v=jNQXAC9IVRw" \
  -H "Authorization: Bearer sk_live_..."

Tanggapan

{
  "success": true,
  "data": {
    "video_id": "jNQXAC9IVRw",
    "language_code": "en",
    "requested_language": "en",
    "caption_type": "manual",
    "title": "Me at the zoo",
    "author_name": "jawed",
    "author_url": "https://www.youtube.com/channel/UC4Qob...",
    "thumbnail_url": "https://...",
    "transcript": "All right, so here we are...",
    "word_count": 39,
    "cached": true,
    "fetched_at": "2026-09-20T03:10:58.938Z"
  }
}
GET/transcript/languagesGratis

Tampilkan bahasa teks yang tersedia di sebuah video (manual dan otomatis) sebelum mengambil salah satunya. default_language_code adalah yang dikembalikan /transcript tanpa bahasa; video tanpa teks mengembalikan daftar kosong.

ParameterWajibDeskripsi
vYaID video atau URL YouTube lengkap

Permintaan

curl "https://getyoutubetranscript.com/api/v1/transcript/languages?v=kJQP7kiw5Fk" \
  -H "Authorization: Bearer sk_live_..."

Tanggapan

{
  "success": true,
  "data": {
    "video_id": "kJQP7kiw5Fk",
    "default_language_code": "en",
    "languages": [
      { "language_code": "en", "name": "English - en", "caption_type": "manual" },
      { "language_code": "es", "name": "Spanish", "caption_type": "manual" }
    ]
  }
}
POST/batch1 kredit / video berhasil

Antrekan hingga 100 video dalam satu panggilan. Langsung mengembalikan batch_id dan mengambil transkrip di latar belakang. Cek GET /batch, atau isi webhook_url untuk menerima POST bertanda tangan (header X-GYT-Signature) saat selesai. Video yang gagal tidak pernah dikenakan biaya.

ParameterWajibDeskripsi
videosYaArray ID atau URL video (1-100). Duplikat hanya diambil sekali.
languageTidakKode bahasa untuk semua video (default: en)
timestampsTidaktrue untuk menyertakan segments per baris di hasil
webhook_urlTidakURL https publik yang diberi tahu saat batch selesai
Idempotency-KeyTidakHeader. Ulangi request dengan aman: key yang sama mengembalikan batch semula.

Permintaan

curl -X POST "https://getyoutubetranscript.com/api/v1/batch" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
        "videos": ["jNQXAC9IVRw", "https://youtu.be/dQw4w9WgXcQ"],
        "webhook_url": "https://example.com/hooks/transcripts"
      }'

Tanggapan

{
  "success": true,
  "data": {
    "batch_id": "324eb615-e4d5-4b3c-b8e7-04235671066b",
    "status": "queued",
    "total": 2,
    "succeeded": 0,
    "failed": 0,
    "pending": 2,
    "results_url": "https://getyoutubetranscript.com/api/v1/batch?id=324eb615-...",
    "webhook_secret": "whsec_..."
  }
}
GET/batchGratis

Status batch, jumlah, dan satu halaman hasil sesuai urutan pengiriman. Item yang berhasil punya field yang sama dengan /transcript; item yang gagal membawa error_code.

ParameterWajibDeskripsi
idYabatch_id dari POST /batch
offsetTidakItem yang dilewati (default: 0)
limitTidakItem per halaman, 1-50 (default: 20)

Permintaan

curl "https://getyoutubetranscript.com/api/v1/batch?id=324eb615-e4d5-4b3c-b8e7-04235671066b" \
  -H "Authorization: Bearer sk_live_..."

Tanggapan

{
  "success": true,
  "data": {
    "batch_id": "324eb615-...",
    "status": "completed",
    "total": 2,
    "succeeded": 1,
    "failed": 1,
    "credits_charged": 1,
    "items": [
      { "position": 0, "status": "succeeded", "charged": true, "video_id": "jNQXAC9IVRw", "caption_type": "manual", "transcript": "All right, so here we are...", ... },
      { "position": 1, "status": "failed", "charged": false, "video_id": "dQw4w9WgXcQ", "error_code": "TRANSCRIPT_DISABLED" }
    ],
    "next_offset": null
  }
}
GET/search1 kredit / halaman

Cari video YouTube dengan filter dan pagination.

ParameterWajibDeskripsi
qYaKata kunci pencarian (minimal 2 karakter)
countryTidakKode negara 2 huruf (default: us)
languageTidakKode bahasa (default: en)
page_tokenTidakcontinuation_token dari response sebelumnya, untuk mengambil halaman berikutnya
limitTidakJumlah hasil maksimal (default 20, maks 50)

Permintaan

curl "https://getyoutubetranscript.com/api/v1/search?q=lofi+beats" \
  -H "Authorization: Bearer sk_live_..."

Tanggapan

{
  "success": true,
  "data": {
    "query": "lofi beats",
    "video_results": [ { "title": "...", "videoId": "...", "channel": { "name": "..." } } ],
    "continuation_token": "c_bKt9xQ2mVf7LpR0aZ3sWyA"
  }
}
GET/resolveGratis

Ubah handle, URL, atau username channel menjadi ID channel sebenarnya. Input yang sudah bersifat sintaktis (sudah berupa ID channel atau URL yang mengandung ID) langsung terselesaikan tanpa panggilan jaringan; handle biasa akan memicu satu kali pencarian nyata.

ParameterWajibDeskripsi
handleYaID channel, URL, atau @handle

Permintaan

curl "https://getyoutubetranscript.com/api/v1/resolve?handle=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Tanggapan

{
  "success": true,
  "data": {
    "channel_id": "UCBJycsmduvYEL83R_U4JriQ",
    "title": "Marques Brownlee",
    "handle": "http://www.youtube.com/@mkbhd",
    "resolved_via": "scrape"
  }
}
GET/channel/latestGratis

Detail channel (judul, subscriber, deskripsi, avatar) beserta video terbaru di tab beranda channel. Untuk seluruh riwayat upload gunakan /channel/videos.

ParameterWajibDeskripsi
channelYa@handle, URL, atau ID channel

Permintaan

curl "https://getyoutubetranscript.com/api/v1/channel/latest?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Tanggapan

{
  "success": true,
  "data": {
    "channel": { "id": "UCBJycsmduvYEL83R_U4JriQ", "title": "Marques Brownlee", "subscribers": 1160000, "avatar": "https://..." },
    "about": { "description": "...", "links": [] },
    "videos_sections": [ ... ]
  }
}
GET/channel/videos1 kredit / halaman

Semua video yang diunggah channel, terbaru lebih dulu, dengan paginasi.

ParameterWajibDeskripsi
channelYa@handle, URL, atau ID channel
continuationTidakcontinuation_token dari respons sebelumnya, untuk mengambil halaman berikutnya (gunakan sebagai pengganti parameter lain). Kedaluwarsa setelah 24 jam.

Permintaan

curl "https://getyoutubetranscript.com/api/v1/channel/videos?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

Tanggapan

{
  "success": true,
  "data": {
    "videos": [ { "position": 1, "id": "...", "title": "...", "views": "6.2M", "published_time": "1d ago", "length": "10:47" } ],
    "has_more": true,
    "continuation_token": "c_pqHR9v13sqaqxlcKhA4MnA"
  }
}
GET/channel/search1 kredit / halaman

Cari di dalam video satu channel, dengan paginasi.

ParameterWajibDeskripsi
channelYa@handle, URL, atau ID channel
qYaKata kunci pencarian (minimal 2 karakter)
continuationTidakcontinuation_token dari respons sebelumnya, untuk mengambil halaman berikutnya (gunakan sebagai pengganti parameter lain). Kedaluwarsa setelah 24 jam.

Permintaan

curl "https://getyoutubetranscript.com/api/v1/channel/search?channel=@mkbhd&q=iphone" \
  -H "Authorization: Bearer sk_live_..."

Tanggapan

{
  "success": true,
  "data": {
    "videos": [ { "position": 1, "id": "...", "title": "...", "published_time": "3w ago", "length": "17:14", "channel": { "name": "Marques Brownlee" } } ],
    "has_more": true,
    "continuation_token": "c_pnm10M6orzLgOTVWJk2oww"
  }
}
GET/playlist1 kredit / halaman

Semua video dalam playlist, dengan paginasi. continuation_token bernilai null di halaman terakhir.

ParameterWajibDeskripsi
listYaID atau URL playlist
continuationTidakcontinuation_token dari respons sebelumnya, untuk mengambil halaman berikutnya (gunakan sebagai pengganti parameter lain). Kedaluwarsa setelah 24 jam.

Permintaan

curl "https://getyoutubetranscript.com/api/v1/playlist?list=PLxxx" \
  -H "Authorization: Bearer sk_live_..."

Tanggapan

{
  "success": true,
  "data": {
    "playlist_id": "PLxxx",
    "title": "...",
    "videos": [ { "position": 1, "id": "...", "title": "...", "channel": { "name": "..." } } ],
    "has_more": true,
    "continuation_token": "c_DfE9mQx2Ln8TbW4kJ1pZsA"
  }
}
GET/creditsGratis

Periksa sisa saldo kredit untuk kunci ini sebelum menggunakannya - data yang sama seperti yang dikembalikan oleh tool MCP get_credits.

ParameterWajibDeskripsi

Permintaan

curl "https://getyoutubetranscript.com/api/v1/credits" \
  -H "Authorization: Bearer sk_live_..."

Tanggapan

{
  "success": true,
  "data": {
    "plan_credits_left": 87,
    "topup_credits_left": 0,
    "plan": "monthly",
    "rate_limit_per_minute": 200
  }
}

Error

Error mengembalikan body JSON dengan field code yang stabil untuk pencabangan logika, selain status HTTP-nya:

StatusKodeArti
400BAD_REQUESTParameter hilang atau tidak valid
400CURSOR_EXPIREDKursor halaman kedaluwarsa (setelah 24 jam) - mulai lagi dari halaman pertama
401MISSING_API_KEY / INVALID_API_KEYTidak ada key yang diberikan, atau key tidak valid/dicabut
402PAYMENT_REQUIREDKredit habis - beli top-up atau upgrade
404VIDEO_UNAVAILABLE / TRANSCRIPT_NOT_FOUNDVideo atau resource tidak ditemukan
429RATE_LIMITEDTerlalu banyak request untuk tingkat paket Anda
503UPSTREAM_UNAVAILABLEMasalah sementara di sisi upstream - aman untuk dicoba ulang
504UPSTREAM_TIMEOUTUpstream butuh lebih dari 25 detik - tidak dikenai biaya, aman untuk dicoba lagi

Menggunakan API ini dengan tool AI

Lebih suka membiarkan Claude (atau tool AI coding lain) memanggil API ini untuk Anda daripada menulis request secara manual? Unduh Skill YouTube Transcript - sebuah Claude Skill siap pakai yang mengajarkannya cara mengambil transkrip, mencari, dan lainnya.

Pakai di Zapier

Tanpa kode: aplikasi Zapier kami mengambil transkrip, mencari di YouTube, atau menampilkan daftar video sebuah channel di Zap mana pun. Hubungkan dengan kunci API yang sama; setiap aksi memakai kredit yang sama dengan panggilan API.