alitrack

一个下载器,顺便把你的课程变成了自习室

去年我在一个巴西开发者的 GitHub 上发现了个项目,叫 OmniGet。

当时它刚发布两周,200 多 star。我看了一眼 README——"Download Udemy courses, YouTube, music, books, and 1,800+ sites in one app. No terminal."

哦,又一个 yt-dlp 的 GUI 包装。关掉了。

两个月后它 2,500 star 了。我觉得不对劲。

● ● ●

不是下载器

重新打开我才发现,它根本不是下载器。

或者说,下载只是它的第一层。你把一个 Udemy 课程链接扔进去,它下载完所有视频和 PDF 附件之后,事情才刚开始。

它打开了自己的播放器。你在里面看课程视频,随时敲笔记,笔记自动打上时间戳。下次你点那个笔记,视频直接跳到那一秒。课程附带的 PDF 在旁边打开,你可以边看视频边读教材。

这还没完。它内置了一个 Anki 间隔重复系统。你给课程里重要的概念做卡片,它按遗忘曲线推给你复习。还有个 Pomodoro 计时器,25 分钟到了自动暂停视频,提醒你休息。

我意识到它不是下载器。它是一个学习环境,只是碰巧也能下载。

● ● ●

三层架构

把 OmniGet 拆开看,它是三层结构:

第一层:下载引擎。 这是最"正常"的部分。底层调用 yt-dlp 覆盖 1,800+ 站点,但作者没有止步于此——他为大平台写了原生下载器:Instagram、TikTok、Twitter、YouTube、Bilibili……17 个。每个都直接调平台的 API,不走 yt-dlp 的通用路径,速度快很多,也稳定很多。

Bilibili 的支持尤其深。扫码登录后解锁 4K、HDR、Dolby Vision、Hi-Res 无损音频、Dolby Atmos。弹幕导出成 XML、ASS、JSON 三种格式。能解析 11 种 B 站 URL——普通视频、番剧、课程、收藏夹、UP 主主页、每周必看、稍后再看、历史记录,甚至 b23.tv 短链。这是我见过的开源工具里 B 站支持最完整的。

它还支持抖音、小红书、快手、优酷、爱奇艺、腾讯视频、芒果 TV。一个巴西开发者,对中国视频平台的兼容程度超过绝大多数国内工具。

第二层:播放与消费。 下载完的东西全都能在应用里直接打开:

  • 视频播放器,支持 HLS 流
  • EPUB/PDF 阅读器,带高亮、书签、聚焦模式
  • 音乐播放器,接入 Spotify、SoundCloud、YouTube Music、Qobuz、Last.fm,同步歌词,均衡器
  • 字幕编辑器,SRT/VTT/ASS 通吃,带时间轴工具和 AI 翻译

第三层:学习闭环。 这是最独特的一层——Anki 间隔重复、双向链接笔记(带知识图谱可视化)、Pomodoro 计时器。这些东西单独拿出来每个都是一个 App,但 OmniGet 把它们缝在了一起。你的课程视频、笔记、卡片、专注计时,全在一个窗口里。

这三个东西通常对应三个软件:下载器、播放器、笔记应用。OmniGet 把它们做成了一个。

● ● ●

技术面

技术栈是 Rust + Tauri 2 + Svelte 5。后端 4.3 万行 Rust,前端 2.1 万行 TypeScript/Svelte。

架构上最值得说的是它的下载器路由:一个 29 行的 PlatformRegistry,通过 trait 匹配 URL → 分发到对应的下载器。Instagram 的链接走 Instagram 下载器,B 站的走 B 站下载器,其他的走 yt-dlp 通用通道。就这么简单。

插件系统用 C ABI 动态加载 .dll / .so / .dylib,带版本检查。作者给插件 SDK 开了独立 crate(omniget-plugin-sdk),插件可以调用宿主能力:弹 toast、读写设置、获取 cookie、访问代理。官方市场里有课程下载、Telegram、格式转换等几个插件,都自动安装自动更新。

还有个精巧的设计:浏览器扩展不是走 Chrome Native Messaging(那个要硬编码扩展 ID 白名单,非常脆),而是本地起了一个 HTTP 服务(axum),token 认证。扩展把当前页面 URL 和 cookie 通过 localhost 发给桌面应用。更简单,更可靠。

● ● ●

一个人

作者叫 tonhowtf,巴西人。所有代码都是他一个人写的。

从 2026 年 2 月 Show HN 到现在,五个月发了 7 个大版本。差不多每周一版。issue 只有 6 个打开的,响应很快。

Reddit 上的帖子只有 6 个赞、2 条评论。Hacker News 的 Show HN 也没激起太大水花。但 GitHub star 曲线很诚实——两个月冲到两千多。这说明用户在用,只是不说话。

AC0.AI 写了两千字的评测,说他最喜欢的是"下载后构建学习环境"的闭环设计。Alternativeto 上有人把它列为 Parabolic、Tartube、Video DownloadHelper 的替代品。

一个独立开发者,选择的战场是所有下载器都在打的 1,800+ 站点覆盖,但他真正赢的地方是那第三层——没人给下载器加 Anki 和知识图谱。这就像一个外卖 App 顺带送了你一个健身房会员。不合理,但有用。

● ● ●

限制

GPL-3.0 许可证,商用就别想了。没有 iOS/Android 版本——Tauri 2 的移动端支持还在早期,而且 yt-dlp 作为子进程的方案在手机上基本跑不通。macOS 版本没签名,第一次打开得跑两行命令行绕过 Gatekeeper。

最大的风险是 bus factor = 1。一个人维护 6 万多行代码,任何变故都会导致项目冻结。但话说回来,开源世界里单人项目做出这种完成度的本来就是极少数——它活着的每一天都是超额收益。

● ● ●

谁适合用

如果你只是偶尔下个 YouTube 视频,用 yt-dlp 命令行就够了。

但如果你在 Udemy、Hotmart 上买过课,追 B 站的番剧想存到本地看,或者需要一个能把"下载的内容"变成"学到的知识"的工具。OmniGet 是目前唯一的选择。

它不是最好的下载器。它是最好的"下载之后怎么办"的答案。

GitHub: github.com/tonhowtf/omniget