Bloga dönEntegrasyonlar

How to Get YouTube Transcripts in Python

Two ways to pull YouTube transcripts in Python: the open-source youtube-transcript-api library, and a hosted REST API. Working code for both, and where the self-hosted approach breaks in production.

00:07:00 · SEP 26, 2026

Hızlı yanıt

Hızlı bir yerel script için youtube-transcript-api'yi kurun, ya da deploy ettikten sonra IP engelleme ve PoToken sorunlarıyla uğraşmak istemiyorsanız barındırılan bir REST API'yi çağırın. Her ikisi de aşağıda gerçekten çalışan kodla anlatılıyor.
01

Açık kaynak kütüphaneyi kurun

youtube-transcript-api, YouTube'un kendi altyazı verisini doğrudan getiren, iyi bakımı yapılan bir Python paketidir - API anahtarı yok, YouTube Data API kotası yok.

pip install youtube-transcript-api

Bir video ID ile transkript alın:

from youtube_transcript_api import YouTubeTranscriptApi

api = YouTubeTranscriptApi()
transcript = api.fetch("dQw4w9WgXcQ", languages=["en"])

for snippet in transcript:
    print(snippet.text, snippet.start, snippet.duration)
02

Deploy edince nerede bozuluyor

Bu, bir laptop üzerinde güvenilir şekilde çalışır. Bir bulut sunucusuna deploy edildiğinde, gerçek ve iyi belgelenmiş hatalarla karşılaşabilir - IP engelleme, PoTokenRequired ve göründüğü gibi olmayan bir 'transkript devre dışı' hatası. Tam nedenler ve çözümler için eksiksiz tanı kontrol listesine bakın.

03

Bir API anahtarı alın (kendiniz barındırmak istemiyorsanız)

panelden ücretsiz bir anahtar alın - 100 ücretsiz kredi, kart gerekmez.

pip install requests
04

Barındırılan API'yi Python'dan çağırma

Proxy havuzu yok, IP engelleme bakımı yok - sadece bir HTTP isteği:

import requests

response = requests.get(
    "https://getyoutubetranscript.com/api/v1/transcript",
    params={"v": "dQw4w9WgXcQ"},
    headers={"Authorization": "Bearer sk_live_..."},
)
result = response.json()

print(result["data"]["transcript"])
print(result["data"]["word_count"])

Başarısız bir istek, kütüphaneye özgü bir exception fırlatmak yerine bir hata nesnesi döndürür, böylece aynı hata yönetimi her endpoint'te çalışır.

{ "success": false, "code": "...", "message": "..." }
05

Birden fazla video almak

Video ID listesi üzerinde döngü kurmak aynı şekilde çalışır - sadece planınızın dakikadaki istek limitine dikkat edin. Geri çekilme ve yeniden deneme mantığı için hız limiti rehberine bakın.

Her iki yaklaşım da aynı bilgiyi döndürür - fark, altyapıyı çalışır tutmayı kimin üstlendiğidir. Tam fiyatlandırmayı görün (100 ücretsiz kredi, kart gerekmez) ya da her endpoint için API belgelerini okuyun.

Python YouTube Transkript SSS

Q01

Hangi yaklaşımı kullanmalıyım?

Hızlı bir yerel script veya prototip için youtube-transcript-api. Production'a deploy ederken ve proxy/IP engelleme çözümlerini kendiniz sürdürmek istemediğinizde barındırılan bir API.

Q02

Barındırılan API, youtube-transcript-api kütüphanesini gerektirir mi?

Hayır - düz bir REST API. Herhangi bir HTTP istemcisiyle (requests, httpx, hatta curl) çağırabilirsiniz; Python'a özgü bir bağımlılık gerekmez.

Q03

Sadece tam metin değil, satır başına zaman damgası alabilir miyim?

Açık kaynak kütüphane, snippet başına başlangıç/süreyi doğrudan döndürür. Barındırılan API'mizin transkript endpoint'i şu anda tam transkripti düz metin ve kelime sayısı olarak döndürüyor, segment başına zaman damgası vermiyor - kullanım durumunuz özellikle API'den bu ayrıntı düzeyini gerektiriyorsa, açık kaynak kütüphane bugün için daha uygun seçim.

Q04

Bir videoda transkript yoksa ne olur?

Her iki yaklaşım da boş bir string yerine belirli bir hata döndürür - her hata kodunun ne anlama geldiğini tanı kontrol listesinde görebilirsiniz.

İlgili