RehberlerYazan: Péter Nagy

API ile YouTube transkripti nasıl alınır (curl, Python, JavaScript)

Herkese açık bir YouTube transkriptini tek HTTP isteğiyle al. Çalışan curl, Python ve JavaScript örnekleri, çıktı biçimleri, hata kodları ve maliyet.

Şimdi bir YouTube videosunu özetle

Bir bağlantı yapıştır, tıklanabilir zaman damgalarıyla ana noktaları al.

Bir API ile YouTube transkripti almak için video URL'si veya kimliği ile bir API anahtarını tek bir HTTP isteğiyle gönder, transkripti yanıttan oku. Bu rehber, isteği sum.video Transcript API ile curl, Python ve JavaScript'te gösteriyor, ardından biçimleri, hataları ve maliyeti anlatıyor.

API ne döndürüyor?

Uç nokta, herkese açık bir YouTube videosunun mevcut altyazılarını döndürür: ister içerik üreticisi yazmış olsun, ister YouTube otomatik oluşturmuş olsun. Sesi yazıya dökmez. Videoda altyazı yoksa tahmin yürütmek yerine bir hata alırsın (aşağıda daha fazlası var).

Temel bilgiler:

  • Uç nokta: POST https://sum.video/api/v1/transcript (GET de çalışır)
  • Kimlik doğrulama: anahtarın X-API-Key başlığında veya Authorization: Bearer <key>
  • Girdi: url veya video_id
  • İsteğe bağlı lang (varsayılan en)
  • İsteğe bağlı format: json, text veya srt

Yanıt ayrıca altyazı kanalının gerçek dilini ve otomatik oluşturulup oluşturulmadığını söyler, böylece nasıl bir kalite bekleyeceğini bilirsin.

1. Adım: API anahtarı oluştur

Giriş yap ve API panelinde (sum.video üzerinde /dashboard/api) bir anahtar oluştur. En fazla 5 etkin anahtarın olabilir; bu, test anahtarını üretim anahtarından ayırmak için işine yarar. İlk anahtarınla 10 ücretsiz kredi gelir, yani 5 transkript. Aşağıdakilerin hepsini ücretsiz deneyebilirsin.

Şimdi bir YouTube videosunu özetle

Bir bağlantı yapıştır, tıklanabilir zaman damgalarıyla ana noktaları al.

2. Adım: İlk isteğini yap

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"}'

GET de çalıştığı için, yalnızca URL oluşturan bir betikten de test edebilirsin. Anahtarın günlüklere düşmemesi için onu başlıkta göndermeyi tercih et.

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("Bu video için altyazı yok")
else:
    resp.raise_for_status()
    print(resp.text)

JavaScript (Node 18+ veya tarayıcı)

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("Bu video için altyazı yok");
} else if (!resp.ok) {
  throw new Error(`İstek başarısız oldu: ${resp.status}`);
} else {
  console.log(await resp.text());
}

Anahtarı sunucuda tut. Tarayıcı koduna konan bir anahtarı, geliştirici araçlarını açan herkes kopyalayabilir.

3. Adım: Doğru biçimi seç

Biçim Ne alırsın En uygun kullanım
json Her biri saniye cinsinden offset ve duration içeren segmentler Zaman damgaları, videodaki bir ana derin bağlantı, zamana göre parçalama
text Düz transkript Promptlar, arama dizinleri, özetler
srt Altyazı dosyası içeriği Video düzenleyiciler, altyazı araçları

Videodaki bir ana bağlantı vermek istiyorsan json kullan ve bağlantıyı segmentin offset değerinden oluştur. Bir LLM'e beslemek için text daha küçük ve basittir. Bir transkriptin içinde sonradan elle arama yapmak istersen bir YouTube videosunun transkriptinde nasıl arama yapılır yazısına bak.

4. Adım: Dil seç

lang varsayılan olarak en değerindedir. İstediğin dile ayarla, örneğin de veya es. Yanıt, gerçekten döndürülen kanalın dilini bildirir; bu yüzden varsaymak yerine kontrol et. Bir videoda çoğu zaman tek altyazı kanalı bulunur ve API gerçek altyazıları döndürdüğü için senin yerine çeviri yapmaz.

5. Adım: Hataları yönet

