BilibiliHistoryFetcher:哔哩哔哩数据管理工具使用教程
BilibiliHistoryFetcher 是一款功能全面的开源工具,专为哔哩哔哩用户打造,可实现观看历史数据的本地备份、深度分析及可视化展示。通过本工具,用户能够轻松完成哔哩哔哩数据备份,掌握观看历史分析的核心方法,构建个人专属的视频内容管理系统。
一、功能特性解析
1.1 历史记录全量备份
核心能力:完整抓取用户在哔哩哔哩的观看历史数据,包括视频标题、观看时长、观看时间等关键信息,并存储于本地 SQLite 数据库中。
适用场景:
- 担心平台数据丢失的用户
- 需要长期保存个人观看记录的研究者
- 希望离线访问历史记录的用户
技术原理:通过模拟浏览器请求获取用户数据,采用增量更新机制避免重复抓取,确保数据完整性的同时提升效率。
1.2 视频内容管理系统
核心能力:支持批量下载用户投稿视频及收藏夹内容,自动管理下载队列与进度,实现视频资源的本地归档。
适用场景:
- 需要离线观看视频的用户
- 希望珍藏优质内容的爱好者
- 网络条件不稳定的使用环境
1.3 多维度数据分析
核心能力:生成多维度的观看行为分析报告,包括观看时长统计、UP主偏好、观看时段分布等。
适用场景:
- 希望了解个人观看习惯的用户
- 需要制作年度观看总结的内容创作者
- 对自己的娱乐时间分配感兴趣的用户
1.4 智能任务调度
核心能力:支持配置定时任务,实现数据自动同步、邮件日志发送等自动化操作。
适用场景:
- 希望零维护成本运行工具的用户
- 需要远程监控工具运行状态的场景
- 追求自动化工作流的技术爱好者
二、快速上手指南
2.1 环境准备
系统要求:
- Python 3.10 或更高版本
- SQLite 3 数据库支持
- FFmpeg 多媒体框架
安装步骤:
-
克隆项目仓库
git clone https://gitcode.com/gh_mirrors/bi/BilibiliHistoryFetcher -
进入项目目录
cd BilibiliHistoryFetcher -
安装依赖包
pip install -r requirements.txt # 安装所有必要的Python依赖
2.2 基础配置
配置文件路径:config/config.yaml
核心配置项:
# 用户认证配置
SESSDATA: "your_sessdata_value" # 从浏览器Cookie中获取的用户认证信息
# 服务器配置
server:
host: "0.0.0.0" # 允许所有网络访问
port: 8899 # API服务端口号
# 数据存储配置
database:
path: "output/bilibili_history.db" # 主数据库存储路径
backup_interval: 7 # 自动备份间隔(天)
⚠️ 注意事项:
- SESSDATA是获取用户数据的关键凭证,需定期更新
- 端口号若被占用,可修改为其他未使用的端口
- 建议定期手动备份output目录,防止数据丢失
2.3 启动服务
原生环境启动:
python main.py # 启动主程序,默认加载config/config.yaml配置
Docker部署:
# 构建镜像
docker build -t bilibili-history:latest -f docker/Dockerfile.cpu .
# 启动容器
docker run -d -p 8899:8899 -v ./config:/app/config -v ./output:/app/output --name bili-history bilibili-history:latest
服务启动后,可通过访问 http://localhost:8899/docs 查看API文档。
三、核心功能操作指南
3.1 如何导出观看历史数据
操作步骤:
- 确保服务已正常启动
- 访问API文档页面
http://localhost:8899/docs - 找到
/export/history接口,点击"Try it out" - 选择导出格式(支持JSON、CSV、Excel)
- 设置时间范围参数,点击"Execute"
参数说明:
| 参数名 | 类型 | 描述 |
|---|---|---|
| start_date | 字符串 | 起始日期,格式YYYY-MM-DD |
| end_date | 字符串 | 结束日期,格式YYYY-MM-DD |
| format | 字符串 | 导出格式,可选json/csv/xlsx |
💡 小技巧:若需要定期导出数据,可结合任务调度功能实现自动化导出。
3.2 如何批量下载收藏夹视频
配置下载参数:
download:
max_concurrent: 3 # 最大并发下载数
timeout: 300 # 下载超时时间(秒)
save_path: "output/download_video" # 视频保存路径
quality: "720p" # 下载画质选择
执行下载命令:
python scripts/collection_download.py --collection_id 123456 # 替换为实际收藏夹ID
📌 提示:收藏夹ID可从B站网页版收藏夹URL中获取,格式通常为
https://space.bilibili.com/xxx/favlist?fid=收藏夹ID
3.3 如何生成年度观看报告
使用步骤:
- 确保已积累至少一个月的观看数据
- 执行分析脚本
python scripts/analyze_bilibili_history.py --year 2023 # 指定年份 - 报告生成路径:
output/analytics/年度报告_2023.html - 使用浏览器打开HTML文件查看完整报告
报告内容:
- 年度观看总时长统计
- 最常观看的UP主排名
- 观看时段分布热力图
- 视频类型偏好分析
3.4 如何配置定时同步任务
编辑调度配置文件:config/scheduler_config.yaml
tasks:
- name: "daily_data_sync" # 任务名称
function: "data_sync.sync" # 执行函数
schedule: "0 2 * * *" # 每天凌晨2点执行
enabled: true # 启用任务
- name: "weekly_backup" # 任务名称
function: "backup.run" # 执行函数
schedule: "0 3 * * 0" # 每周日凌晨3点执行
enabled: true # 启用任务
启动调度服务:
python scripts/scheduler.py # 启动任务调度服务
四、高级技巧与最佳实践
4.1 数据迁移与备份策略
完整迁移步骤:
- 停止当前运行的服务
- 压缩整个output目录
zip -r output_backup.zip output/ # 创建备份压缩包 - 在新环境中解压备份文件
- 确保文件权限正确
chmod -R 755 output/ # 设置目录权限
备份频率建议:
- 日常使用:每周一次完整备份
- 重要数据:启用自动备份功能,设置3-7天的备份间隔
- 迁移前:务必执行手动备份
4.2 高效管理下载内容
空间管理策略:
- 设置自动清理规则,定期删除观看次数少的视频
- 对重要视频进行标记,避免误删除
- 配置视频压缩选项,平衡画质与存储空间
命令示例:
# 清理30天前下载且观看次数少于2次的视频
python scripts/clean_data.py --type video --days 30 --view_count 2
4.3 问题排查与日志分析
查看运行日志:
tail -f output/logs/app.log # 实时查看应用日志
常见问题解决:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 无法获取历史数据 | SESSDATA过期 | 重新获取并更新配置文件 |
| 下载速度慢 | 网络限制 | 调整并发数或使用代理 |
| 报告生成失败 | 数据量过大 | 分时段生成或增加系统内存 |
4.4 社区支持与资源
遇到问题时,可通过以下方式获取帮助:
扫码加入QQ交流群(群号:1030089634),获取最新更新信息和技术支持。
五、总结
BilibiliHistoryFetcher 作为一款强大的哔哩哔哩数据管理工具,不仅能够帮助用户实现观看历史的安全备份,还提供了丰富的数据分析和内容管理功能。通过本教程的指导,您可以快速上手并充分利用工具的各项特性,构建属于自己的个性化视频数据管理系统。
无论是普通用户还是技术爱好者,都能从中找到适合自己的使用方式,让数据管理变得简单高效。随着工具的不断更新迭代,更多实用功能将逐步加入,敬请期待。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0148- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0111
