Streambert 项目路线图展望:从 VidSrc 依赖到自建源的 3 个演进方向
【免费下载链接】streambertA cross-platform Electron Desktop App to stream and download any Movie, TV Series or Anime in the World. Zero Ads and Tracking项目地址: https://gitcode.com/GitHub_Trending/st/streambert
Streambert 是一款跨平台 Electron 流媒体桌面应用,支持无广告、无追踪地在线观看和下载全球任意电影、剧集与动漫。它的播放能力目前主要依赖 VidSrc 等第三方嵌入源,而围绕"降低对单一源的依赖、走向自建播放源",正是项目下一步演进的核心主线。本文梳理现有架构、已落地的多源切换机制,以及未来可能的自建源方向。
当前架构:三源并行 + 元数据分离
先看 Streambert 现在是怎么取流的。整个数据链路可以拆成两层:
| 层级 | 依赖服务 | 作用 |
|---|---|---|
| 元数据层 | TMDB(电影/剧集)、AniList(动漫) | 封面、简介、搜索、首页推荐 |
| 播放层 | VidSrc、Videasy、Vidking、AllManga | 实际的视频流 |
播放源的定义集中在 src/utils/api.js 的PLAYER_SOURCES数组里,每个源只需声明"电影 URL 模板 + 剧集 URL 模板 + 若干参数"。这种"表驱动"的设计,正是路线图演进的地基——新增一个播放源,本质上只是往数组里加一条配置。
为什么要减少对 VidSrc 的依赖?
对普通用户来说,VidSrc 是目前片库最全的默认源,但它也是风险最集中的单点:
- 域名会漂移。代码里 VidSrc 的播放地址已指向
vsembed.su,历史上这类嵌入源换域名是常事,一次换域就可能让播放短暂中断,需要同步更新配置。 - 加载机制特殊。VidSrc 的视频藏在嵌套 iframe 里,必须通过主进程逐帧查询才能记录播放进度(见 src/ipc/player.js 的拦截逻辑),src/utils/api.js 中专门用
NEEDS_INTERCEPT = ["vidsrc"]标记了这类"需要透明请求拦截"的源,维护成本高于普通源。 - 广告拦截要跟着跑。第三方源不断翻新广告手段,内置的追踪器拦截规则需要持续更新,这是 src/ipc/blockStats.js 统计功能的意义所在。
演进方向一:多源切换 + 自动故障转移(已落地)
路线图的第一步其实已经实现:当某个源不可用时,自动或手动切到备用源。
- 手动切换:播放页右上角的源下拉菜单可自由切换 VidSrc / Videasy / Vidking,选择会持久化(见 src/pages/MoviePage.jsx 的源菜单实现)。
- 自动故障转移:对动漫内容,AllManga 默认作为首选源;若该源没有这一集,应用会把"哪个备用源可用"写进本地故障转移缓存(src/utils/storage.js),下次打开同一集直接跳过坏源,不再打扰用户。
- 片型自动适配:src/pages/MoviePage.jsx 会根据内容是否为动漫(TMDB 动画标签 + 日语/日本产地判定),自动在"动漫源"与"普通源"之间来回切换。
对用户的实际意义是:某个源挂掉 ≠ 应用不可用,这是去 VidSrc 化的第一步保险。
演进方向二:动漫线的自建源实践(AllManga 全链路自有)
动漫部分是目前最接近"自建源"的样板工程,值得单独展开:
- 应用不加载 AllManga 网页,而是由主进程直接解析并拉取 .mp4 文件,全程在本地播放器中完成,核心实现在 src/ipc/allmanga.js(含对源站接口的自定义加解密处理)。
- 这种"本地解析 + 直连文件"的模式天然绕开了第三方嵌入页的广告与追踪器问题,也是项目"零广告、零追踪"承诺最能兑现的部分。
- 元数据侧则改用 AniList 的 GraphQL 接口,缓存 7 天(src/utils/api.js),减少对 TMDB 的重复请求。
路线图启示:动漫线证明了"自建源"在工程上是可行的——解析逻辑本地化、播放走自有管线、故障转移兜底。电影/剧集线若能沉淀出类似接口,就是去 VidSrc 化的第二步。
演进方向三:走向用户可扩展的自建源体系(展望)
结合现有代码结构,下一步最合理的演进形态是:
- 统一的源接口规范:把
movieUrl / tvUrl / 参数 / 进度支持 / 是否需要拦截这套约定固化成"源插件协议",任何符合协议的源都能被播放器无缝接入。 - 社区贡献源:参考 CONTRIBUTING.md 中既有的贡献流程,未来可开放"提交新播放源"的标准化 PR 模板,让片库覆盖能力由社区共同扩展。
- 下载能力复用:现有下载链路基于 .m3u8 列表 + 多线程下载(src/ipc/downloads.js),自建源若输出同类列表格式,下载、字幕、本地播放等功能均可零成本复用。
给新手和普通用户的实用建议
- 源怎么选:日常观影默认源即可;遇到卡顿或无法加载时,优先手动切到另一个源试试,选择会被记住。
- 首次使用:只需在启动时填入一个免费的 TMDB API 读取令牌(申请步骤可参考 tmdb-tutorial.md),本地保存、仅需一次。
- 想参与路线图:按 CONTRIBUTING.md 提 feature request 或 bug report 即可,多源适配、源解析稳定性正是最欢迎的改进方向。
小结
Streambert 的路线图逻辑很清晰:短期用多源切换和故障转移对冲 VidSrc 的单点风险(已完成大半);中期把动漫线的"自建源"经验复制到电影/剧集线;长期形成可扩展的用户源体系,让"零广告、零追踪"从承诺变成架构保证。对使用者而言,这条演进路线意味着片库更稳、加载更快、隐私更好。
【免费下载链接】streambertA cross-platform Electron Desktop App to stream and download any Movie, TV Series or Anime in the World. Zero Ads and Tracking项目地址: https://gitcode.com/GitHub_Trending/st/streambert
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考