- Castor, web sayfalarından veya doğrudan akış URL’lerinden gerçek video akışını bulan, TV’ye uygun biçime dönüştüren ve ekran yansıtma olmadan özgün kalitede gerçek zamanlı ileten bir terminal aracıdır
- Headless Chrome ve Chrome DevTools Protocol ile ağ trafiğini gözlemler; sayfaya tıklama, en büyük iframe’e girme ve yeniden tıklama adımlarıyla akışı çıkarır, ancak otomatik oynatmaya izin vermeyen sayfalarda çalışmayabilir
- DLNA/UPnP destekleyen akıllı TV’lerde ve Kodi, VLC, Plex’te kullanılabilir; Chromecast desteği uygulanmış olsa da hâlâ deneyseldir ve test edilmemiştir
- Oynatılabilir H.264 videoları yeniden kodlamadan iletir; gerekirse donanım kodlayıcı veya
libx264 ile dönüştürür ve whisper ile oluşturulan altyazıları videoya gömebilir
- Video, katalog veya kaynak sağlamaz; DRM’i aşmaz ve kullanıcının doğrudan belirlediği, kullanım hakkına sahip olduğu sayfalar ile akışları iletmek üzere tasarlanmıştır
Web videolarını gerçek akış olarak iletme
- Castor, rastgele web videolarını doğrudan iletemeyen akıllı TV’ler ile gecikme ve çözünürlük kaybı olan ekran yansıtmanın yerine, gerçek video akışını tam kaliteyle iletir
- Bir web sayfası veya doğrudan akış URL’si girildiğinde videoyu keşfeder, akışı çıkarır, ardından TV’ye uygun şekilde transcode edip gerçek zamanlı iletir
- Kullanıcının yapılandırdığı kaynaklarda IMDB/TMDB ID arayabilir veya otomatik oluşturulan altyazıları videoya gömebilir
castor cast çalıştırıldığında terminal tabanlı etkileşimli tarayıcıda içerikler keşfedilip iletilebilir
Akış çıkarma yöntemi ve sınırları
- Headless Chrome çalıştırır ve Chrome DevTools Protocol ile ağ trafiğini gözlemleyerek akışı bulur
- Oynatmayı başlatmak için kısa bir eylem hattı uygular
- Sayfaya tıklama
- En büyük iframe’e geçme
- Alternatif eylem olarak yeniden tıklama
- Otomatik oynatmaya izin veren sayfalarda çalışır; tüm siteleri desteklemez
Kurulum ve çalıştırma gereksinimleri
- Önerilen yöntem, TV ile aynı ağda çalışan yerel binary kullanmaktır
- Çalışma ortamının
PATH’inde şu araçların bulunması gerekir
- Chrome veya Chromium: headless akış çıkarma
ffmpeg: transcoding
ffprobe: medya biçimi algılama
- macOS’te Homebrew ile kurulabilir
brew install --cask stupside/tap/castor
- Kaynaktan derlemek için Go 1.26+ ve CMake gerekir
- whisper.cpp binding’leri cgo kullanır ve yerelde derlenen
libwhisper.a ile bağlanır
- Yerel
replace ve önceden derlenmiş statik kütüphane gerektiğinden go install çalışmaz
git clone --recurse-submodules https://github.com/stupside/castor.git
cd castor
make
Temel kullanım akışı
castor scan ile TV adını bulun ve config.yaml içindeki device bölümünde tam adı ve cihaz türünü belirtin
device:
name: "Living Room TV"
type: dlna
- Web sayfası veya doğrudan akış URL’si
cast player ile iletilir
castor cast player https://example.com/watch/some-video
- Etkileşimli içerik araması için TMDB API anahtarı ve kullanıcının yapılandırdığı kaynaklar gerekir; tüm komutlar ve flag’ler
castor --help ile görülebilir
Yapılandırma ve kullanıcı tarafından sağlanan kaynaklar
config.yaml, mevcut dizinden veya --config ile belirtilen yoldan okunur; zorunlu olan tek öğe iletim hedefi olan cihaz ayarıdır
- Zaman aşımı, keşif, yakalama, transcoding, ağ arayüzü ve Chrome gezinmesi için varsayılan değerler sağlanır
- Gizli değerler, Git’e dahil edilmeyen
config.local.yaml ile üzerine yazılabilir veya CASTOR_SECTION__FIELD biçimindeki ortam değişkenleriyle belirtilebilir
cast movie, cast episode ve etkileşimli tarayıcı, kullanıcı tarafından yapılandırılan kaynaklara içerik ID’sini yerleştirir
- Castor’un kendisi kaynak, katalog veya arama işlevi içermez
- Kullanıcının yazdığı
templates içine ID’leri yerleştirir, her bir proxies değerini başa ekleyerek sayfayı açar ve akışı cast player ile aynı şekilde çıkarır
- Birden çok proxy belirtilen sırayla denenir
sources:
- proxies: ["https://your-source.example"]
templates:
movie: "/embed/movie/{itemID}"
episode: "/embed/tv/{itemID}/{season}-{episode}"
TMDB araması ve otomatik altyazı
- Etkileşimli tarayıcı, içerik araması için TMDB API anahtarı kullanır
- Anahtar themoviedb.org adresinden alınabilir
cast movie <id> gibi doğrudan komutlar için TMDB anahtarı gerekmez
- Otomatik altyazı, whisper ile sesi metne döküp videoya gömer ve varsayılan olarak devre dışıdır
- Varsayılan dil İngilizcedir
- Varsayılan model yaklaşık 75 MB boyutundaki
ggml-tiny.en modelidir ve otomatik indirilir
Desteklenen cihazlar
- DLNA/UPnP
MediaRenderer:1 profilini uygulayan TV’leri destekler
- Samsung test edilmiştir; LG, Sony Bravia, Panasonic Viera, Philips, Hisense, TCL, VIZIO ve Sharp destek kapsamındadır
- Kodi, VLC, Plex gibi ağ oynatıcıları da kullanılabilir
- Aynı ağdaki cihazları görmek için
castor scan kullanılır
- Chromecast desteği uygulanmış olsa da deneyseldir ve test edilmemiştir
Docker kısıtları ve ağ yapılandırması
- Yalnızca Linux’a yönelik Docker imajı Chrome,
ffmpeg ve ffprobe ile birlikte gelir
- Docker’da TV ile aynı LAN’da bulunan bir Linux host gerekir; SSDP multicast keşfi ve Castor oynatma sunucusu bağlantısı için
--network host kullanılmalıdır
- Docker Desktop’ın macOS ve Windows sürümlerinde
--network host LAN’a bağlanmaz
- Konteyner Docker Desktop içindeki VM alt ağına yerleştirildiğinden
scan cihaz bulamaz ve iletim de başarısız olur
- macOS ve Windows’ta yerel binary kullanılmalı veya bir Linux VM LAN’a bridge edilmelidir
- Ayarları sağlamak için
/config.yaml mount edilebilir ve otomatik indirilen whisper modeli volume içinde korunabilir
latest yerine release etiketi kullanmak sürümü sabitlemeyi sağlar
Medya passthrough ve kodlama
- TV’nin izin verdiği profil ve seviyedeki H.264 videolar zaten oynatılabiliyorsa CPU kullanımını neredeyse 0’a indirmek için akış kopyalama kullanılır
- TV codec’i reddederse veya altyazı gömülmesi gerekiyorsa yeniden kodlama yapılır
- Linux’ta VA-API veya yerel macOS binary’sindeki VideoToolbox gibi gerçekten çalışan donanımsal H.264 kodlayıcılar öncelikli seçilir
- Kullanılamazsa yazılımsal
libx264 alternatif olarak kullanılır
- Docker konteynerinde Intel GPU’nun VA-API’sini kullanmak için
--device /dev/dri gerekir; yalnızca --network host GPU’yu görünür yapmaz
Kullanım amacı ve sınırlamalar
- Castor belirli bir siteye bağlı bir servis değil, genel amaçlı bir iletim aracıdır
- Video, katalog veya kaynakları host etmez ya da paketle birlikte sunmaz; yalnızca kullanıcının belirlediği ve kullanım hakkına sahip olduğu sayfaları, akışları ve kaynakları işler
- DRM’i çözmez veya aşmaz; DRM korumalı servisler iletilemez
- Site kullanım şartlarına ve yerel yasalara uyma sorumluluğu kullanıcıya aittir; yasal kişisel ve eğitim amaçlı kullanım için olduğu gibi sağlanır
2 yorum
Vay, aşağıdaki yorumdaki https://tvexplorer.live/channel/EBS1TV.kr.SD/country/KR bağlantısı çok kullanışlıymış. haha
Kore’de engelli gibi görünüyor; acaba yurt dışından doğrudan izlenebiliyor mu?
Hacker News yorumları
Ayrı bir bypass olmadan, kanalların yayınladığı HLS akışlarını tarayıcıda doğrudan oynatan TV Explorer yapılmış. 10 binden fazla ücretsiz kanal içeren herkese açık GitHub listesini kullanıyor
https://tvexplorer.live
Diğer TV servislerinin yapıp bunun yapmadığı şeyin ne olduğunu merak ediyorum
Botun her seferinde yeni profilli bir headless tarayıcı başlatmak zorunda kalması saçma. Cloudflare botları engelleyemezken iki tarafın da kaynaklarını boşa harcatıyor ve erişim kayıtlarıyla parolaları NSA'e teslim etmiş oluyor; eski internete dönmek istiyorum
Açıklama “Chromecast ya da AirPlay olmadığı için dizüstündeki web videosunu TV'ye aktaramadığımdan yaptım” diyor ama Claude yapmış gibi görünüyor
Turnstile'ın özünün headless tarayıcıları tespit edip bypass etmeyi zorlaştırmak olduğunu sanıyordum; sadece onay işaretine tıklamayı taklit ederek gerçekten geçilebilip geçilemeyeceğini merak ediyorum
Gerçek güvenlikten çok, Cloudflare'ın insan-bot ayrımı yapmadan saydığı engellenen kullanıcı sayısını pazarlamada kullanabildiği sahte güvenlik daha önemli görünüyor
Onay kutusu bunun sadece bir parçası; ondan önce tarayıcının tüm davranışlarını ve olaylara tepkisini izleyip bot olma olasılığına göre ek doğrulama gerekip gerekmediğine karar veriyorlar
Korsan araçlar normalde en azından makul bir inkâr payı bırakır ama burada bu hafta sonu vizyona girecek 250 milyon dolarlık büyük bütçeli filmi bile stream etmeye yardımcı olduğunu öne sürüyor
Emülatör Azahar ile oyunları otomatik çözen yasa dışı fork'u Azahar Plus da benzer ama tekrar bakınca bu proje yasa dışı streaming sitelerini yerleşik olarak içeriyor
15 yıldan eski sıradan bir Samsung TV'de anında çalıştı. https://vsembed.ru/movies/latest/page-1.json gibi tüm JSON sayfalarını ayrıştıracak özel arama işlevi yazmanın en iyi yol olup olmadığını merak ediyorum
Açıklamada bağlam eksik; ne için kullanılan bir araç olduğu ve korsanlık amaçlı olup olmadığı anlaşılmıyor
Torrent kullanmakla zahmeti benzer, o yüzden neden kullanayım bilmiyorum
macOS'taki Docker sürümünde TV bulunamayabilir
“Rastgele fingerprint ve stealth script'lerle otomasyonu gizleyen bir headless Chrome çalıştırır” kısmında güvenimi kaybettim
navigator, Audio API ve Canvas API'yi değiştirdiği görülüyor. Çok temel bir seviye, bu yüzden kolayca tespit edilme ihtimali yüksek