Cara mendapatkan transkrip YouTube dengan API (curl, Python, JavaScript)
Dapatkan transkrip mana-mana video YouTube awam dengan satu permintaan HTTP. Contoh curl, Python dan JavaScript yang berfungsi, format output, kod ralat dan kos.

Untuk mendapatkan transkrip YouTube dengan API, hantar satu permintaan HTTP dengan URL atau ID video dan kunci API, kemudian baca transkrip daripada respons. Panduan ini menunjukkan permintaan dalam curl, Python dan JavaScript menggunakan Transcript API sum.video, kemudian membincangkan format, ralat dan kos.
Apa yang dikembalikan oleh API
Titik akhir ini mengembalikan sari kata sedia ada bagi video YouTube awam, sama ada ditulis oleh pencipta atau dijana secara automatik oleh YouTube. Ia tidak mentranskripsi audio. Jika video tiada sari kata, anda mendapat ralat dan bukannya tekaan (lebih lanjut di bawah).
Asasnya:
- Titik akhir:
POST https://sum.video/api/v1/transcript(GETjuga berfungsi) - Pengesahan: kunci anda dalam pengepala
X-API-Key, atauAuthorization: Bearer <key> - Input:
urlatauvideo_id langpilihan (lalaien)formatpilihan:json,textatausrt
Respons juga memberitahu bahasa sebenar trek sari kata dan sama ada ia dijana secara automatik, supaya anda tahu kualiti yang patut dijangka.
Langkah 1: Cipta kunci API
Log masuk dan cipta kunci di papan pemuka API (/dashboard/api di sum.video). Anda boleh mempunyai sehingga 5 kunci aktif, berguna untuk memisahkan kunci ujian daripada kunci pengeluaran. Kunci pertama anda datang dengan 10 kredit percuma, cukup untuk 5 transkrip, jadi anda boleh mencuba semua yang berikut tanpa kos.
Langkah 2: Buat permintaan pertama anda
curl
curl -X POST https://sum.video/api/v1/transcript \
-H "X-API-Key: $SUMVIDEO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "lang": "en", "format": "text"}'
Memandangkan GET juga berfungsi, anda boleh menguji daripada skrip yang hanya membina URL. Sebaiknya berikan kunci dalam pengepala supaya ia tidak masuk ke dalam log.
Python
import os
import requests
resp = requests.post(
"https://sum.video/api/v1/transcript",
headers={"X-API-Key": os.environ["SUMVIDEO_API_KEY"]},
json={"video_id": "dQw4w9WgXcQ", "lang": "en", "format": "text"},
timeout=30,
)
if resp.status_code == 404:
print("No captions for this video")
else:
resp.raise_for_status()
print(resp.text)
JavaScript (Node 18+ atau pelayar)
const resp = await fetch("https://sum.video/api/v1/transcript", {
method: "POST",
headers: {
"X-API-Key": process.env.SUMVIDEO_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
video_id: "dQw4w9WgXcQ",
lang: "en",
format: "text",
}),
});
if (resp.status === 404) {
console.log("No captions for this video");
} else if (!resp.ok) {
throw new Error(`Request failed: ${resp.status}`);
} else {
console.log(await resp.text());
}
Simpan kunci pada pelayan. Kunci dalam kod pelayar boleh disalin oleh sesiapa yang membuka alat pembangun.
Langkah 3: Pilih format yang betul
| Format | Apa yang anda dapat | Terbaik untuk |
|---|---|---|
json |
Segmen, setiap satu dengan offset dan duration dalam saat |
Cap masa, pautan ke detik tertentu, pembahagian mengikut masa |
text |
Transkrip biasa | Prompt, indeks carian, ringkasan |
srt |
Kandungan fail sari kata | Penyunting video, alat sari kata |
Jika anda bercadang memaut ke detik dalam video, gunakan json dan bina pautan daripada offset segmen. Untuk memberi makan LLM, text lebih kecil dan lebih mudah. Jika kemudian anda mahu mencari secara manual dalam transkrip, lihat cara mencari dalam transkrip video YouTube.
Langkah 4: Pilih bahasa
lang ialah en secara lalai. Tetapkan kepada bahasa yang anda mahu, contohnya de atau es. Respons melaporkan bahasa trek yang benar-benar dikembalikan, jadi semaklah dan jangan menganggap. Sesebuah video sering hanya mempunyai satu trek sari kata, dan API mengembalikan sari kata sebenar, jadi ia tidak menterjemahkannya untuk anda.
Langkah 5: Tangani ralat
Rancang untuk kes-kes ini sejak hari pertama:
404 no_transcript: video tiada sari kata, atau ia siaran langsung, video peribadi atau video yang dibuang. Tiada apa untuk dicuba semula. Langkau, atau minta video lain daripada pengguna.402 budget_exceeded: anda mencapai had kredit bulanan yang anda tetapkan. Lihat bahagian seterusnya.- Had kadar: setiap kunci membenarkan 60 permintaan seminit. Sebarkan kerja kelompok, dan perlahankan apabila anda dihadkan.
- Kegagalan di pihak kami: cuba semula selepas jeda singkat. Ia tidak berkos.
Gelung ringkas yang mencuba semula pada ralat pelayan dan melangkau pada 404 meliputi kebanyakan keperluan pengeluaran.
Berapa kosnya
Setiap transkrip berharga 2 kredit. Permintaan yang tidak mengembalikan transkrip, atau gagal di pihak sum.video, tidak berkos, jadi 404 tidak pernah mengosongkan baki anda. Anda boleh menyemak baki dengan GET /api/v1/credits.
Kredit dijual dalam pek sekali beli yang tidak pernah tamat tempoh:
| Pek | Harga | Setiap transkrip |
|---|---|---|
| 100 kredit | $4.49 | $0.090 |
| 500 kredit | $13.99 | $0.056 |
| 2,000 kredit | $37.99 | $0.038 |
| 5,000 kredit | $74.99 | $0.030 |
Pelanggan Pro juga mendapat 100 kredit bonus setiap bulan. Untuk beban kerja yang lebih berat, seperti memasukkan seluruh saluran, baca senario transkrip YouTube untuk aplikasi RAG pada skala besar yang merangkumi tambah nilai automatik dan bajet. Lihat juga harga.
Had yang patut diketahui sebelum membina
- Hanya video yang mempunyai sari kata berfungsi. Ini sebab utama
404 no_transcript. - Sari kata yang dijana secara automatik boleh mengandungi kesilapan, terutamanya pada nama, loghat dan istilah teknikal.
- API hanya mengembalikan transkrip. Ia tidak meringkaskan. Jika anda mahu ringkasan, cap masa dan sembang di atas transkrip, peringkas YouTube melakukannya, dan alat transkrip ialah versi tanpa kod untuk satu video.
- YouTube Data API rasmi bukan pengganti di sini. Kaedah muat turun sari katanya memerlukan kebenaran untuk menyunting video, jadi ia ditujukan untuk video anda sendiri (dokumentasi Google).
Sumber
Soalan Lazim
Bolehkah saya mendapatkan transkrip YouTube tanpa YouTube Data API rasmi?
Boleh. Transcript API sum.video menerima URL atau ID video dan mengembalikan sari kata sedia ada, tanpa memerlukan projek Google Cloud. Kaedah muat turun sari kata Google sendiri memerlukan kebenaran untuk menyunting video, jadi ia hanya sesuai untuk video anda sendiri.
Adakah API mentranskripsi video yang tiada sari kata?
Tidak. Ia mengembalikan sari kata YouTube sedia ada, yang ditulis secara manual atau dijana secara automatik. Video tanpa sari kata, siaran langsung, video peribadi dan video yang dibuang mengembalikan 404 no_transcript, dan permintaan itu tidak berkos.
Berapakah kos satu transkrip?
2 kredit setiap transkrip. Pek bermula dari 100 kredit pada harga $4.49 ($0.090 setiap transkrip) hingga 5,000 kredit pada harga $74.99 ($0.030 setiap transkrip), dan kredit tidak pernah tamat tempoh.
Format output apakah yang tersedia?
json (segmen dengan offset dan duration dalam saat), text dan srt. Tetapkan medan format dalam permintaan.
Bagaimana saya mencubanya secara percuma?
Kunci API pertama anda datang dengan 10 kredit percuma, iaitu 5 transkrip. Pelanggan Pro turut mendapat 100 kredit bonus setiap bulan.
Bacaan berkaitan
Transkrip YouTube untuk aplikasi RAG pada skala besar: kredit, tambah nilai automatik dan bajetSeorang pembangun memasukkan 10,000 video YouTube ke dalam aplikasi RAG. Lihat kos, pengiraan had kadar, dan cara tambah nilai automatik serta bajet mengekalkan perbelanjaan boleh dijangka.
Perbandingan API transkrip YouTube terbaik: sum.video, Supadata, Transcribr dan pustaka PythonEmpat cara mendapatkan transkrip YouTube dalam kod, dibandingkan dari segi harga, had dan kebolehpercayaan: sum.video, Supadata, Transcribr dan youtube-transcript-api.
Hantaran terkini
Transkrip YouTube untuk aplikasi RAG pada skala besar: kredit, tambah nilai automatik dan bajetSeorang pembangun memasukkan 10,000 video YouTube ke dalam aplikasi RAG. Lihat kos, pengiraan had kadar, dan cara tambah nilai automatik serta bajet mengekalkan perbelanjaan boleh dijangka.
Perbandingan API transkrip YouTube terbaik: sum.video, Supadata, Transcribr dan pustaka PythonEmpat cara mendapatkan transkrip YouTube dalam kod, dibandingkan dari segi harga, had dan kebolehpercayaan: sum.video, Supadata, Transcribr dan youtube-transcript-api.