Go Concurrent Streamlink Orchestrator
HLS yayınlarını otomatize etmek için goroutine'ler ve Context API kullanarak çoklu proxy destekli Streamlink alt süreçlerini yöneten yüksek eşzamanlılıklı Go orkestratörü.
Teknoloji yığını
- Diller
- Çatılar & kütüphaneler
Performans & metrikler
- Ham HLS akışlarını doğrudan donanım hızlandırmalı
mpvörneklerine yönlendirerek devasa tarayıcı (browser) işlem yükünü ortadan kaldırır - Context'e bağlı yürütme (execution), aktif olan tüm alt süreçlere anında $O(1)$ kapanma sinyali göndererek bellek sızıntılarını (memory leak) önler
Neden geliştirdim?
Twitch ve Kick gibi platformlarda eşzamanlı izleme oturumları (viewing sessions) oluşturmak; proxy yönetimini, alt süreç (subprocess) kontrolünü ve ciddi bellek kısıtlamalarını yönetmeyi gerektirir. Puppeteer gibi hantal tarayıcı otomasyonları kullanmak yerine bu native Go aracını geliştirdim. Temel amaç,streamlinkvempvörneklerinin yaşam döngüsünü, proxy rotasyonunu ve dinamik pencere yönetimini minimum sistem yüküyle (overhead) otonom hale getirmektir.
Mimari & kararlar
Sistem, Go'nun eşzamanlılık (concurrency) yapıtaşları (goroutines ve sync.WaitGroup) üzerine inşa edilmiştir. Orkestratör, exec.CommandContext üzerinden streamlink alt süreçlerini başlatan worker'lar dağıtır. İşlem yaşam döngüleri ve güvenli kapanma (graceful teardown - SIGTERM/SIGINT yakalama) mekanizmaları Go'nun context ağacı ile yönetilir, bu da zombi process oluşumunu kesin olarak engeller. Motor, mpv pencereleri için dinamik X/Y uzamsal geometrisi hesaplar ve node başına RAM tüketimini minimize etmek için önbelleksiz (cacheless), düşük gecikmeli oynatma profillerini zorunlu kılar.
Temel özellikler
- 01Context farkındalığına sahip, alt süreçleri güvenle senkronize eden ve sonlandıran goroutine tabanlı worker havuzu
- 02Doğrudan Streamlink parametrelerine enjekte edilen otonom proxy rotasyonu (SOCKS5/HTTP)
- 03
mpvpencerelerinin ekranda çakışmasını önleyen matematiksel uzamsal geometri hesaplaması - 04Uygulama sonlandığında tüm child process'leri temiz bir şekilde kapatan kararlı OS sinyal (interrupt) yönetimi