为什么Streambert正在取代浏览器看片?Electron桌面流媒体App的秘密
【免费下载链接】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 的开源跨平台桌面流媒体应用,支持在全球范围内流式播放并下载电影、电视剧和动漫,全程无广告、无追踪。相比浏览器看片,它在播放体验、离线下载、隐私保护上做了大量针对性优化——本文带你 5 分钟看懂它的核心玩法和背后的技术秘密 🎬
先看病灶:浏览器看片到底差在哪?
如果你用浏览器追剧,大概率经历过这些痛点:
- 📢广告与追踪器满天飞:弹窗、横幅、第三方统计脚本轮番上阵,甚至拖慢加载
- ⏱️进度不记忆:关一个标签页,下次从头再播
- ⬇️想离线看几乎不可能:浏览器本身没有下载流媒体的能力
- 🗂️没有片库:看过的、想看的散落在收藏夹和标签页里,无从管理
Streambert 正是针对这些问题设计的——它把"搜索 → 播放 → 下载 → 管理"整合进一个独立的桌面窗口里,用 Chromium 内核 + 应用级拦截能力,把浏览器做不到的事做成了默认行为。
认识 Streambert:一个仓库,五个平台
Streambert 基于 Electron 40 + React 18 构建,通过 electron-builder 打包,覆盖Windows、macOS、Linux(deb / AppImage / pacman)五大平台,项目采用 GPL-3.0 开源协议(见LICENSE),当前版本 2.6.0。
它内置了 8 大核心能力:
| 能力 | 说明 |
|---|---|
| 🎦 流式播放 | 播放全球任意电影、剧集、动漫 |
| 📥 离线下载 | 多线程下载,本地永久保存 |
| 📃 字幕管理 | 自动发现并下载字幕 |
| 📚 片库追踪 | 记录已看/想看,管理下载 |
| ✨ 趋势发现 | 每天推荐新内容 |
| 🛡️ 隐私 | 无广告、无追踪器 |
| ⚙️ 可定制 | 界面与功能按需配置 |
| ⚡ 速度 | 流式播放快于浏览器,多线程下载 |
界面主题、强调色、播放源都可以在设置中自由切换,个性化程度远超网页端。
核心功能拆解
电影:详情页 + 多播放源
电影数据(海报、简介、评分、演职员)来自 TMDB 元数据接口,播放则由内置的多个第三方播放源(VidSrc、Videasy、Vidking 等)驱动,某个源失效可以一键切换。播放源配置集中在src/utils/api.js中,新增一个源只需加一行配置。
剧集:季集管理与进度记忆
剧集页面自动组织季/集结构,并支持 TMDB 的"剧集分组"(Episode Group)——不同地区的集数顺序不一致时也能正确对号入座。播放进度的记忆是桌面 App 的杀手锏:主进程会直接查询播放器所在的全部嵌套帧来读取进度(实现在src/ipc/player.js),即使播放器藏在跨域 iframe 里也不会丢进度。
动漫专线:直连 mp4,页面零广告
App 会自动判断一部作品是否为动漫(动画类型 + 日本语言/地区),是则切换到 AniList 元数据 + AllManga 资源通道,直接拿到 .mp4 文件播放,连第三方网页都不会出现,从源头上杜绝了广告。这套逻辑在src/utils/api.js和src/ipc/allmanga.js中实现。
一键下载:把"流媒体"变成"离线片库"
这是浏览器完全做不到的部分。App 在播放会话中拦截 .m3u8 播放列表地址(见index.js中的网络拦截逻辑),点击下载后交给独立的多线程下载工具 + ffmpeg 合成完整文件,下载队列、进度、去重都持久化在本地,代码见src/ipc/downloads.js。下好的文件既可以在 App 内直接播放,也能拷到任何存储设备。
字幕:自动发现 + 一键下载
播放时 .vtt 字幕地址同样会被自动捕获并按语言归类,配合字幕下载器(src/ipc/subtitles.js)即可为任意剧集补充多语言字幕。
安装 Streambert 的完整步骤
第 1 步:下载对应平台的安装包
| 平台 | 安装包 |
|---|---|
| Windows | Streambert Setup *.exe,双击安装 |
| macOS | Streambert-*-universal.dmg,拖入 Applications |
| Debian/Ubuntu | streambert_*.deb(sudo dpkg -i安装) |
| Arch Linux | streambert-*.pacman |
| 通用 Linux | .AppImage,直接运行 |
第 2 步:配置免费的 TMDB Token
首次启动会要求输入一个 TMDB API Read Access Token,全程只需一次、保存在本地。整个申请流程约 2 分钟:在 TMDB 官网免费注册 → 在 API 设置页申请密钥(选 "Personal use only")→ 填写申请表 → 复制以eyJ开头的那串长 Token 粘贴进 App 即可。项目内置了图文教程tmdb-tutorial.md,跟着点就行。
第 3 步:(可选)启用下载功能
需要离线下载时,额外安装项目配套的下载工具和 ffmpeg 即可;只看不下载的话,前两步就大功告成 ✅
从源码构建(可选)
想尝鲜或参与开发(指南见CONTRIBUTING.md)?需要 Node.js ≥ 22.12.0:
git clone https://gitcode.com/GitHub_Trending/st/streambert cd streambert npm install npm run dist # 或 dist:win / dist:linux / dist:mac它凭什么比浏览器快?
Streambert 把 Electron 用在了刀刃上,几处关键优化值得新手了解:
- 内存瘦身:启动时限制 JS 堆到 256MB、渲染进程最多 3 个、磁盘缓存上限 80MB(
index.js顶部的启动参数),长时间刷列表不涨内存 - 播放会话独立:播放器使用专用 Chromium 会话,统一伪装 UA、剥离 CSP / X-Frame-Options 响应头,第三方播放器嵌入更稳定
- 智能缓存:TMDB 元数据 5 分钟内存缓存、动漫数据 7 天本地缓存,请求队列限制最多 4 个并发,既快又不会被限流
- 内置广告拦截:主进程维护一份拦截域名清单(
index.js的BLOCKED_HOSTS),在请求发出前直接取消,还能实时统计"拦截了多少次广告/追踪请求" - 内置自动更新:版本检查逻辑在
src/utils/updates.js,更新包只从受信任的发布源下载
隐私与安全设计
- 零数据收集:App 本身不收集任何数据,不依赖任何中心化服务
- 更新白名单:自动更新只接受两个官方发布源,并逐一校验重定向主机,防止恶意二进制注入(
src/ipc/player.js) - 下载工具白名单:只能调用用户自己注册过的本地下载程序路径
- 完全开源:GPL-3.0 协议,代码可审计、可自建
常见问题
问:需要联网注册才能用吗?需要免费申请一个 TMDB Token(约 2 分钟),用于拉取影片元数据;播放源数据另有多源可切换。
问:下载功能必须装 ffmpeg 吗?下载和音视频探测依赖 ffmpeg 生态工具;纯在线流式播放则不需要任何额外依赖。
问:收费吗?免费,GPL-3.0 开源,衍生作品也必须保持开源。
问:适合谁用?受够了浏览器广告、想追全球片库、又有离线观影需求的观众;以及想学习"Electron 桌面应用怎么做播放/下载/更新"的开发者。
总结
Streambert 证明了一件事:看片这件事,浏览器只是工具,而不是归宿。它用 Electron 拿到了浏览器级内核,又用桌面 App 的能力补上了离线下载、进度记忆、广告拦截和片库管理——这才是流媒体 App 该有的完整形态。如果你还想深入,可以从index.js(主进程入口)读起,顺着src/ipc/目录把下载、播放、字幕三条链路走一遍 🚀
【免费下载链接】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),仅供参考