B站视频下载Ai助手(可选分辨率,仅限无版权内容)

检测 bilibili 页面可下载的视频资源,提供分辨率选择与下载按钮。仅用于无版权或可下载内容。

作者
yh xxx
日安装量
2
总安装量
27
评分
0 0 0
版本
2.91
创建于
2025-10-25
更新于
2025-10-25
大小
12.2 KB
许可证
GPL-3.0-or-later
适用于

B站视频下载Ai助手 (v2.91)

这是一个油猴 (Tampermonkey) 脚本,用于在 Bilibili 视频页面添加一个下载助手,以帮助用户下载(仅限无版权或已授权的)视频内容。

本脚本的最大特色是完美解决了 Windows 命令行 (cmd.exe) 在处理中文文件名时的 Illegal byte sequence 编码冲突问题

核心功能

  • 在播放器右上角添加“下载”按钮。
  • 自动解析当前视频的所有 DASH 视频流(不同分辨率)和音频流。
  • 使用 GM_xmlhttpRequest 在后台下载,解决了跨域(bilivideo.com)导致的 download 属性失效问题。
  • 一键复制“合并并删除”命令
    • 规避 cmd 编码BUG:下载纯英文文件名(输入),但合并为中文文件名(输出)。
    • 自动清理:合并成功后,自动删除临时的音视频源文件。

为什么是这个工作流?

本脚本采用“先下载,后合并”的工作流,是为了规避B站的防盗链和 Windows cmd 的编码 BUG。

  1. B站防盗链 (403 Forbidden): B 站服务器会验证 RefererCookieffmpeg 直接请求 URL 会被拒绝。

    • 解决方案:脚本使用 GM_xmlhttpRequest 模拟浏览器下载,它会自动携带所有必需的请求头,下载 100% 成功。
  2. Windows cmd 编码 (Illegal byte sequence)cmd 默认使用 GBK 编码。当 ffmpeg -i "中文名.mp4" 启动时,ffmpeg 期望 UTF-8 但收到了 GBK,导致读取文件失败。

    • 解决方案:利用用户 yhxxx 发现的特性——ffmpeg 读取中文会失败,但写入中文(-c copy "中文名.mp4")是成功的。
    • 因此,脚本下载时使用纯英文(如 BV..._video.mp4)作为输入文件名,但在 cmd 命令中指定中文标题(如 BV..._中文标题.mp4)作为输出文件名,从根源上解决了此问题。

使用流程

  1. 安装 FFmpeg: 确保你的电脑已安装 FFmpeg 并已将其添加到系统环境变量 (PATH) 中。

  2. 打开 B 站视频: 页面加载完成后,播放器右上角会出现“下载”按钮。

  3. 下载源文件: 点击“下载”按钮,在弹出的面板中选择好画质,然后点击“⬇️ 合并下载”。

  4. 等待下载: 浏览器将下载两个纯英文文件(例如:BVxxxx_video.mp4BVxxxx_audio.m4a)。

  5. 复制命令: 等待下载完成后,点击面板上的“复制”按钮。

  6. 执行合并

    • 打开你的“下载”文件夹。
    • 在文件夹的地址栏输入 cmd 并回车,打开命令行。
    • 粘贴刚刚复制的命令,并按回车。
  7. 完成ffmpeg 会自动合并视频,输出带中文标题.mp4 文件,并自动删除两个纯英文的源文件。