OmniGet 开源下载器 | 用 Rust 与 Tauri 串联媒体下载、转码和本地学习库

OmniGet 用 Rust、Tauri 和 Svelte 组织桌面下载流程,将媒体下载、FFmpeg 转换和本地学习库放在同一个应用中。对使用者来说,下载后的文件可以继续播放、阅读和做笔记;对开发者来说,可以研究下载引擎、桌面界面与插件之间怎样分工。项目覆盖 Windows、macOS 和 Linux,源码采用 GPL-3.0 许可。

截至 2026 年 10 月 6 日核对,当前项目 README 指向 OpenSelena/omniget,源码中的版本为 0.10.5;本页早期收录的 v0.9.2 与当前分支应分别看。旧 tonhowtf/omniget 地址本次无法访问,获取源码和发行包请使用下文的当前项目入口。

OmniGet 下载队列通向本地视频、音频和学习资料库的概念图
从媒体下载到本地归档的概念封面,AI 生成,非软件界面。

从一个媒体链接,到可用的本地文件

下载流程先解析来源,取得可用标题、缩略图和格式,再进入队列。项目结合原生提取器与 yt-dlp 处理来源,下载和转换则可能调用不同引擎;列表里显示进度、阶段和预计时间,有助于区分“还在下载”和“正在合并或转码”。

某个站点能被识别,并不表示每条内容都有相同格式。账号权限、地区、来源接口和 DRM 都会影响结果,最终分辨率与音轨取决于实际可取得的媒体。不能从一个格式下拉框推导为所有来源都能下载高清或原始文件。

  1. 先让应用解析一条自己有权保存的内容,查看可用格式与保存位置。
  2. 选择需要的视频或音频方案,再加入队列;观察下载、合并与转换分别进行到哪一步。
  3. 完成后打开实际文件,确认音轨和格式,再决定是否继续批量处理。

README 介绍了重试、退避与恢复机制,但不同来源、协议和临时链接的条件各异。旧链接失效或权限变化时,重新点击重试不一定能接着下载。视频与音频合并、格式转换还需要 FFmpeg 等组件,应用安装流程提供对应引擎的准备方式。

Study 引用原文件,笔记也能接着留下来

Study 学习库可以索引本地课程目录,引用原来的媒体文件,而不必把整套课程再复制一遍。这样可以省去重复占用的空间;原目录改名、移动,或所在存储断开后,索引仍在,也可能找不到文件。整理课程前先确定长期保存位置。

  • 视频播放可以继续上次位置,并为时间点添加笔记;当前说明用 N 键建立时间戳笔记,适合记下需要回看的讲解。
  • PDF、EPUB 阅读与 Markdown 笔记提供另一种学习入口,资料和自己的理解可以留在同一工作流程中。
  • 闪卡用于复习已经整理的内容;把文件放进学习库,不会自动替代对课程和资料的阅读。

例如把一章课程的视频、讲义和自己的笔记放在固定目录,先看视频并记录疑问,再回到讲义核对,最后整理复习材料。这是基于学习库能力的用法示例,不是完成过的课程体验记录。

OmniGet 官方下载队列界面,展示下载阶段、进度和任务状态
官方 README 提供的 Downloads 界面示例;图中速度、文件和任务状态是官方展示内容,不是本文实测数据。

转换、转录与云端 AI,处理位置不同

FFmpeg 转换主要围绕本地媒体,硬件加速是否可用要看显卡、驱动、构建和输出编码。拥有 GPU 不等于每一种格式都会加速,耗时也受文件和机器条件影响。

本地转录使用 whisper.cpp 等组件,需要先取得对应模型。模型准备好后可以在本地运行;选择云端 AI 功能时,相关内容会按所用功能发送给配置的服务商,不能把整个应用统称为所有处理都离线。

课程与 Telegram 等入口还涉及自己的登录会话和来源权限。项目说明不绕过 DRM;购买课程也不自动获得再分发权。是否能取得文件、是否获准保存以及之后能怎样使用,需要按具体内容判断。

读源码时,留意桌面壳与插件的接口

前端界面、Rust 核心和 CLI

Svelte 界面通过 Tauri 接入 Rust 后端,Rust 工作区包含主应用、omniget-core、omniget-plugin-sdk 和 omniget-cli 等部分。修改进度显示与队列逻辑时,需要追踪后端任务状态怎样到达界面;修改来源提取时,则重点看相应引擎或插件。

学习库集成在应用流程中,其他能力有各自模块与插件安排,不能把界面上每个功能都当作独立动态插件。SQLite 等本地数据也与前端页面分工不同;重新构建界面,不会自动重建已有学习记录。

Rust 动态插件需要匹配工具链

插件与宿主通过动态库交换 Rust 类型,Rust 不保证跨编译器版本的 ABI 稳定。当前 rust-toolchain.toml 固定 1.97.0,宿主与插件构建必须遵守相应匹配条件。只看到插件文件扩展名正确,不能判断它与当前应用兼容。

准备源码运行时,从当前仓库取得成套文件,按它锁定的 pnpm 与 Rust 工具链安装依赖,并准备本机的 Tauri 系统依赖。以下命令展示开发入口,Linux 的 WebKitGTK 等原生组件、其他系统的构建条件另按官方说明处理:

git clone https://github.com/OpenSelena/omniget.git
cd omniget
pnpm install
pnpm tauri dev

这里运行的是开发模式,不是生成可分发安装包。需要发行时还要处理 Tauri 打包、签名与更新配置,不能把维护者的签名条件直接当成自己的可用配置。本文没有编译应用或验证各来源的下载兼容性。

便携模式保存的不只是程序设置

Windows 便携模式通过可执行文件旁的 portable.txt 或 .portable 标记启用。便携数据包含配置、数据库、插件、引擎及会话等材料,迁移时要保留所需数据,分享文件夹时也要留意 Cookie 和凭据是否在其中。

GPL-3.0 覆盖相应源码,依赖和媒体内容有自己的条件。项目 README 还对 Loop 原始品牌素材作了单独说明;重新分发修改版时,代码许可与品牌使用应分别核对。若只是研究下载器架构,可以先沿着“解析来源—任务队列—引擎执行—本地文件”阅读,再按需要深入学习库或插件。

  • 当前项目与使用说明:https://github.com/OpenSelena/omniget
  • 当前发行包入口:https://github.com/OpenSelena/omniget/releases
  • 收录版本 v0.9.2 的说明:https://github.com/OpenSelena/omniget/blob/v0.9.2/README.md
  • Rust 工具链约束:https://github.com/OpenSelena/omniget/blob/main/rust-toolchain.toml
  • 源码许可:https://github.com/OpenSelena/omniget/blob/main/LICENSE
OmniGet 开源下载器 | 用 Rust 与 Tauri 串联媒体下载、转码和本地学习库 - 杂货喵
OmniGet 开源下载器 | 用 Rust 与 Tauri 串联媒体下载、转码和本地学习库
此内容为免费资源,请登录后查看
M币0
发布平台GitHub
编码语言Rust
运行方式桌面端
项目版本v0.9.2
项目许可GPL-3.0
支持系统Windows/macOS/Linux
免费资源
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像 - 杂货喵
欢迎您留下宝贵的见解!
提交
头像 - 杂货喵

昵称

取消
昵称图片快捷回复

    暂无评论内容