视频下载助手 - 哔哩哔哩
纯本地的视频下载器,使用原生JavaScript对视频音频进行合并并输出,支持登录账号可以观看的最高分辨率视频下载(非破解,下载的清晰度等取决于账号权限),脚本仅供学习研究使用。
總安裝量
225
今日新增
+3
使用者評分
- / 5.0 (0)
目前版本
0.1.1
视频下载助手 - 使用说明
免责声明
- 本工具仅用于个人学习研究用途,禁止用于商业用途,作者/发布者不对违规使用承担责任。请尊重内容创作者并优先通过正规渠道观看与下载。
- 脚本由AI生成,不保证准确性、完整性、及时性、可靠性。因使用本工具而造成的任何法律纠纷,由使用者自行承担。
- 脚本使用纯本地浏览器技术,不涉及任何第三方服务器,不依赖于任何云服务,不会上传任何用户数据,不与任何第三方共享用户数据。
支持环境
- 浏览器扩展: 推荐使用
Tampermonkey/Violentmonkey/Greasemonkey/Scriptcat等 Userscript 管理器(Chrome/Edge/Firefox)。 - 平台: 现代桌面浏览器(支持 GM_xmlhttpRequest 的 Userscript 管理器)。
安装步骤
- 1. 安装 Userscript 管理器:在浏览器中安装
Tampermonkey、脚本猫或Violentmonkey。 - 2. 新建脚本:在扩展中选择“新建脚本”,将
video-download-helper.js的全部内容粘贴进去并保存。 - 3. 允许权限:脚本使用跨域请求(
GM_xmlhttpRequest),如果扩展提示授权域名或跨域权限,请允许以保证下载功能正常。
如何使用
- 打开页面: 访问任意 Bilibili 视频页面(匹配:
*://www.bilibili.com/video/*和*://www.bilibili.com/bangumi/play/*)。 - 呼出面板: 页面右下会出现圆形浮动按钮,点击可展开下载面板。
- 选择分P: 若视频有多分P,可在“选择分P”区域勾选要下载的分P,支持全选/取消/反选。
- 选择清晰度: 在“选择清晰度”区域选择合适的画质(如 1080P、4K 等)。
- 选择合并方式: 可选“JS原生合并”(在浏览器内合并为单个 MP4,推荐)或“分离下载”(分别保存视频与音频)。
- 开始下载: 点击“开始下载”按钮,面板会显示视频/音频/合并的下载进度。完成后会弹出下载完成提示并自动保存文件。
合并与文件保存行为
- 默认合并: 使用内置的
JSMerger(js-merge),直接在浏览器内解析 fMP4/MP4 结构并合并轨道,最后生成一个单一的.mp4文件。 - 失败回退: 若合并失败,脚本会回退到“分别保存视频和音频文件”的方式,文件名带后缀
_video.mp4/_audio.m4a。 - 分离下载: 选择
separate时,脚本不会尝试合并,直接保存两个独立文件以供外部工具合并。
注意事项与限制
- 版权与合规: 仅用于个人学习研究,请遵守网站与内容版权政策。脚本不应用于未经授权的分发或商业用途。
- 付费/受限内容: 对于需要权限、DRM 或付费才可播放的内容,脚本无法获取或下载真实媒体流。
- 跨域与权限: 脚本依赖
GM_xmlhttpRequest进行跨域下载,确保 Userscript 管理器允许脚本跨域访问所需域名(例如api.bilibili.com、视频文件域名等)。 - 浏览器内存与性能: 大文件下载与合并会占用浏览器内存;请根据设备的内存容量及网络状况自行选择,例如设备性能较差时建议使用专业的哔哩哔哩视频下载器。
故障排查
控制台错误: 请打开浏览器开发者工具查看脚本在 Console 的报错信息,常见问题包括:API 请求失败、播放地址获取失败、合并异常。
下载失败: 若下载中途失败,检查是否是跨域被阻止或网络错误;确认 Userscript 扩展允许
GM_xmlhttpRequest。合并失败: 脚本会在合并失败时保存分离文件,合并失败可能由非标准 MP4 片段或浏览器内存引起。可使用 ffmpeg 在本地合并:
# 本地用 ffmpeg 合并示例(Windows PowerShell) ffmpeg -i "input_video.mp4" -i "input_audio.m4a" -c copy "output_merged.mp4"
开发与二次修改
- 位置: 脚本位于项目根:
video-download-helper.js。 - 入口: 脚本在页面加载完毕后调用
init(),创建 UI 并自动尝试Downloader.refreshInfo()。 - 快速调试: 在
init()或控制台中调用Downloader.refreshInfo()、Downloader.start()可手动触发信息刷新或下载流程(仅用于调试)。