YouTube transcript API yang tetap bekerja tanpa subtitle

Dengan YouTube transcript API, Anda cukup mengirim link video untuk mendapatkan JSON, teks, SRT atau VTT. Kami mengambil subtitle yang bisa digunakan terlebih dahulu. Jika tidak ada, AI mentranskripsi audionya.

  • Subtitle lebih dulu, transkripsi AI bila perlu
  • Subtitle maupun AI sama-sama 1 kredit per menit
  • Link watch, youtu.be, Shorts dan embed

Tentukan dari mana aplikasi Anda mengambil teks

Tidak perlu menyeragamkan link
Kirim link watch, youtu.be, Shorts, embed atau live. Semuanya merujuk ke video yang sama, dengan atau tanpa www. Link live tetap harus mengarah ke rekaman, bukan siaran yang sedang berlangsung.
Ambil subtitle yang sudah tersedia
Dengan source=auto, subtitle yang diunggah kreator mendapat prioritas atas subtitle otomatis. Kami tidak memakai subtitle hasil terjemahan otomatis.
Tetap bisa tanpa subtitle
Jika tidak ada subtitle yang bisa dipakai, AI mengubah ucapan menjadi teks. Ingin selalu memproses audio? Pilih source=stt.
Asal teks bisa Anda periksa
Field transcript_source menunjukkan youtube_captions atau speech_to_text. Aplikasi Anda bisa membedakan subtitle YouTube dari transkripsi AI.
Hitungan biaya tetap sama
Setiap menit durasi video memakai 1 kredit, dibulatkan ke atas, baik dari subtitle maupun AI. Jika transkripsi gagal atau Anda membatalkannya, tidak ada kredit yang terpakai.

Kirim link dari server atau skrip Anda

Buat kunci API di dasbor, lalu kirim URL video dengan POST. Bisa dari Python atau HTTP client lain. Dengan wait=60, koneksi menunggu hingga 60 detik. Referensi pembuatan transkripsi memuat field request dan status HTTP-nya.

Simpan ID transkripsi begitu request berhasil. Jika waktu tunggu habis sebelum teks siap, prosesnya tetap berjalan. Baca status lewat GET /v1/transcriptions/:id; jangan mengirim request pembuatan baru hanya karena respons awal belum berisi teks.

Aplikasi dapat melihat status queued, fetching atau transcribing sebelum completed atau failed. Pada completed, tampilkan transkrip. Pada failed, tangani error. Jangan tampilkan transkrip kosong seolah-olah berhasil ketika video tidak bisa diakses atau koneksi terlambat.

cURL
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"platform":"youtube","url":"https://youtu.be/dQw4w9WgXcQ"}'

Periksa asal teks lewat transcript_source

Respons memberi tahu apakah teks berasal dari subtitle YouTube, termasuk jenis subtitlenya. billed_minutes berisi durasi yang dibulatkan ke atas. Lihat seluruh field di objek transkripsi.

Simpan transcript_source dan caption_kind jika aplikasi perlu mencatat asal teks. Subtitle kreator mempertahankan teks yang dipublikasikan, tanpa timestamp per kata. Subtitle otomatis YouTube menyediakan waktu awal kata. Transkripsi AI menyediakan waktu awal, akhir dan confidence. Contoh JSON di bawah hanya menunjukkan strukturnya, bukan isi video contoh.

Gunakan waktu awal dan akhir segmen untuk menghubungkan teks ke pemutar, menyelaraskan catatan, atau mengirim kutipan yang relevan ke asisten AI. Tambahkan include=words saat membaca JSON hanya jika aplikasi membutuhkan rincian tiap kata.

Contoh respons JSON yang dipersingkat
{
  "id": "tr_8fK2Lm0PqRsTuVwXyZaBcD",
  "status": "completed",
  "transcript_source": "youtube_captions",
  "caption_kind": "auto_generated",
  "language": "en",
  "billed_minutes": 4,
  "transcript": {
    "text": "Welcome back to the channel. Today we are looking at how transcripts are made.",
    "segments": [
      { "start": 0, "end": 4.2, "speaker": null, "language": "en", "text": "Welcome back to the channel." }
    ]
  }
}

