PanduanOleh Péter Nagy

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.

Rumus video YouTube sekarang

Tampal pautan dan dapatkan isi penting dengan cap masa boleh klik.

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 (GET juga berfungsi)
  • Pengesahan: kunci anda dalam pengepala X-API-Key, atau Authorization: Bearer <key>
  • Input: url atau video_id
  • lang pilihan (lalai en)
  • format pilihan: json, text atau srt

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.

Rumus video YouTube sekarang

Tampal pautan dan dapatkan isi penting dengan cap masa boleh klik.

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.

Rumus video YouTube sekarang

Tampal pautan dan dapatkan isi penting dengan cap masa boleh klik.

api transkrip youtubetutorial apipythonjavascriptcurl

Bacaan berkaitan

Hantaran terkini

Rumus sebarang video YouTube dalam saat

Cuba sum.video