8 puan yazan GN⁺ 1 일 전 | 2 yorum | WhatsApp'ta paylaş
  • 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

 
xguru 1 일 전

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?

 
GN⁺ 1 일 전
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

    • Şaşırtıcı derecede akıcı ve hafif, neredeyse anında tepki veriyor ve geri gitme de düzgün çalışıyor. Altyazı açılır penceresi bazı ekran öğeleriyle çakışıyor ama sıradan bir masaüstünde bile analog NTSC döneminde kanal gezer gibi kanal geçişi hızlı
      Diğer TV servislerinin yapıp bunun yapmadığı şeyin ne olduğunu merak ediyorum
    • Özellikle Japon kanallarına bakınca https://tv.garden/ tarafında daha fazla kanal var gibi görünüyor
    • Mobilde de çok hızlı yükleniyor ve dünyanın dört bir yanından kanallar izlenebiliyor, ayrı bir yazıyla tanıtılmayı hak ediyor
    • Jellyfin eklentisi olarak çıkması güzel olurdu
    • Şimdiye kadar gördüğüm IPTV siteleri arasında en derli toplu olanı gibi duruyor
  • 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

    • Claude'dan yardım aldığı doğru, ayrıca DLNA ya da FFMPEG uzmanı da değilim ama önemli olan benim yaşadığım sorunu çözmüş olması. Başkalarının sorununu da çözerse daha da iyi
    • Derleyicinin de Google vb. kütüphaneler kullanarak yaptığı söylenebilir. Claude dağıtılabilir makine kodunu doğrudan üretmeye başlayana kadar, insan niyetiyle nihai çıktı arasındaki bir başka ara katman sadece
  • 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

    • Turnstile, site sahiplerine belirsiz bir güvenlik hissi satan, JavaScript'i kapatan Tor kullanıcılarını engelleyen ve tüm trafiğin bir kopyasını Cloudflare'a vermeye teşvik eden bir araca daha yakın
      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
    • Uygun olaylar taklit edilirse, platform tespiti olmadan headless tarayıcıyla gerçek tarayıcıyı ayırmak zor. Ama Linux'un yazılım renderer'ını bulmak zor değil; bu tür bypass'lar sürerse Linux kullanıcılarına bir veya daha fazla ek doğrulama dayatmaları mümkün
      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
    • Sadece onay kutusuna tıklamayı taklit etmiyor, çeşitli tarayıcı özelliklerini de sahte gösteriyor. Sıradan bir headless tarayıcıysa tespit edilme ihtimali yüksek
    • Milyonlarca dolarlık savunma sistemleri olsa da insanlar yıllardır titreşen bir fana çevre birimlerini bantlayarak WoW otomasyonu yapıyor. Headless tarayıcı otomasyonu da FPS hileleri gibi; inisiyatif saldıran tarafta ve yeterince zamanla para harcanırsa sonunda kazanabilirler
    • Arka planda yapılan diğer tüm kontrolleri de geçen bir tarayıcı yapılabiliyorsa, en sonda geriye kalan şey onay işaretine tıklamak olur
  • 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

    • Yapısının, belirlenen kaynaklarda filmi arayıp yoksa “bulunamadı” döndürdüğünü sanmıştım. Stremio da yasal bir uygulama ama yasa dışı Torrentio eklentisi eklenince medyayı otomatik korsanlayabiliyor; bu yüzden çekirdek geliştirme açıkça yapılabiliyor
      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
    • Arayüz https://www.themoviedb.org/ üzerindeki şu anda popüler filmleri gösteriyor
    • İlk bakışta zaten erişilebilen web sitelerindeki videoları dizüstünden TV'ye aktaran bir araç gibi görünüyordu. Ama AI üretimi gibi duran “rastgele web siteleri” açıklaması ve TVDB API anahtarı seçeneği yüzünden gerçek odak noktasının ne olduğu karışıyor
    • Gerçek filmi değil, sadece fragmanı oynatıyor da olabilir
  • 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

    • Film seçince streaming sitelerinde eşleşen videoyu bulup transcode eden, altyazıyı gerçek zamanlı bindiren ve sonra TV'ye oynatma komutu veren bir komut satırı aracı
    • Zaten erişebildiğiniz akışları oynatıyor ve şifreleme de kırmıyor; bu yüzden bunun korsanlığa nasıl yardımcı olduğu net değil
    • Web sitesi veya servislerden stream edilen videoları çıkarıp TV'ye gönderen alternatif bir aktarım yöntemi
    • Mevcut büyük servisler zaten ekran aktarımını destekliyor; o yüzden asıl kullanımın sonunda yasa dışı spor akışları gibi şeyler olup olmadığını merak ediyorum
  • Torrent kullanmakla zahmeti benzer, o yüzden neden kullanayım bilmiyorum

  • macOS'taki Docker sürümünde TV bulunamayabilir

    • macOS'ta Docker için gereken sanal makine üzerinden UPnP kullanmak için ilgili ağı dışarıya açacak şekilde yapılandırmak gerekebilir
  • “Rastgele fingerprint ve stealth script'lerle otomasyonu gizleyen bir headless Chrome çalıştırır” kısmında güvenimi kaybettim

    • Tarayıcı fingerprinting alanında çalışıyorum; depoya bakınca yalnızca 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