İçeriğe geç
Tüm projeler
Bot & OtomasyonAçık kaynak

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ç, streamlink ve mpv ö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

  1. 01Context farkındalığına sahip, alt süreçleri güvenle senkronize eden ve sonlandıran goroutine tabanlı worker havuzu
  2. 02Doğrudan Streamlink parametrelerine enjekte edilen otonom proxy rotasyonu (SOCKS5/HTTP)
  3. 03mpv pencerelerinin ekranda çakışmasını önleyen matematiksel uzamsal geometri hesaplaması
  4. 04Uygulama sonlandığında tüm child process'leri temiz bir şekilde kapatan kararlı OS sinyal (interrupt) yönetimi