Greasy Fork

Greasy Fork is available in English.

[红狐播放器]音视频下载工具(B站专享版)

适用于从B站跳转的内容,抓取页面中音视频链接并分别下载(推荐配合 ffmpeg 合并)

目前为 2025-05-16 提交的版本,查看 最新版本

作者
在盛夏等待丶
评分
0 0 0
版本
0.1
创建于
2025-05-16
更新于
2025-05-16
大小
7.3 KB
许可证
GPL License
适用于

脚本介绍:
这是用于红狐弹幕播放器的下载工具,能够一键获取原视频的音频和视频文件,下载之后需要用户手动合并(我推荐使用ffmpeg)
下载到的视频大小取决于你选择的当前的分辨率大小,所以默认是最高画质的,使用流量的用户可能需要注意一下文件大小

!注意该脚本有一定门槛!
1.只能用于B站,并且不能直接输出合并后的文件
2.需要自己完成合并工作,推荐ffmpeg,python等,当然也可以自己搜索方案~
3.推荐搭配解析工具使用https://update.greasyfork.icu/scripts/525388/%5BVIP%E5%BD%B1%E8%A7%86%E8%A7%A3%E6%9E%90%E5%B7%A5%E5%85%B7%5D%E7%BA%A2%E7%8B%90%E5%BC%B9%E5%B9%95%E6%92%AD%E6%94%BE%E5%99%A8.user.js
-------------------------------------------------------------------------

废话环节:
❓1. 为什么不推荐把“合并音视频”的功能直接写进 Tampermonkey 脚本(JS)?
📌 答案:
浏览器中的 JavaScript 环境无法进行高效的媒体合并操作,原因包括:

🔒 安全与沙盒限制:
浏览器运行的 JS 是“沙盒环境”,不能访问本地文件系统,也无法执行像 ffmpeg 这样的外部程序。

Tampermonkey 脚本再强也只能模拟点击/下载/改 DOM,不能进行音视频流拼接、重编码等重计算工作。

🧠 技术瓶颈:
虽然有像 ffmpeg.wasm 的 WebAssembly 尝试实现浏览器内合并,但它:

非常慢(因为没有原生 CPU 加速)

占内存大(几十到上百 MB)

兼容性差

加载时间久,体验极差

✅ 所以最佳方案是:
浏览器负责“识别与下载”,本地工具(如 ffmpeg)负责“合并与转码”。


❓2. 为什么下载的视频常常是音视频分离的?
📌 答案:
因为这是现代流媒体网站为了灵活性和性能采用的策略,称为“DASH”或“HLS”协议的特性。

▶ 背后技术:
DASH(Dynamic Adaptive Streaming over HTTP)

HLS(HTTP Live Streaming,苹果的标准)

📦 他们会将视频文件“分轨”:
视频轨(不同清晰度 bitrate)

音频轨(通常是单独 AAC/WAV/MP3)

✅ 原因:
自适应码率切换

网络好就切 1080p,差就 480p

只需要替换视频流,不换音频

节省带宽与缓存

同一个音频轨可以配多个分辨率的视频

不用为每种分辨率复制一份音频

提升体验(无缝切换分辨率)


❓3. 为什么很多网站使用多段 .ts 文件?
📌 答案:
这是 HLS协议的实现方式。这些 .ts 文件叫做“切片”或“分段片段”。

✅ 使用多段 .ts 的原因:
原因 说明
🚀 快速开始播放 用户打开页面时只下载前几个 .ts 片段就能播放,不需下载完整视频
📡 边播边下(流式传输) 每段几秒,节省带宽,提高播放流畅度
🔁 支持分辨率切换 播放器根据网速切换下载不同分辨率的 .ts 列表
🔐 更容易加密 每段 .ts 可以单独加密或打乱顺序,防止用户直接整段下载
📉 防止盗链和资源滥用 因为文件是“碎的”,很难被一次性下载整合

✅ 总结一句话:
分离音视频轨和使用多段 .ts 文件都是为了提高播放体验、节省带宽、并强化版权保护。而浏览器的 JS 脚本主要用于抓取链接,不适合做重的合并处理。