YouTube transcript API ile altyazısı olmayan videoları da yazıya çevirin

YouTube transcript API ile uygulamanıza videonun bağlantısını verin, JSON, metin, SRT veya VTT alın. Kullanılabilir altyazı varsa onu alırız. Yoksa yapay zeka sesi yazıya çevirir.

  • Önce YouTube altyazıları, gerekirse yapay zeka
  • Her iki yöntemde de dakika başına 1 kredi
  • watch, youtu.be, Shorts ve embed bağlantıları

Uygulamanız hangi metne ihtiyaç duyuyor?

Bağlantıyı dönüştürmeniz gerekmez
watch, youtu.be, Shorts, embed ve live bağlantıları aynı videoya ulaşır. Adreste www olması ya da olmaması fark etmez. Aktif canlı yayınları işleyemeyiz.
Varsa içerik üreticisinin altyazısını alın
source=auto önce içerik üreticisinin yüklediği altyazıları seçer. Ardından otomatik oluşturulan altyazılara bakar. Otomatik çevrilmiş altyazıları kullanmaz.
Altyazı yoksa ses kaydı devreye girer
Kullanılabilir altyazı bulamazsak sesi yazıya çeviririz. Her zaman ses üzerinden çalışmak istiyorsanız source=stt seçin.
Metnin kaynağını bilin
transcript_source alanında youtube_captions veya speech_to_text görürsünüz. Böylece aldığınız metnin altyazıdan mı, sesten mi geldiği belli olur.
Altyazı ve yapay zeka için aynı ücret
Her ses dakikası 1 kredidir; süreyi yukarı yuvarlarız. Transkripsiyon başarısız olursa ya da iptal ederseniz kredi harcamazsınız.

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
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.

Kısaltılmış JSON yanıtı
{
  "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.

Sesi yazıya çevirmek için request gövdesi
{
  "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.

60 ücretsiz dakikanızla başlayın

E-postanızı doğrulayın, tek seferlik 60 ücretsiz dakikanızı alın. Kart bilgisi istemiyoruz.

API anahtarı alın

Sık sorulan sorular

Başka bir sorunuz mu var? Bize yazın

Videoda altyazı yoksa yine de metin alabilir miyim?

Evet. Varsayılan source=auto, kullanılabilir altyazı yoksa sesi yapay zeka ile yazıya çevirir. Altyazısız videolarda işlemin durmasını istiyorsanız source=captions seçin.

Hangi YouTube bağlantıları çalışır?

watch, youtu.be, Shorts, embed ve live bağlantıları kabul edilir. Kanal sayfaları ve yalnızca oynatma listesine giden bağlantılar 422 invalid_url döndürür. live bağlantısı kabul edilse de aktif canlı yayın işlenemez.

Gizli videoları da yazıya çevirebilir miyim?

Hayır. Herkese açık ve liste dışı videoları alabiliriz. Gizli, yaş kısıtlamalı veya halen canlı yayınlanan videolar işlenemez. Dosya size aitse doğrudan yükleyebilirsiniz.

Ne kadar kredi harcarım?

Altyazıdan da alsanız yapay zeka da kullansanız her ses dakikası 1 kredidir; süre yukarı yuvarlanır. Yeni hesabınızda e-postanızı doğrulayınca bir defaya mahsus 60 ücretsiz dakika alırsınız. Kart gerekmez.

Bu, youtube-transcript-api adlı Python paketi mi?

Hayır. transcript1, sunucuda çalışan bir REST API sunar. Python içinden API anahtarınızla HTTP requesti göndererek kullanırsınız; aynı adlı Python paketi değildir.