Windows用户:
- 双击
run.bat文件 - 或者在命令行中运行:
python bilibili_cache_manager.py
macOS/Linux用户:
python bilibili_cache_manager.py程序启动后,会自动检测FFmpeg:
- ✅ 如果已安装FFmpeg,直接进入主界面
- ❌ 如果未安装FFmpeg:
- Windows:弹出提示,选择"是"自动下载(约60MB)
- macOS:提示使用
brew install ffmpeg安装 - Linux:提示使用
sudo apt install ffmpeg安装
- 点击 "选择缓存目录" 按钮
- 浏览并选择B站缓存的根目录
常见的B站缓存位置:
-
Android手机(需要先导出到电脑):
/sdcard/Android/data/tv.danmaku.bili/files/download/
-
Windows客户端:
- 默认:
C:\Users\用户名\Videos\bilibili\ - 可在B站客户端设置中查看
- 默认:
-
macOS客户端:
~/Movies/bilibili/
目录扫描完成后,所有缓存视频会以卡片形式展示:
┌─────────────────────────────────────────────────┐
│ 全冠清陈荣峻:坚守TVB36年... - P1: 头条-陈荣峻 │
│ UP主: 阿欢的名单 | BV号: BV1QZ4y1z7UT │
│ 画质: [480P (14.17 MB) ▼] [播放] [导出] │
└─────────────────────────────────────────────────┘
每个视频卡片包含:
- 标题:视频名称和分P信息
- UP主:上传者昵称
- BV号:视频唯一标识
- 画质选择:下拉菜单选择画质
- 操作按钮:播放和导出
- 从下拉菜单选择画质(默认最高画质)
- 点击 "播放" 按钮
- 程序自动合并音视频(首次需要几秒)
- 系统默认播放器自动打开
提示:
- 播放过的视频会缓存,再次播放秒开
- 临时文件保存在系统临时目录
- 从下拉菜单选择画质
- 点击 "导出" 按钮
- 选择保存位置和文件名
- 等待合并完成
- 选择是否打开文件位置
默认文件名格式:
视频标题_P分P序号_分P名称_画质.mp4
例:全冠清陈荣峻_P1_头条-陈荣峻_480P.mp4
如果在程序运行期间又缓存了新视频,点击 "刷新" 按钮重新扫描。
将鼠标悬停在视频卡片上可以看到完整信息(如果标题被截断)。
可以同时打开多个导出窗口,并行导出多个视频(不建议超过3个)。
可能原因:
- FFmpeg未正确安装
- 音视频文件损坏
解决方法:
- 重启程序,检查FFmpeg状态
- 尝试导出到本地,查看是否成功
- 检查缓存文件是否完整
可能原因:
- 选择的目录不正确
- 缓存未完成下载
解决方法:
- 确认选择的是缓存根目录(包含c_*文件夹)
- 检查目录结构是否符合:
目录/ ├── c_549206412/ │ ├── entry.json ← 必需 │ └── 32/ │ ├── audio.m4s │ └── video.m4s
原因:
- 视频文件很大
- 磁盘性能较差
建议:
- 第一次播放需要合并,之后会使用缓存
- 导出时选择SSD或性能较好的磁盘
- 大文件(>1GB)可能需要等待几分钟
可能原因:
- 系统未安装支持MP4的播放器
解决方法:
- Windows:安装 VLC 或 PotPlayer
- macOS:默认QuickTime支持
- Linux:安装 VLC (
sudo apt install vlc)
B站使用DASH技术:
- audio.m4s:仅包含音频轨道(AAC编码)
- video.m4s:仅包含视频轨道(H.264编码)
- 合并后:完整的MP4文件
使用流复制模式,不重新编码:
ffmpeg -i video.m4s -i audio.m4s -c copy output.mp4优点:
- 速度快(几秒内完成)
- 无质量损失
- 低CPU占用
播放时的临时文件:
- Windows:
%TEMP%\bilibili_cache_player\ - macOS/Linux:
/tmp/bilibili_cache_player/
可以手动清理这些文件以释放空间。
- 快速查找视频:视频列表按标题和分P排序
- 节省空间:播放后的临时文件可定期清理
- 批量导出:可以按住Ctrl同时选择多个导出路径
- 备份缓存:建议定期备份缓存目录,防止数据丢失
如果遇到问题:
- 查看
README.md的常见问题部分 - 确认Python和FFmpeg版本
- 检查缓存文件完整性