YouTube transkript çekme işlemini kodunuza ekleyin
Video bağlantısını API anahtarınızla POST /v1/transcriptions endpointine gönderin. Python dahil herhangi bir HTTP istemcisi kullanabilirsiniz. wait=60 yanıtı en fazla 60 saniye bekletir. Alanlar ve durum kodları için API referansına göz atın.
API anahtarını panelden oluşturun; sunucunuzda veya scriptinizde kullanın. Dönen transkripsiyon ID değerini hemen kaydedin. Bekleme süresi dolduğunda işlem durmaz: GET /v1/transcriptions/:id ile devamını kontrol edin, yeni bir transkripsiyon başlatmayın.
Uygulamanız queued, fetching ve transcribing durumlarını tamamlanmış metin gibi göstermemeli. completed geldiğinde transkripti açın, failed geldiğinde hatayı ele alın. Bağlantı gecikti diye kullanıcıya boş bir metni başarıyla tamamlanmış gibi sunmayın.
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"}'transcript_source hangi kaynağı kullandığınızı gösterir
Yanıtta metnin altyazıdan gelip gelmediği ve altyazıyı kimin oluşturduğu yer alır. billed_minutes, video süresinin yukarı yuvarlanmış halidir. Tüm alanları transkripsiyon nesnesinde bulabilirsiniz.
Kaynağı takip etmeniz gerekiyorsa transcript_source ve caption_kind alanlarını saklayın. İçerik üreticisinin altyazısında kelime zamanları yoktur. Otomatik YouTube altyazılarında kelimelerin başlangıcı; yapay zeka transkripsiyonunda başlangıcı, bitişi ve güven puanı bulunur.
Bölümlerin başlangıç ve bitiş saniyeleriyle metni oynatıcıya bağlayabilir, nottan kayda dönebilirsiniz. Kelime verisine de ihtiyacınız varsa JSON okurken include=words ekleyin. Aşağıdaki JSON yalnızca yapıyı gösterir; örnek videodan yapılmış bir alıntı değildir.
{
"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." }
]
}
}YouTube altyazısı mı, sesten yeni bir transkript mi?
Varsayılan source=auto önce altyazıya bakar. captions (yalnızca altyazı) seçerseniz kullanılabilir altyazı olmadığında no_captions alırsınız ve ücret ödemezsiniz. stt her zaman sesi yazıya çevirir. Seçenekleri kaynak rehberinde karşılaştırın.
Yayımlanmış altyazının kendisine ihtiyacınız varsa captions seçin. Konuşmacı ayırma veya sesten yeni bir metin istiyorsanız stt kullanın. auto ile diarize=true birlikte kullanıldığında altyazılar atlanır. captions ile konuşmacı ayırma birlikte gönderilirse request reddedilir; hiçbir seçenek sessizce yok sayılmaz.
Altyazının dili, istediğiniz dille eşleşmelidir. Dil auto ise videonun özgün dili esas alınır. Otomatik çevrilmiş altyazılar kullanılmaz. Sesten transkripsiyon için dil belirtmek de metni o dile çevirmez.
{
"platform": "youtube",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"source": "stt"
}Tekrar göndermeden önce hatayı kontrol edin
Gizli video, yaş kısıtlaması veya devam eden canlı yayın için aynı bağlantıyı tekrar göndermek işe yaramaz. captions modunda no_captions aldıysanız sesten transkripsiyonun işinize uyup uymadığına karar verin. İşlem sürüyorsa ID ile kontrol edin. Hata rehberi doğru adımı seçmenize yardımcı olur.
Bağlantı sorunu nedeniyle oluşturma requestini tekrarlıyorsanız Idempotency-Key kurallarını izleyin. Önceki transkripsiyonu yeniden kullanmak ayrı bir seçenektir; video ve ayarlar eşleşmelidir. Önbellekten gelen metin yeni bir işlem olarak ücretlendirilebilir. Mevcut, tamamlanmış transkripti tekrar okumak ise dakika harcamaz.
Aynı endpoint TikTok, Instagram ve diğer desteklenen bağlantıları da kabul eder. YouTube gibi X, TikTok ve Bluesky için de auto önce altyazıya bakabilir. Her platformun seçenekleri aynı değildir; arayüzünüzü kaynak tablosuna göre hazırlayın.