1 line
26 KiB
Markdown
1 line
26 KiB
Markdown
|
|
YouTube Video Transkriptlerini Otomatik RSS Akışına Dönüştürme Geliştirme PlanıI. Mimari ve Operasyonel PlanBu rapor, YouTube video transkriptlerini otomatik olarak çıkarıp tam metin RSS akışına dönüştürecek boru hattının (pipeline) mimarisini, teknoloji seçimlerini ve operasyonel akışını detaylandırmaktadır. Sistemin temel amacı, API kısıtlamalarına karşı dayanıklı, durum yönetimli ve sunucusuz (serverless) bir ortamda sürekli çalışabilen bir çözüm sunmaktır.1.0 Sistem Mimarisine Genel Bakış: Otomatik Boru Hattı AkışıÖnerilen sistem, GitHub Actions zamanlayıcısı (cron trigger) aracılığıyla düzenli aralıklarla (örneğin, saatlik) çalışacak şekilde tasarlanmıştır. Bu periyodik çalışma, aşağıdaki yedi adımdan oluşan bir akışı takip edecektir:Girdi Alımı: İzlenmesi gereken hedef kanallar tespit edilir ve bu kanalların en son videolarının listesi çekilir. Bu aşama, sağlam Kanal Kimliği (Channel ID) çözümlemesini zorunlu kılar.Durum Kontrolü (Veritabanı): SQLite kalıcılık katmanı sorgulanarak henüz işlenmemiş (transcript_status = 0) veya güncelleme gerektiren videoların kimlikleri belirlenir. Bu, her çalıştırmada sadece yeni veya başarısız içerikle ilgilenilmesini sağlar.Çıkarma (Eş Zamansız): Python API istemcisi, API hız limitlerine uyum sağlamak için yönetilen eş zamansız toplu işleme (asynchronous batching) kullanılarak transkriptleri talep eder.NLP İşlemi: Ham transkript metni temizlenir ve okunaklı, paragraflara ayrılmış içerik oluşturmak için Cümle Sınırı Tespiti (SBD) uygulanır.Kalıcılık Güncellemesi: Geliştirilmiş transkript metni depolanır ve veritabanındaki meta veriler (processed_at_utc, transcript_status) güncellenir.RSS Üretimi: Veritabanından en son işlenmiş videolar sorgulanır, sonuçlar RSS 2.0 yapısına uygun olarak biçimlendirilir ve XML dosyası yazılır.Dağıtım: Güncellenmiş SQLite veritabanı (önbellekleme yoluyla) kaydedilir ve yeni RSS XML dosyası (Yapıt/Artifact veya doğrudan Git taahhüdü yoluyla) barındırma konumuna dağıtılır.1.1 Teknoloji Yığınının GerekçesiTeknoloji yığını, stabilite, performans ve CI/CD ortamında kolay dağıtım ilkeleri göz önünde bulundurularak seçilmiştir.Python (3.10+): Kapsamlı Doğal Dil İşleme (NLP) ekosistemi (SpaCy) 1 ve olgun eş zamansız ağ yetenekleri (asyncio, httpx) nedeniyle tercih edilmiştir. Python, boru hattının çekirdeğini oluşturacak yüksek hızlı veri işleme ve API yönetimini kolaylaştırır.youtube-transcript-api: Bu kütüphane, diğer Selenium tabanlı çözümlerin aksine, transkriptleri alırken sanal tarayıcı (headless browser) gerektirmez.3 Bu özellik, CI/CD ortamında dağıtımı ve bakımı radikal bir şekilde basitleştirir.SQLite: Sunucusuz, dosya tabanlı kalıcılık için idealdir. İşlemsel bütünlüğü destekler ve özel bir veritabanı altyapısı gerektirmez.4 GitHub Actions ortamında, veritabanı dosyasının önbelleğe alınması veya Git ile sürümlemesi basit ve verimli bir durum yönetimi sağlar.SpaCy: Kritik NLP görevleri (özellikle SBD ve metin segmentasyonu) için hızlı ve üretime hazır bir kütüphanedir.2lxml / feedgen: RSS/XML çıktısının standartlara tam olarak uygunluğunu sağlamak, karmaşık varlık kaçışını (entity escaping) ve ad alanlarını (namespaces) doğru yönetmek için gerekli olan sağlam kütüphanelerdir.6Eş Zamansız Hız Sınırlaması GerekliliğiAraştırma, API'nin katı hız sınırlarına sahip olduğunu göstermektedir (örneğin, 10 saniyede 5 istek 8). Geleneksel yaklaşımlarda kullanılan, toplu işlemler arasında uzun aralıklarla sıralı time.sleep() döngüsü 9 yüzlerce videoyu işlerken kabul edilemez derecede verimsizdir.Bu darboğazı aşmak için, boru hattının yönetilen eş zamansız bir kuyruk kullanması gerekmektedir. AIOLimiter 10 gibi bir araç, boru hattının API'ye eş zamanlı olarak transkript taleplerini göndermesine olanak tanır. Bu mimari,
|