比 IPTV 更好更便宜
想象一下,购买了一台非常漂亮的电视,结果发现它不允许从随机网站进行投屏……然后你换上了最长的 HDMI 线缆。接着你开始进行屏幕镜像:你的电脑延迟,分辨率下降,感觉就是不对。Castor 是一个命令行工具,它从网站提取视频流,处理格式兼容性,并实时投射到你的电视上,附带选项自动生成的字幕直接烧录到视频中。运行 castor cast 来浏览热门标题,搜索 TMDB,检查海报和元数据,然后投屏——无需离开终端。注意 提取是如何工作的?Castor 启动一个无头 Chrome,使用随机的浏览器指纹和隐形脚本来隐藏自动化。它通过 Chrome DevTools Protocol 监听所有网络活动,捕获视频流,然后运行一条操作管道:点击页面,导航到最大的 iframe,检测到 Cloudflare Turnstile 时解决它,作为备用再点击一次。这在大多数流媒体网站上有效,但无法突破复杂的机器人保护。安装 Homebrew 和源代码构建一个需要 Chrome/Chromium(无头提取)、ffmpeg(转码)和 ffprobe(格式检测)在你的 PATH 中的本地二进制文件。Docker 镜像打包了所有三者,因此只需提供配置即可。Homebrew(macOS) brew install --cask stupside/tap/castor Docker ghcr.io/stupside/castor 配有 Chrome、ffmpeg 和 ffprobe。 # 发现设备(无需配置) docker run --rm --network host ghcr.io/stupside/castor:latest scan # 投屏,挂载 config.yaml 和持久化模型缓存 docker run --rm --network host \ -v "$PWD/config.yaml:/config.yaml" \ -v castor-cache:/root/.cache \ ghcr.io/stupside/castor:latest \ cast player https://www.fmovies.gd/watch/movie/1315303 重要 --network host 是必需的:设备发现是 SSDP 组播,电视从 Castor 的回放服务器返回流 - 两者都无法在 Docker 的桥接网络中生存。主机网络仅在 Linux 上真实存在;在 Docker Desktop(macOS/Windows)上无法到达你的电视,因此在那里运行本地二进制文件。castor-cache 卷在运行之间保持自动下载的 whisper 模型(约 75 MB)。将 :latest 替换为 :v1.0.0 以固定发行版。源代码构建 需要 Go 1.26+ 和 cmake(whisper.cpp 绑定是 cgo,并链接一个本地构建的 libwhisper.a): git clone --recurse-submodules https://github.com/stupside/castor.git cd castor make # 构建 libwhisper.a,然后构建 castor 二进制文件 go install 将无法工作:捆绑的 whisper.cpp 绑定通过本地替换引入,并且需要该预构建的静态库。支持的设备 DLNA / UPnP 任何实现 DLNA/UPnP MediaRenderer:1 配档的电视都能工作,这几乎覆盖了过去十年销售的所有智能电视:三星(已测试)、LG、索尼 Bravia、松下 Viera、飞利浦、海信、TCL、VIZIO、夏普。网络播放器如 Kodi、VLC 和 Plex 也能正常使用。运行 castor scan 来发现网络上的设备。Chromecast 警告 实验性:已实现但未测试。欢迎贡献。快速开始 Castor 需要当前目录中的 config.yaml(或传递 --config)。一切机械性都随附工作默认值,因此文件只需指明要投屏到哪个设备、从哪个来源投屏,以及供浏览器使用的免费的 TMDB API 密钥。# 1. 找到你电视的确切名称 castor scan 创建 config.yaml,内容为该名称: device : name : "客厅电视" # 从 `castor scan` 获取的确切名称 type : dlna sources : - proxies : ["https://vidsrc-embed.ru"] templates : movie : "/embed/movie/{itemID}" episode : "/embed/tv/{itemID}/{season}-{episode}" tmdb : api_key : "<YOUR_TMDB_API_KEY>" # 从 https://www.themoviedb.org/settings/api 免费获取 # 2. 从交互式 TUI 浏览并投放 castor cast castor cast 首先会询问你要投放到哪个设备——网络上每个 DLNA/UPnP 渲染器,动态发现并预选定你配置的设备:然后它会打开一个 TMDB 支持的浏览器——按类型筛选,搜索,检查海报和元数据,深入挖掘系列的每一集,并投放你选择的那一集。提示 没有 TMDB 密钥?你可以跳过浏览器,直接从 ID 投放标题——使用配置中的来源。参见用法。 用法 # 交互式 TMDB 浏览器:搜索,选择电影/剧集,投放(需要 tmdb.api_key) castor cast # 从流媒体网站的播放器页面投放 castor cast player https://www.fmovies.gd/watch/movie/1315303 # 根据 IMDB/TMDB ID 投放,使用配置中的来源 castor cast movie tt33028778 castor cast episode tt2699128 --season 1 --episode 3 # 直接投放原始流 URL castor cast url https://example.com/stream.m3u8 # 有用的标志 castor cast movie --dry-run tt33028778 # 打印找到的 URL 而不投放 castor --debug cast player https://... # 详细日志 castor scan # 发现网络上的设备 castor info # 版本/构建信息 配置 快速开始涵盖所需的键。除此之外,所有机械性(超时、探测、捕获、转码...)可以通过配置键进一步调整。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