Bunu Neden İnşa Ettim?
"Kişisel veri arşivleme süreçlerinde X ve YouTube medyalarını indirmek için sürekli üçüncü parti, reklam dolu veya rate-limit uygulayan servislere bel bağlamak mühendislik açısından verimsizdi. Doğrudan Telegram üzerinden CLI araçlarını (yt-dlp, ffmpeg) asenkron alt süreçler (subprocesses) olarak orkestre eden, yetkisiz erişimleri engelleyen izole ve otonom bir bot mimarisi kurmak istedim."
Mimari & Kararlar
Çekirdek uygulama, teloxide framework'ü ve tokio asenkron runtime'ı üzerinde çalışır. Ağ I/O'su ve mesaj dinleme asenkron olarak yönetilirken, video indirme işlemi tokio::process::Command kullanılarak yt-dlp alt süreçlerine devredilir. İndirme süreci boyunca alt sürecin standart çıktısı (stdout) Regex ile anlık parse edilerek Telegram UI üzerinde dinamik bir ilerleme çubuğuna (progress bar) dönüştürülür. Dosya boyut sınırları aşıldığında, ffmpeg devreye girerek medyayı libx264 ve aac kodekleriyle donanım/yazılım tabanlı sıkıştırır (-movflags +faststart). Uygulama durumu (state), Arc<RwLock> ile thread-safe olarak bellekte tutulur ve diskte oluşabilecek bozulmaları (corruption) önlemek için atomik dosya işlemleri (rename syscall) ile diske yazılır.
Temel Özellikler
- 01.yt-dlp stdout verisini Regex ile çözümleyerek asenkron, gerçek zamanlı (real-time) Telegram ilerleme bildirimleri
- 02.Boyut limiti aşıldığında otonom olarak tetiklenen FFmpeg H.264/AAC downsampling ve kompresyon hattı
- 03.TELEGRAM_API_URL desteği ile 50MB sınırını aşan Local Telegram Server entegrasyonu
- 04.Disk corruption'ı kökünden engelleyen, geçici dosya (tmp) tabanlı asenkron atomik I/O algoritması
- 05.Basit ve katı RwLock tabanlı In-Memory kullanıcı yetkilendirme ve denetim (audit log) sistemi