Butuh subtitle asli atau transkripsi baru?

Nilai default source adalah auto. Pilih captions (hanya subtitle) jika Anda memang membutuhkan subtitle yang tersedia di YouTube. Jika tidak ada yang sesuai, request gagal dengan no_captions tanpa biaya. Pilih stt untuk selalu mentranskripsi audio. Rinciannya ada di pengaturan sumber.

Untuk pengenalan pembicara, gunakan transkripsi AI. Kombinasi auto dan diarize=true langsung memproses audio, meski video memiliki subtitle. Kombinasi captions dan diarize=true ditolak; API tidak mengabaikan salah satu opsi secara diam-diam.

Pilihan language juga menentukan subtitle yang bisa dipakai. Bahasanya harus sesuai dengan yang Anda minta, atau bahasa asli video jika memakai auto. Subtitle terjemahan otomatis tidak digunakan. Pada transkripsi AI, language hanya memberi petunjuk bahasa, bukan perintah untuk menerjemahkan.

Body request untuk mentranskripsi audio
{
  "platform": "youtube",
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "source": "stt"
}

Periksa penyebabnya sebelum mengulang request

Mengulang request tidak akan membuka video privat, menghapus batas usia, atau mengubah siaran langsung menjadi rekaman. Jika captions (hanya subtitle) menghasilkan no_captions, tentukan apakah transkripsi audio boleh menggantikannya. Jika proses masih berjalan, baca lagi berdasarkan ID. Gunakan panduan error untuk menentukan tindakan yang tepat.

Gunakan Idempotency-Key saat perlu mengulang request pembuatan yang sama. Opsi penggunaan ulang transkripsi terbaru berbeda: opsi itu mencari video dan pengaturan yang cocok. Cache tidak selalu berarti gratis; transkripsi dari cache masih bisa ditagih sebagai pekerjaan baru. Membaca transkripsi selesai yang sudah ada tidak memakai menit tambahan.

Endpoint yang sama juga menerima link TikTok, Instagram dan platform lain yang didukung. YouTube, X, TikTok dan Bluesky dapat memakai subtitle lalu beralih ke AI bila perlu. Periksa kemampuan setiap sumber sebelum menawarkan pilihan source di aplikasi Anda.

Coba dengan 60 menit gratis

Daftar dan verifikasi email untuk mendapat 60 menit gratis sekali di awal. Tidak perlu kartu kredit.

Dapatkan kunci API

Pertanyaan umum

Masih ada pertanyaan? Hubungi kami

Kalau videonya tidak punya subtitle, masih bisa?

Bisa. Dengan source=auto, AI mentranskripsi audio jika subtitle tidak tersedia atau tidak bisa digunakan. Pilih source=captions jika Anda ingin request gagal alih-alih beralih ke AI.

Link YouTube mana yang bisa saya kirim?

Link watch, youtu.be, Shorts, embed dan live yang mengarah ke satu video. Link channel atau playlist saja menghasilkan 422 invalid_url. Siaran yang masih berlangsung tidak bisa diproses.

Video privat bisa ditranskripsi?

Tidak. Kami bisa mengambil video publik dan unlisted yang dapat diakses. Video privat, video dengan batas usia dan siaran langsung yang masih berlangsung akan gagal. Jika Anda punya file aslinya, unggah file tersebut.

Berapa biaya mengambil transkrip YouTube?

1 kredit per menit durasi video, dibulatkan ke atas. Tarif subtitle dan AI sama. Akun baru mendapat 60 menit gratis sekali setelah verifikasi email, tanpa kartu kredit.

Ini paket Python youtube-transcript-api?

Bukan. transcript1 adalah REST API yang kami jalankan di server. Dari Python, Anda cukup mengirim request HTTP dengan kunci API.