Convoy:macOS 原生下载管理器
用 Swift 和 SwiftUI 写的 macOS 原生下载管理器,配合浏览器扩展接管浏览器下载。
- 浏览
- 9
- 访问
- 0
- 下载
- 0
- 版本
- v1.2.0
- 平台
- macOS
详细介绍
项目简介
Convoy 是一款用 Swift 和 SwiftUI 编写的 macOS 原生下载管理器,附带浏览器扩展,把浏览器里的下载交给 App 处理。采用 GPL-3.0 许可证,要求 macOS 14(Sonoma)或更高版本,支持 Apple 芯片与 Intel 机型。
主要功能
- 分段下载:每个文件通过 1–16 个连接(可配置)同时抓取,遇到不支持 Range 的服务器自动回退为单连接。
- 暂停与恢复:退出 App 再打开后仍可继续下载。
- 浏览器集成:支持 Chromium 系(Chrome、Brave、Edge、Vivaldi、Opera、Arc、Helium、Chromium)与 Firefox 系(Firefox、Zen、Floorp、LibreWolf、Waterfox)。可拦截下载,为链接、图片和媒体添加右键菜单项,并在页面视频上显示下载按钮;会把页面的 cookie 与请求头一并发送,因此需要登录的下载也能完成,无痕窗口使用各自独立的 cookie。
- 视频流:支持 HLS 与 DASH,音视频分离的流会在下载后用 AVFoundation 合并。
- YouTube:通过 yt-dlp 实现,可在「设置 → YouTube」中按需安装。
- 自动更新:每天检查一次,安装前先询问。
- 下载队列:按状态(下载中、已完成、已暂停、失败)筛选,并支持搜索。
- 菜单栏项目:一眼查看进行中的下载,可全部暂停、全部恢复。
- 完成通知:下载完成后通知,可选提示音。
- 存储清理:找出中断下载留下的残留文件,按需清理(设置 → 高级)。
- 外观:浅色、深色或跟随系统。
不支持 Safari(Apple 的扩展路线需要付费证书),也不会上架 Mac App Store。
安装与使用
从 Releases 下载最新版本,提供两种内容相同的安装方式:Convoy-<version>.pkg 安装包(装到 Applications,需要管理员密码)和 Convoy-<version>.dmg 磁盘映像(打开后把 Convoy 拖到 Applications)。
Convoy 未经过 Apple 公证,首次打开安装包或 App 时系统会提示无法验证。处理方式:
- 关闭提示框。
- 打开系统设置 → 隐私与安全性,向下找到关于 Convoy 的条目,点击仍要打开。
- 确认并输入密码。
只需操作一次。每个文件旁附有 .sha256 校验文件,可把两者放进同一目录后执行:
shasum -a 256 -c Convoy-1.0.0.pkg.sha256
浏览器扩展
首次启动时 App 会询问要设置哪些已安装的浏览器,并显示加载方式;之后可在「设置 → 浏览器」中重复操作。每个浏览器只需加载一次:
- 打开浏览器的扩展页(如
chrome://extensions)并开启开发者模式。 - 把
~/Library/Application Support/Convoy/Extension拖到该页面,或点击加载已解压的扩展程序并选择该目录。
App 会维护这份扩展副本,浏览器重启后生效。Firefox 及基于它的浏览器使用单独的扩展构建,在「设置 → 浏览器」中点击 Add to Firefox(或对应浏览器名称)并确认提示即可,之后由 Firefox 自行更新。
从源码构建
需要安装 Xcode 并将其设为当前开发者目录。./build.sh 会先检查这点:
git clone https://github.com/TheDynamicPunk/Convoy.git
cd Convoy
./build.sh
产物为 .build/release/Convoy.app。swift build -c release 只编译二进制,不组装和签名 App 包;./verify-bundle.sh .build/release/Convoy.app 可校验结果。./make-pkg.sh 和 ./make-dmg.sh 分别用于打包安装包和磁盘映像。
DownloadEngine 是独立的库目标,可以单独使用:
let task = try await DownloadManager.shared.addDownload(
url: URL(string: "https://example.com/file.zip")!,
segmentCount: 8
)
注意事项
- 更新经过签名,Convoy 只安装用本项目密钥签名的更新;可在「设置 → 通用」中关闭每日检查。
- Firefox 有两点限制:隐私窗口需在「管理扩展 → 在隐私窗口中运行」中允许;容器标签页的下载使用默认容器的 cookie,而不是该容器自身的。
- 「Convoy」名称、图标与品牌不受 GPL 覆盖,代码不授予商标权;分发修改版请使用自己的名称和图标。
- 运行时下载的辅助程序(yt-dlp、QuickJS 运行时、人机验证服务)属于独立作品,采用各自许可证,不随 App 分发。
- Convoy 是通用下载管理器,使用时应遵守所用网站的服务条款与当地著作权法。
本作品整理自 GitHub 开源项目 TheDynamicPunk/Convoy,原作者 @TheDynamicPunk,许可证 GPL-3.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v1.2.0当前版本
新增下载分类(按文件类型或来源站点自动归档,规则可编辑、可预览)与隐藏 Dock 图标,支持 Helium 浏览器、全屏应用下自动置前;修复视频下载被误判过期、同名不同清晰度被误判重复等问题。
评论