İlk günden şu durumlara hazırlıklı ol:

  • 404 no_transcript: videoda altyazı yok, ya da canlı yayın, özel video veya kaldırılmış video. Yeniden denemenin anlamı yok. Atla ya da kullanıcıdan başka bir video iste.
  • 402 budget_exceeded: ayarladığın aylık kredi sınırına ulaştın. Sonraki bölüme bak.
  • Hız sınırı: her anahtar dakikada 60 isteğe izin verir. Toplu işleri aralıklı gönder, yavaşlatıldığında geri çekil.
  • Bizim taraftaki hatalar: kısa bir beklemeyle yeniden dene. Bunların maliyeti yoktur.

Sunucu hatalarında yeniden deneyen ve 404 durumunda atlayan basit bir döngü, üretimdeki ihtiyaçların çoğunu karşılar.

Maliyeti ne kadar?

Her transkript 2 kredi tutar. Transkript döndürmeyen veya sum.video tarafında başarısız olan isteklerin maliyeti yoktur, yani bir 404 bakiyeni eritmez. Bakiyeni GET /api/v1/credits ile kontrol edebilirsin.

Krediler, süresi dolmayan tek seferlik paketler halinde satılır:

Paket Fiyat Transkript başına
100 kredi $4.49 $0.090
500 kredi $13.99 $0.056
2,000 kredi $37.99 $0.038
5,000 kredi $74.99 $0.030

Pro aboneleri her ay ayrıca 100 bonus kredi alır. Bir kanalın tamamını almak gibi daha ağır bir iş yükü için, otomatik yüklemeyi ve bütçeleri anlatan Ölçekli bir RAG uygulaması için YouTube transkriptleri senaryosunu oku. Fiyatlandırma sayfasına da bakabilirsin.

Yapmadan önce bilmen gereken sınırlar

  • Yalnızca altyazısı olan videolar çalışır. 404 no_transcript hatasının ana nedeni budur.
  • Otomatik oluşturulan altyazılarda, özellikle isimlerde, aksanlarda ve teknik terimlerde hatalar olabilir.
  • API yalnızca transkripti döndürür. Özet çıkarmaz. Bir transkriptin üzerine özet, zaman damgası ve sohbet istersen bunu YouTube özetleyici yapar; transkript aracı ise tek bir video için kodsuz sürümdür.
  • Resmi YouTube Data API burada bir alternatif değil. Altyazı indirme yöntemi videoyu düzenleme izni gerektirir, yani kendi videoların için tasarlanmıştır (Google belgeleri).

Kaynaklar

Sıkça sorulan sorular

Resmi YouTube Data API olmadan YouTube transkripti alabilir miyim?

Evet. sum.video Transcript API bir video URL'sini veya kimliğini alır ve mevcut altyazıları döndürür, Google Cloud projesi gerekmez. Google'ın kendi altyazı indirme yöntemi videoyu düzenleme izni gerektirir, bu yüzden yalnızca kendi videoların için uygundur.

API altyazısı olmayan videoları yazıya döküyor mu?

Hayır. Manuel ya da otomatik oluşturulmuş mevcut YouTube altyazılarını döndürür. Altyazısız videolar, canlı yayınlar, özel videolar ve kaldırılmış videolar 404 no_transcript döndürür ve bu istek hiçbir şeye mal olmaz.

Bir transkript ne kadar tutuyor?

Transkript başına 2 kredi. Paketler 100 kredi için $4.49 ($0.090 transkript başına) ile 5,000 kredi için $74.99 ($0.030 transkript başına) arasında değişir ve krediler hiç sona ermez.

Hangi çıktı biçimleri var?

json (saniye cinsinden offset ve duration içeren segmentler), text ve srt. İstekteki format alanını ayarla.

Ücretsiz nasıl denerim?

İlk API anahtarınla 10 ücretsiz kredi gelir, yani 5 transkript. Pro aboneleri ayrıca her ay 100 bonus kredi alır.

Şimdi bir YouTube videosunu özetle

Bir bağlantı yapıştır, tıklanabilir zaman damgalarıyla ana noktaları al.

youtube transkript apiapi öğreticisipythonjavascriptcurl

İlgili yazılar

En yeni yazılar

Herhangi bir YouTube videosunu saniyeler içinde özetle

sum.video'yu dene