Skip to content

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 11:04

⬇️ 点击徽章直接下载

Windows
macOS
macOS
Linux
Linux

不知道选哪个?见下方对照表 · 首次使用请留意各平台注意事项


📦 下载对照表

平台 架构 安装包
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.ts 445 → 95 行;
    UpdateModal.vue 467 → 344 行(更新状态机抽为 composables/useUpdater.ts);
    抖音与快手抽出共用的 parsers/shared.ts
  • 仓库坐标与外部链接集中到 shared/app.ts(此前散落 9 处)
  • 修正架构文档中已不存在的内置二进制描述

移除

  • bin/ 目录、bin/download-deps.sh 与 pnpm download-deps* 脚本
  • 「更新二进制」工作流(由「更新运行依赖清单」取代)
  • 解析页的「支持解析平台」区块(占版面,信息已在文档中)


完整历史见 CHANGELOG.md · 遇到问题请先看 故障排除