- Castor adalah alat terminal yang menemukan aliran video asli dari halaman web atau URL stream langsung, mengubahnya agar cocok untuk TV, lalu mengirimkannya secara real-time dengan kualitas asli tanpa screen mirroring
- Dengan Chrome headless dan Chrome DevTools Protocol, Castor memantau lalu lintas jaringan untuk mengekstrak stream melalui klik halaman, masuk ke iframe terbesar, lalu klik ulang, tetapi mungkin tidak berfungsi pada halaman yang tidak mengizinkan autoplay
- Dapat digunakan pada smart TV yang mendukung DLNA/UPnP serta Kodi, VLC, dan Plex; dukungan Chromecast sudah diimplementasikan tetapi masih eksperimental dan belum diuji
- Video H.264 yang dapat diputar akan diteruskan tanpa re-encode; bila perlu, Castor mengubahnya dengan encoder perangkat keras atau
libx264, dan juga dapat menyisipkan subtitle yang dibuat dengan whisper ke dalam video
- Castor tidak menyediakan video, katalog, atau sumber, dan tidak melewati DRM; alat ini dirancang agar hanya mengirim halaman dan stream yang ditentukan langsung oleh pengguna dan memang berhak mereka gunakan
Mengirim video web sebagai stream asli
- Castor mengirim stream video asli dengan kualitas penuh sebagai pengganti smart TV yang tidak bisa langsung memutar video web sembarang, serta sebagai alternatif screen mirroring yang memiliki latensi dan penurunan resolusi
- Jika Anda memasukkan halaman web atau URL stream langsung, Castor akan menelusuri video, mengekstrak stream, lalu melakukan transcoding agar cocok untuk TV dan mengirimkannya secara real-time
- Dapat mencari ID IMDB/TMDB dari sumber yang dikonfigurasi pengguna atau menyisipkan subtitle yang dibuat otomatis ke dalam video
- Menjalankan
castor cast akan membuka browser interaktif berbasis terminal untuk menelusuri karya dan mengirimkannya
Cara ekstraksi stream dan keterbatasannya
- Menjalankan Chrome headless dan memantau lalu lintas jaringan dengan Chrome DevTools Protocol untuk menemukan stream
- Menjalankan pipeline tindakan singkat untuk memulai pemutaran
- klik halaman
- pindah ke iframe terbesar
- klik lagi sebagai tindakan cadangan
- Berfungsi pada halaman yang mengizinkan autoplay, dan tidak mendukung semua situs
Instalasi dan syarat menjalankan
- Cara yang direkomendasikan adalah binary native yang dijalankan pada jaringan yang sama dengan TV
- Lingkungan eksekusi membutuhkan alat berikut di
PATH
- Chrome atau Chromium: ekstraksi stream headless
ffmpeg: transcoding
ffprobe: deteksi format media
- Di macOS dapat diinstal dengan Homebrew
brew install --cask stupside/tap/castor
- Build dari source memerlukan Go 1.26+ dan CMake
- Binding whisper.cpp menggunakan cgo dan terhubung ke
libwhisper.a yang dibangun secara lokal
- Karena memerlukan
replace lokal dan static library prabuild, go install tidak akan berfungsi
git clone --recurse-submodules https://github.com/stupside/castor.git
cd castor
make
Alur penggunaan dasar
- Gunakan
castor scan untuk menemukan nama TV lalu tetapkan nama yang tepat dan jenis perangkat di device dalam config.yaml
device:
name: "Living Room TV"
type: dlna
- Halaman web atau URL stream langsung dikirim dengan
cast player
castor cast player https://example.com/watch/some-video
- Pencarian karya interaktif memerlukan TMDB API key dan sumber yang dikonfigurasi pengguna; perintah dan flag lengkap dapat dilihat di
castor --help
Konfigurasi dan sumber yang disediakan pengguna
config.yaml dibaca dari direktori saat ini atau dari path yang ditentukan dengan --config, dan satu-satunya item wajib adalah konfigurasi perangkat tujuan pengiriman
- Nilai bawaan disediakan untuk batas waktu, penelusuran, pengambilan, transcoding, antarmuka jaringan, dan penelusuran Chrome
- Nilai rahasia dapat ditimpa dengan
config.local.yaml yang dikecualikan dari Git atau ditetapkan lewat environment variable dalam format CASTOR_SECTION__FIELD
cast movie, cast episode, dan browser interaktif memasukkan ID karya ke sumber yang dikonfigurasi pengguna
- Castor sendiri tidak menyertakan sumber, katalog, atau fungsi pencarian
- Castor memasukkan ID ke
templates buatan pengguna, menambahkan setiap proxies di depannya untuk membuka halaman, lalu mengekstrak stream dengan cara yang sama seperti cast player
- Beberapa proxy dicoba sesuai urutan yang ditentukan
sources:
- proxies: ["https://your-source.example"]
templates:
movie: "/embed/movie/{itemID}"
episode: "/embed/tv/{itemID}/{season}-{episode}"
Pencarian TMDB dan subtitle otomatis
- Browser interaktif menggunakan TMDB API key untuk pencarian karya
- Kunci dapat diperoleh di themoviedb.org
- Perintah langsung seperti
cast movie <id> tidak memerlukan kunci TMDB
- Subtitle otomatis mentranskripsikan audio dengan whisper lalu menyisipkannya ke dalam video, dan secara bawaan dinonaktifkan
- Bahasa bawaan adalah Inggris
- Model bawaan adalah
ggml-tiny.en berukuran sekitar 75MB dan akan diunduh otomatis
Perangkat yang didukung
- Mendukung TV yang mengimplementasikan profil DLNA/UPnP
MediaRenderer:1
- Samsung telah diuji, dan LG, Sony Bravia, Panasonic Viera, Philips, Hisense, TCL, VIZIO, serta Sharp termasuk target dukungan
- Pemutar jaringan seperti Kodi, VLC, dan Plex juga dapat digunakan
- Gunakan
castor scan untuk melihat perangkat pada jaringan yang sama
- Dukungan Chromecast sudah diimplementasikan tetapi masih eksperimental dan belum diuji
Batasan Docker dan konfigurasi jaringan
- Image Docker khusus Linux menyertakan Chrome,
ffmpeg, dan ffprobe
- Di Docker, diperlukan host Linux pada LAN yang sama dengan TV, dan
--network host harus digunakan untuk pencarian multicast SSDP serta koneksi ke server pemutaran Castor
- Di Docker Desktop untuk macOS dan Windows,
--network host tidak terhubung ke LAN
- Kontainer ditempatkan di subnet VM internal Docker Desktop sehingga
scan tidak dapat menemukan perangkat dan pengiriman juga gagal
- Di macOS dan Windows, gunakan binary native atau bridge Linux VM ke LAN
- Mount
/config.yaml untuk menyediakan konfigurasi, dan model whisper yang diunduh otomatis dapat dipertahankan di volume
- Menggunakan tag rilis alih-alih
latest memungkinkan versi dikunci
Media passthrough dan encoding
- Jika TV sudah dapat memutar video H.264 dengan profil dan level yang diizinkan, Castor menggunakan stream copy sehingga penggunaan CPU nyaris 0
- Jika TV menolak codec atau subtitle perlu disisipkan, Castor akan melakukan re-encode
- Castor memprioritaskan encoder H.264 perangkat keras yang benar-benar berfungsi, seperti VA-API di Linux atau VideoToolbox pada binary native macOS
- Jika tidak tersedia, Castor menggunakan
libx264 perangkat lunak sebagai pengganti
- Untuk menggunakan VA-API GPU Intel di dalam kontainer Docker, diperlukan
--device /dev/dri; --network host saja tidak mengekspos GPU
Kegunaan dan batasan
- Castor adalah alat pengiriman serbaguna, bukan layanan yang terhubung ke situs tertentu
- Castor tidak meng-host atau membundel video, katalog, maupun sumber, dan hanya memproses halaman, stream, dan sumber yang ditentukan pengguna serta memang berhak mereka gunakan
- Castor tidak mendekripsi atau melewati DRM, dan layanan yang dilindungi DRM tidak dapat dikirim
- Pengguna bertanggung jawab mematuhi syarat layanan situs dan hukum setempat, dan Castor disediakan apa adanya untuk penggunaan pribadi dan pendidikan yang sah
2 komentar
Wah, tautan di komentar bawah ini sangat praktis: https://tvexplorer.live/channel/EBS1TV.kr.SD/country/KR. Haha
Sepertinya diblokir di Korea, tapi apakah bisa langsung ditonton dari luar negeri?
Komentar Hacker News
Membuat TV Explorer, yang langsung memutar stream HLS yang dipublikasikan kanal di browser tanpa trik bypass terpisah. Memanfaatkan daftar GitHub publik berisi lebih dari 10 ribu kanal gratis
https://tvexplorer.live
Jadi penasaran apa yang dilakukan layanan TV lain yang tidak dilakukan di sini
Situasi di mana bot harus menjalankan browser headless dengan profil baru setiap saat itu konyol. Cloudflare tidak bisa menghentikan bot, hanya membuang sumber daya kedua pihak, dan pada dasarnya menyerahkan riwayat akses dan kata sandi ke NSA, jadi rasanya ingin kembali ke internet lama
Penjelasannya adalah “dibuat karena tidak ada Chromecast atau AirPlay sehingga tidak bisa mengirim video web dari laptop ke TV”, tetapi terlihat seperti dibuat oleh Claude
Saya kira inti Turnstile adalah mendeteksi browser headless agar sulit dibypass, jadi saya ragu apakah benar bisa lolos hanya dengan meniru klik tanda centang
Dibanding keamanan nyata, yang tampaknya lebih penting adalah keamanan palsu yang dipakai Cloudflare untuk pemasaran lewat jumlah pengguna yang diblokir yang dihitung tanpa membedakan manusia dan bot
Kotak centang itu hanya sebagian; sebelum itu mereka mengamati semua perilaku browser dan respons terhadap event untuk menentukan perlunya verifikasi tambahan berdasarkan kemungkinan sebagai bot
Biasanya alat pembajakan setidaknya menyisakan kemungkinan penyangkalan yang masuk akal, tetapi di sini malah terang-terangan membantu streaming film blockbuster beranggaran 250 juta dolar yang tayang akhir pekan ini
Emulator Azahar dan fork ilegal Azahar Plus yang otomatis mendekripsi game juga mirip, tetapi setelah saya lihat lagi, proyek ini memang menanamkan situs streaming ilegal
Langsung berjalan di Samsung TV biasa yang usianya sudah lebih dari 15 tahun. Saya penasaran apakah menulis fitur pencarian sendiri untuk menganalisis semua halaman JSON seperti https://vsembed.ru/movies/latest/page-1.json memang pendekatan terbaik
Penjelasannya kurang konteks, sehingga sulit tahu ini alat untuk apa, dan apakah untuk pembajakan
Upayanya kurang lebih sama repotnya dengan memakai torrent, jadi saya tidak melihat alasan kuat untuk memakainya
Pada Docker versi macOS, TV mungkin tidak ditemukan
Bagian “menjalankan Chrome headless yang menyembunyikan otomatisasi dengan fingerprint acak dan stealth script” membuat saya kehilangan kepercayaan
navigator, Audio API, dan Canvas API. Ini sangat dasar, jadi kemungkinan besar mudah terdeteksi