视频下载助手
一个面向 Userscript 管理器的浏览器下载辅助脚本。哔哩哔哩使用浏览器本地请求、下载与合并逻辑;短视频平台通过解析接口提取可下载媒体资源。
功能概览
| 模块 |
能力 |
说明 |
| 哔哩哔哩 |
普通视频、分 P、番剧/剧集、合集 |
默认只下载当前视频;隐藏入口解锁后支持多选 |
| B 站附加资源 |
封面、字幕、弹幕 |
按页面接口返回结果展示 |
| B 站合并 |
JS 原生合并、分离下载、FFmpeg 合并 |
默认推荐 JS 原生合并 |
| 短视频解析 |
抖音、快手、小红书、微博、今日头条、X (Twitter) |
依赖页面数据与站点接口 |
| 快手推荐流 |
new-reco 当前播放内容 |
优先读取页面当前媒体源,成功率取决于页面暴露信息 |
免责声明
- 本工具仅用于个人学习研究用途,禁止用于商业用途。
- 请尊重内容创作者,并优先通过正规渠道观看与下载。
- 脚本由 AI 辅助生成,不保证准确性、完整性、及时性或可靠性。
- 哔哩哔哩下载走浏览器本地请求与本地合并逻辑。
支持环境
| 项目 |
要求 |
| 浏览器 |
Chrome、Edge、Firefox 等现代桌面浏览器 |
| 脚本管理器 |
Tampermonkey、Violentmonkey、Greasemonkey、Scriptcat |
| 关键权限 |
GM_xmlhttpRequest 跨域请求 |
安装
- 安装任意 Userscript 管理器。
- 打开最新发布脚本:
https://github.com/MakotoArai-CN/video-download-helper/releases/latest/download/video-download-helper.user.js。
- 在脚本管理器弹出的安装页中确认安装。
- 如果脚本管理器提示跨域权限,请允许访问 B 站接口、视频域名以及媒体资源域名。
哔哩哔哩使用
适用页面:
https://www.bilibili.com/video/*
https://www.bilibili.com/bangumi/play/*
基础流程:
- 打开 B 站视频、番剧或剧集页面。
- 点击页面上的下载入口打开面板。
- 选择清晰度、视频编码、音频编码和合并方式。
- 点击“开始下载”。
默认行为:
- 即使当前视频有多个分 P,默认也只下载当前正在观看的分 P。
- 未触发隐藏入口时,使用体验与单视频一致。
- 默认勾选当前 P,不主动展示多 P 多选列表。
隐藏多选入口:
- 连续点击面板底部免责声明区域 5 次后,展开分 P / 合集多选列表。
- 解锁后再次点击底部区域,可展开或收起多选列表。
- 多选列表支持全选、取消、反选。
短视频使用
适用平台:
| 平台 |
说明 |
| 抖音 |
支持具体视频页解析 |
| 快手 |
支持作品页;推荐流页会尝试读取当前播放源 |
| 小红书 |
支持图文/视频解析,取决于接口返回 |
| 微博 |
支持视频内容页解析 |
| 今日头条 |
支持视频内容页(/video/)解析 |
| X |
支持视频与图集解析,GIF 可转码为 GIF 文件 |
基础流程:
- 打开受支持平台的具体内容页。
- 点击浮动下载入口。
- 等待脚本解析当前内容。
- 点击下载按钮保存视频、图集、实况图、封面或音频。
队列行为:
- 短视频下载过程中,再次点击下载按钮会尝试解析当前页面并加入等待队列。
- 重复内容不会重复入队。
合并与保存
| 方式 |
行为 |
| JS 原生合并 |
默认方式,在浏览器内合并 DASH 视频流和音频流,输出单个 .mp4 |
| 分离下载 |
分别保存 _video.mp4 和 _audio.m4a |
| FFmpeg 合并 |
尝试动态加载 FFmpeg 前端库,加载失败不影响默认 JS 合并 |
合并失败时,脚本会自动回退为分离保存。
限制说明
- 清晰度取决于账号权限和平台接口返回结果。
- 脚本不会破解付费、DRM 或无权限内容。
- 大文件下载和浏览器内合并会占用较多内存。
- 快手
new-reco 不是具体作品 URL,解析成功率取决于页面是否暴露当前播放视频源或作品 ID。
故障排查
| 问题 |
处理方式 |
| 解析失败 |
刷新页面,确认内容可正常播放,再重新打开下载面板 |
| 下载失败 |
检查 Userscript 管理器是否允许跨域请求和媒体域名访问 |
| 清晰度不可选 |
当前账号可能没有对应清晰度权限 |
| 合并失败 |
使用分离下载,或用本地 ffmpeg 手动合并 |
本地 ffmpeg 合并示例:
ffmpeg -i "input_video.mp4" -i "input_audio.m4a" -c copy "output_merged.mp4"
开发
| 项目 |
路径/命令 |
| 源码入口 |
src/main.ts |
| 配置文件 |
src/config.ts |
| 构建命令 |
bun run build |
| 生成脚本 |
dist/video-download-helper.user.js |