Releases: asthetik/video-fetch
Release list
Video Fetch v0.3.2
Video Fetch v0.3.2
v0.3.1 之后的功能版本:新增「UP 主空间视频批量下载」——粘贴 UP 主空间链接即可浏览其全部投稿,多选后按统一档位批量下载视频或仅音频。
重点内容
- 空间链接直接进入列表:粘贴
space.bilibili.com/{UP主ID}链接,主页自动切换为该 UP 主的投稿列表,显示「UP 主名 · 共 N 个视频」;普通视频链接行为不变 - 列表浏览:每页 50 条 + 「加载更多」;空间内关键词搜索(回车触发);「最新发布 / 最多播放」排序切换;整行可点勾选,勾选跨页、跨搜索保留,「全选」一键选中已加载项
- 批量下载:底部批量栏一键「下载已选」,统一选档后一次性入队——视频档位(最高画质 / 1080P / 720P / 480P)或仅音频(m4a / mp3 / FLAC);超过 50 个先弹确认;完成后汇总「已入队 / 跳过已存在 / 队列重复 / 失败」并附失败明细
- 列表自动降级:B 站列表接口失败(含风控 -412)时自动切换 yt-dlp 兜底抓取,界面明确显示降级提示;接口恢复后自动切回
- 未登录可用:公开空间无需登录即可浏览与批量下载
已知限制
- 降级模式下不支持搜索与排序(输入框与排序开关置灰并提示),仅保留默认排序的最新投稿列表
- 降级模式下播放量缺失,部分条目的时长 / 日期可能显示为「—」
- FLAC 仅对含 Hi-Res 无损音源的稿件生效,无音源的稿件任务会失败并落历史
b23.tv短链接不进入空间列表,仍按普通视频解析- 下载完成后请以下载队列 / 历史的实际结果为准;列表页不标记已下载状态
下载
- macOS(Apple Silicon):
Video-Fetch-v0.3.2-macOS.dmg(不提供 Intel) - Windows x64:
Video-Fetch-v0.3.2-Windows-x64.msi/.exe - Windows arm64:
Video-Fetch-v0.3.2-Windows-arm64.msi/.exe - Linux x86_64:
Video-Fetch-v0.3.2-Linux-x86_64.AppImage/.deb - Linux arm64:
Video-Fetch-v0.3.2-Linux-arm64.AppImage/.deb
当前发布包未做 Apple / Windows 代码签名。macOS 若提示损坏,把 App 拖到「应用程序」后执行:
xattr -cr "/Applications/Video Fetch.app"What's Changed
Full Changelog: v0.3.1...v0.3.2
Video Fetch v0.3.1
Video Fetch v0.3.1
v0.3.0 之后的功能版本:新增「仅音频下载」、音频档位与输出格式选择、多平台打包命名调整,以及一系列音频下载正确性修复。
重点内容
- 仅音频下载:视频卡片新增「视频 / 仅音频」切换;仅音频模式可选音质档位(64/132/192kbps AAC、Hi-Res 无损)与输出格式(m4a / mp3 / FLAC,FLAC 仅 Hi-Res 源可选),mp3 / FLAC 走 ffmpeg 转码
- 视频与仅音频互相独立:同一稿件的视频下载与仅音频下载可各下一份,互不冲突
- Windows x64 安装包命名调整:文件名带
-x64后缀(Video-Fetch-v*-Windows-x64.msi/.exe),与 arm64 包区分
修复
- 音频档位在下载时对照 yt-dlp 实际格式表固定到精确音轨,不再出现「选 64kbps 却下载 Hi-Res」的错位
- 仅音频下载不再回退到视频流;无可用音轨时明确报错
- FLAC 校验:非 Hi-Res 档位拒绝 FLAC;无无损音源时不再静默转码出「伪无损」
- Hi-Res 固定选 FLAC:即使同稿 Dolby 码率更高,也不会把无损档挤成带 abr 上限的有损轨
- 多 P 抽样合并音质时,任一集有 Hi-Res 则保留 Hi-Res 档位与文案
- 数据库迁移先检查
audio_format列是否存在再执行 ALTER - 无码率的音轨条目不再显示为「0kbps」档位
- 同名不同容器的音频文件不再互相冲突;另存副本编号只统计同容器文件
- 仅音频模式解析失败时显示错误提示与重试按钮;FLAC 可用性改用结构化标志
下载
- macOS(Apple Silicon):
Video-Fetch-v0.3.1-macOS.dmg(不提供 Intel) - Windows x64:
Video-Fetch-v0.3.1-Windows-x64.msi/.exe - Windows arm64:
Video-Fetch-v0.3.1-Windows-arm64.msi/.exe - Linux x86_64:
Video-Fetch-v0.3.1-Linux-x86_64.AppImage/.deb - Linux arm64:
Video-Fetch-v0.3.1-Linux-arm64.AppImage/.deb
当前发布包未做 Apple / Windows 代码签名。macOS 若提示损坏,把 App 拖到「应用程序」后执行:
xattr -cr "/Applications/Video Fetch.app"What's Changed
Full Changelog: v0.3.0...v0.3.1
Video Fetch v0.3.0
Video Fetch v0.3.0
v0.2.2 之后的维护版本:登录凭证存储改造(不再依赖系统钥匙串)+ 凭证文件可靠性加固,以及文档更新。
重点内容
- 登录凭证不再使用系统钥匙串(#54):此前未签名构建在 macOS 上每次读写钥匙串都会弹出「登录钥匙串」密码框;现在凭证只保存在应用数据目录的本地文件(仅当前用户可读),弹窗问题彻底消失,应用内「退出登录」会同时清除本地凭证
- 凭证文件可靠性加固:写入改为原子替换(临时文件 + 重命名),登录/导入期间崩溃也不会留下损坏文件;若文件意外损坏,应用会按未登录状态继续工作而不是报错,重新登录即可恢复
- README 重写:面向新手的安装与使用说明,补充本地日志与数据存储位置的说明
下载
- macOS(Apple Silicon):
Video-Fetch-v0.3.0-macOS.dmg(不提供 Intel) - Windows x64:
Video-Fetch-v0.3.0-Windows.msi/.exe - Windows arm64:
Video-Fetch-v0.3.0-Windows-arm64.msi/.exe - Linux x86_64:
Video-Fetch-v0.3.0-Linux-x86_64.AppImage/.deb - Linux arm64:
Video-Fetch-v0.3.0-Linux-arm64.AppImage/.deb
当前发布包未做 Apple / Windows 代码签名。macOS 若提示损坏,把 App 拖到「应用程序」后执行:
xattr -cr "/Applications/Video Fetch.app"What's Changed
- feat: store cookies in a local file and bump version to 0.3.0 by @asthetik in #54
- docs: remove no-upload claim from log privacy section by @asthetik in #55
Full Changelog: v0.2.2...v0.3.0
Video Fetch v0.2.2
Video Fetch v0.2.2
v0.2.1 之后的功能版本:清晰度解析提速 + 本地操作日志,以及依赖安全升级。
重点内容
- 清晰度解析提速(#52):单 P 视频改用 B 站 view + WBI 签名的 playurl 直取,冷解析约 1 秒出结果(yt-dlp 仅作兜底);多 P 并发采样并渐进显示;
fnval=4048展示 AVC/HEVC/AV1 全编码,默认选中最高码率。 - 本地操作日志(#53):前后端统一走
tracing管道,记录每次点击、JS 错误与解析/下载/登录/设置等操作;按天分文件、单日超 10MB 自动续号、保留 30 天;应用内新增「日志」页,可查看、刷新、打开目录、清空。 - 依赖安全升级:前端与 Rust 依赖兼容升级。
下载
- macOS(Apple Silicon):
Video-Fetch-v0.2.2-macOS.dmg(不提供 Intel) - Windows x64:
Video-Fetch-v0.2.2-Windows.msi/.exe - Windows arm64:
Video-Fetch-v0.2.2-Windows-arm64.msi/.exe - Linux x86_64:
Video-Fetch-v0.2.2-Linux-x86_64.AppImage/.deb - Linux arm64:
Video-Fetch-v0.2.2-Linux-arm64.AppImage/.deb
当前发布包未做 Apple / Windows 代码签名。macOS 若提示损坏,把 App 拖到「应用程序」后执行:
xattr -cr "/Applications/Video Fetch.app"What's Changed
- Fast Bilibili quality resolve via WBI-signed playurl by @asthetik in #52
- Add local activity log with daily rotation and in-app viewer by @asthetik in #53
Full Changelog: v0.2.1...v0.2.2
Video Fetch v0.2.1
Video Fetch v0.2.1
v0.2.0 的维护版本:安全与权限收紧、B 站登录修复,以及前后端依赖安全升级。
重点内容
- 安全加固:应用权限只保留主窗口所需(
core:default+opener:default),删除前端从未使用的 shell/dialog/webview/window 权限(下载由 Rust 直接启动 yt-dlp/ffmpeg),并启用完整的 Content-Security-Policy - Cookie 安全:登录后只保留
*.bilibili.com的 Cookie,验证码/跟踪 Cookie 不再落盘;拒绝bilibili.com.evil.com之类的仿冒域名 - B 站登录修复:登录窗口改用新版 Chrome UA,不再被风控提示「浏览器等级过低」;每次登录都从干净会话开始(清空浏览数据并确认生效后才打开登录页,避免残留 SESSDATA 自动登录),登出同时清除并关闭登录窗口
- 依赖安全升级:前端修复 nanoid 安全通告并升级 vite 8.2.1;后端
cargo update兼容升级(async-trait、rusqlite、thiserror 及传递依赖补丁) - CI 增强:node:test 单测接入 CI;任意分支 push 都触发 CI,dependabot 分支去重避免重复运行
下载
- macOS(Apple Silicon):
Video-Fetch-v0.2.1-macOS.dmg(不提供 Intel) - Windows x64:
Video-Fetch-v0.2.1-Windows.msi/.exe - Windows arm64:
Video-Fetch-v0.2.1-Windows-arm64.msi/.exe - Linux x86_64:
Video-Fetch-v0.2.1-Linux-x86_64.AppImage/.deb - Linux arm64:
Video-Fetch-v0.2.1-Linux-arm64.AppImage/.deb
当前发布包未做 Apple / Windows 代码签名。macOS 若提示损坏,把 App 拖到「应用程序」后执行:
xattr -cr "/Applications/Video Fetch.app"What's Changed
Full Changelog: v0.2.0...v0.2.1
Video Fetch v0.2.0
Video Fetch v0.2.0
自 v0.1.3 以来的功能与体验里程碑:下载队列与历史大幅优化、主导航过渡动画、批量操作,以及依赖维护。
重点内容
- 批量操作:主页「全部取消」、历史「清空」;确认后保留本地已下载文件
- 解析体验:渐进式 resolve,粘贴链接后更快出现视频卡片
- 下载队列:进行中任务始终置顶;「最近失败」分区(最多 3 条)+ 跳转历史;取消全部后仍可见最近完成
- 界面打磨:列表去红、批量按钮改为小描边按钮;顶栏切换页面有轻量淡入淡出
- 维护:升级 reqwest 0.13;Rust 直接依赖版本下限收紧
下载
- macOS(Apple Silicon):
Video-Fetch-v0.2.0-macOS.dmg(不提供 Intel) - Windows x64:
Video-Fetch-v0.2.0-Windows.msi/.exe - Windows arm64:
Video-Fetch-v0.2.0-Windows-arm64.msi/.exe - Linux x86_64:
Video-Fetch-v0.2.0-Linux-x86_64.AppImage/.deb - Linux arm64:
Video-Fetch-v0.2.0-Linux-arm64.AppImage/.deb
当前发布包未做 Apple / Windows 代码签名。macOS 若提示损坏,把 App 拖到「应用程序」后执行:
xattr -cr "/Applications/Video Fetch.app"What's Changed
- fix: skip keyring in debug DualStore by @asthetik in #43
- feat: bulk cancel downloads and clear history records by @asthetik in #44
- feat: progressive resolve for faster paste-to-card by @asthetik in #45
- fix: clarify bulk confirm dialog dismiss label by @asthetik in #46
- fix: polish queue/history UX with stable sort and recent failures by @asthetik in #47
- feat: soft page transitions for top navigation by @asthetik in #48
- chore: release v0.1.4 and refresh Rust dependencies by @asthetik in #49
- chore: release v0.2.0 by @asthetik in #50
Full Changelog: v0.1.3...v0.2.0
Video Fetch v0.1.3
Video Fetch v0.1.3
Windows 体验与默认下载目录优化;命名与仓库统一为 Video Fetch / video-fetch。
重点内容
- Windows:下载时不再闪黑框(隐藏 yt-dlp 控制台窗口)
- 默认保存目录:首次使用默认指向系统「下载」文件夹
- 命名统一:展示名 Video Fetch,仓库与 crate 为
video-fetch(identifier不变,原有登录数据可继续用)
下载
- macOS(Apple Silicon):
Video-Fetch-v0.1.3-macOS.dmg(不提供 Intel) - Windows x64:
Video-Fetch-v0.1.3-Windows.msi/.exe - Windows arm64:
Video-Fetch-v0.1.3-Windows-arm64.msi/.exe - Linux x86_64:
Video-Fetch-v0.1.3-Linux-x86_64.AppImage/.deb - Linux arm64:
Video-Fetch-v0.1.3-Linux-arm64.AppImage/.deb
当前发布包未做 Apple / Windows 代码签名。macOS 若提示损坏,把 App 拖到「应用程序」后执行:
xattr -cr "/Applications/Video Fetch.app"What's Changed
- docs: update README home screenshot by @asthetik in #40
- fix: hide yt-dlp console flash and default save dir to Downloads (0.1.3) by @asthetik in #41
- chore: align naming with Video Fetch / video-fetch by @asthetik in #42
Full Changelog: v0.1.2...v0.1.3
Video Fetch v0.1.2
Video Fetch v0.1.2
多架构安装包与品牌统一。
重点内容
- 五架构安装包:macOS Apple Silicon、Windows x64 / arm64、Linux x86_64 / arm64
- 统一命名:
Video-Fetch-v0.1.2-{OS}[-arch].{ext} - 品牌:对外显示 Video Fetch
- 多 P 清晰度:从各分 P 采样真实可用高度
- 稍后再看链接:支持 B 站稍后再看 URL
- Windows 取消/挪文件:取消与成品搬迁更稳
下载
- macOS(Apple Silicon):
Video-Fetch-v0.1.2-macOS.dmg(不提供 Intel) - Windows x64:
Video-Fetch-v0.1.2-Windows.msi/.exe - Windows arm64:
Video-Fetch-v0.1.2-Windows-arm64.msi/.exe - Linux x86_64:
Video-Fetch-v0.1.2-Linux-x86_64.AppImage/.deb - Linux arm64:
Video-Fetch-v0.1.2-Linux-arm64.AppImage/.deb
当前发布包未做 Apple / Windows 代码签名。macOS 若提示损坏,把 App 拖到「应用程序」后执行:
xattr -cr "/Applications/Video Fetch.app"What's Changed
- fix: fall back when Bilibili part lacks selected format id by @asthetik in #33
- docs: document unsigned install workarounds by @asthetik in #34
- fix: offer multi-P quality by height, not P1 format ids by @asthetik in #35
- fix: discover multi-P heights from observed formats by @asthetik in #36
- fix: handle watchlater URLs and Windows download cancel/relocate by @asthetik in #37
- Expand multi-arch release packaging for 0.1.2 by @asthetik in #38
- fix: install xdg-utils for Linux AppImage bundling by @asthetik in #39
Full Changelog: v0.1.1...v0.1.2
v0.1.1
新功能
- 下载进度结构化展示:下载队列除百分比外,还会显示实时速度、剩余时间和已下/总量(来自 yt-dlp JSON 进度)
改进
- 进度事件端到端可测,速度/ETA 为实时字段(刷新任务列表后不会从数据库还原)
- 兼容旧版 yt-dlp 文本进度输出
- 关于页版本改为读取
package.json,避免发版后界面版本号滞后
下载
请按系统选择安装包:
- macOS:
VideoFetch_0.1.1_aarch64.dmg - Windows:
VideoFetch_0.1.1_x64-setup.exe或.msi - Linux:
VideoFetch_0.1.1_amd64.AppImage或.deb
What's Changed
- feat: emit structured JSON download progress to the UI by @asthetik in #30
- chore: bump version to 0.1.1 by @asthetik in #31
- fix: sync About page version with package.json by @asthetik in #32
Full Changelog: v0.1.0...v0.1.1
v0.1.0
影取(VideoFetch)首个公开版本
跨平台桌面视频下载器:粘贴链接,解析后下载到本地。本版为最小可行产品(MVP),优先支持哔哩哔哩(B 站);下载引擎为 yt-dlp,安装包已内置 yt-dlp 与 ffmpeg,开箱即可用。
功能亮点
- 粘贴即解析:自动拉取标题、封面、分 P、清晰度等元数据
- 按需下载:选择清晰度与分 P 后加入队列;支持进度、取消、失败重试与历史记录
- B 站登录:内嵌网页登录,或导入 Netscape 格式
cookies.txt - 命名规则:可配置文件名模板,下载前可预览
- 跨平台安装包:macOS / Windows / Linux
下载说明
| 平台 | 文件 |
|---|---|
| macOS(Apple Silicon) | VideoFetch_0.1.0_aarch64.dmg |
| Windows | VideoFetch_0.1.0_x64-setup.exe 或 VideoFetch_0.1.0_x64-setup.msi |
| Linux | VideoFetch_0.1.0_amd64.AppImage 或 VideoFetch_0.1.0_amd64.deb |
Linux AppImage 首次运行前请执行:chmod +x VideoFetch_0.1.0_amd64.AppImage
已知限制
- 目前以 B 站为主;其他站点能力取决于 yt-dlp,体验尚未专门打磨
许可证:Apache-2.0 · 第三方组件见 THIRD_PARTY.md
Full Changelog: https://github.com/asthetik/videofetch/commits/v0.1.0