Repository navigation
v1.3.0
📦 下载对照表
| 平台 | 架构 | 安装包 |
|---|---|---|
| Windows | x64 | 安装版 .exe(推荐) |
| Windows | x64 | 便携版 .exe |
| macOS | Apple 芯片(M 系列) | .dmg(推荐) |
| macOS | Intel | .dmg(推荐) |
| Linux | x64 | .AppImage(推荐) |
| Linux | x64 | .deb |
| Linux | x64 | .rpm |
| Linux | arm64 | .AppImage |
运行依赖 yt-dlp / ffmpeg 不随安装包分发:启动后会自动识别机器上已安装的版本并复用,
识别不到时在「设置 → 运行依赖」里一键下载即可,无需提前手动安装。
⚠️ 各平台注意事项
- Windows:安装版会创建开始菜单与桌面快捷方式;便携版解压即用,但不支持自动更新
- macOS:应用未做代码签名,首次打开需在「系统设置 → 隐私与安全性」中允许;Apple 芯片请勿选 Intel 版
- Linux:
.AppImage需先chmod +x;.deb/.rpm可通过包管理器安装
📝 更新内容
升级提示:本版起安装包不再内置 yt-dlp 与 ffmpeg。升级后如果机器上没有这两个工具,
DownVid 会在「设置 → 运行依赖」中提示,点一下即可自动下载安装(带 SHA-256 校验)。
如果你已用 Homebrew / winget / apt 等装过,会自动识别并直接复用,无需任何操作。
重要变更
- 安装包不再内置 yt-dlp 与 ffmpeg,改为运行时按「系统优先,缺失才下载」的顺序解析:
手动指定的路径 → DownVid 托管目录(userData/runtime/bin/)→ 登录 shell 的 PATH 与
各平台常见安装目录(Homebrew / MacPorts / scoop / winget / apt)→ 裸命令名。
代价是首次使用若两侧都没有,需要点一下「下载」;收益是安装包体积减小约 30%
(macOS arm64 从 182.6 MB 降到 128.8 MB),且不再重复占用磁盘 - 仓库移除
bin/目录与 Git LFS 追踪(此前.git已膨胀到 804 MB)
新增
- 运行依赖管理:「设置 → 运行依赖」显示每个依赖的版本、来源(系统安装 / DownVid 托管 /
手动指定)、完整路径与未找到的原因;支持逐个下载、更新、取消与打开安装目录 - 缺依赖时一键下载引导:启动检测、解析失败、开始下载前三处都会拦截并给出下载入口,
而不是丢一句「未找到 yt-dlp」让用户自己猜 - 依赖下载带 SHA-256 校验,先校验后解压安装,写入 DownVid 自己的目录,不污染系统;
macOS 上自动去除隔离属性并做 ad-hoc 签名(否则 Apple Silicon 会直接killed: 9) - 进阶设置可手动指定 yt-dlp / ffmpeg / ffprobe 的绝对路径
- Cookie 使用引导浮窗:说明自动读取与手动导入两种方式,并提供一键跳到 Cookie 设置;
不再跳转仓库 wiki - 关于页新增「开源组件」致谢(Material Symbols / yt-dlp / FFmpeg 等及其许可)
- 新增
pnpm deps:manifest与「更新运行依赖清单」工作流:从上游抓取版本号与 SHA-256
修复
- macOS 上 Logo 不显示:Header 为避让原生红绿灯按钮留出了左内边距,但 Logo 被
v-if="!isMac"排除了,那块位置一直空着 - Windows 多出一条菜单栏:应用菜单在所有平台注册,而 Windows/Linux 的 Electron 会把它
渲染成窗口内的菜单栏,与自绘标题栏重复;改为仅 macOS 注册 - Cookie 提示误报:此前仅按 URL 域名就提示「需要 Cookie」,即使用户已配好、上次解析也
成功读到登录态;现在依据真实的 Cookie 来源状态决定是否提示 - macOS 读取 Safari Cookie 失败会导致整个解析失败:权限错误
(Operation not permitted ... Cookies.binarycookies)未被识别为「Cookie 读取失败」,
因而没有退到下一个浏览器来源。现会正确跳过并继续尝试 - 任务队列的文件夹图标点了没反应:用的是"用系统程序打开文件"(视频会直接播放)而不是
定位目录,且失败时静默;改为在文件管理器中定位并选中,失败时给出提示 - 代理测试结果不可信:原实现没有真正走代理(用全局 fetch,既不读参数也不读环境变量),
实际只在测「本机能否直连 google.com」——代理挂掉也会报成功。现改为通过一次性 session
真实请求,并加直连对照与错误原因翻译 - 界面路径暴露用户名:下载目录等改为显示成
~/Downloads/DownVid,悬停仍可看到完整路径 - 解析进度条此前是虚构的百分比(与真实进度无关),改为不确定进度条 + 已用时间
- 检查更新重复点击每次都发请求:加 60 秒结果缓存与并发合并,下载完成后失效缓存
- 图标字体改为内嵌,修掉离线或网络受限时图标退化成文字的问题;并修复
high_definition(不是有效的 Material Symbols 名,会渲染成文字「HIGH_DEFINITION」)
改进
- 应用菜单(仅 macOS)新增「设置…」⌘,
- 设置改为居中模态浮窗(与错误 / 更新提示同一形态),并修掉打开慢的问题:
依赖探测曾阻塞首帧渲染(需启动 Go 边车,冷启动 1~3 秒),现改为后台进行 - 打包排除 asar 内的
node_modules(依赖已被内联进构建产物),asar 40 MB → 3.8 MB - 图标、按钮与状态标签补齐图标;技术栈徽章更新并补上 Go 与 Vitest
文档与工程
- 新增安全政策、贡献者行为准则、
仓库规范、发布流程、项目结构、
.github/CODEOWNERS - Release 正文顶部新增「点徽章即下载」引导区,链接按实际产物生成,不会死链
- 文档记录真实的下载量口径:release 资源下载量总和会被
latest*.yml(每次检查更新都请求)
与*.blockmap(仅自动更新)放大,不能直接当作装机量 - 明确不引入客户端匿名统计,理由与替代口径见
docs/release.md - CI 新增 CodeQL 扫描、依赖审查、Go 检查、单元测试与图标名 / IPC 契约校验
- 引入 Vitest 与 57 个纯逻辑单测(格式选择、依赖错误识别、yt-dlp 参数组装、
解析器共用工具、Cookie 错误识别) - 拆分超长文件:
electron/ipc/download.ts445 → 95 行;
UpdateModal.vue467 → 344 行(更新状态机抽为composables/useUpdater.ts);
抖音与快手抽出共用的parsers/shared.ts - 仓库坐标与外部链接集中到
shared/app.ts(此前散落 9 处) - 修正架构文档中已不存在的内置二进制描述
移除
bin/目录、bin/download-deps.sh与pnpm download-deps*脚本- 「更新二进制」工作流(由「更新运行依赖清单」取代)
- 解析页的「支持解析平台」区块(占版面,信息已在文档中)
完整历史见 CHANGELOG.md · 遇到问题请先看 故障排除