🎬 B站视频字幕摘要总结工具
一个用于获取B站视频字幕并生成结构化摘要的Python命令行工具。支持多种输出格式,可以帮助您快速了解视频内容要点。
- 🔍 自动获取字幕: 支持从B站视频URL自动提取字幕内容
- 🤖 智能摘要: 支持本地摘要和AI摘要(OpenAI、Azure OpenAI)
- 📝 多种格式: 支持Markdown、纯文本、JSON等输出格式
- 🔧 高度可配置: 灵活的配置系统,支持自定义各种参数
- 📊 批量处理: 支持批量处理多个视频
- 🎯 关键信息提取: 自动提取关键要点、主题和关键词
pip install -r requirements.txt# 处理单个视频
python main.py process "https://www.bilibili.com/video/BV1xx411c7mu"
# 指定输出格式
python main.py process "https://www.bilibili.com/video/BV1xx411c7mu" --format markdown
# 直接输出到控制台(不保存文件)
python main.py process "https://www.bilibili.com/video/BV1xx411c7mu" --no-save
# 批量处理
python main.py batch urls.txtbilibili_note.core.bilibili_api: B站API接口,负责获取视频信息和字幕数据bilibili_note.core.subtitle_processor: 字幕处理器,负责清理、合并和格式化字幕bilibili_note.core.summarizer: 摘要生成器,支持本地和AI摘要
bilibili_note.output.formatter: 输出格式化器,支持多种输出格式
bilibili_note.utils.config: 配置管理,支持YAML配置文件
python main.py process [OPTIONS] URL参数:
URL: B站视频链接
选项:
--format, -f: 输出格式 (markdown/txt/json)--language, -l: 字幕语言代码--output, -o: 输出文件路径--no-save: 不保存文件,直接输出到控制台
python main.py batch [OPTIONS] FILE参数:
FILE: 包含视频链接的文本文件(每行一个链接)
选项:
--format, -f: 输出格式 (markdown/txt/json)--language, -l: 字幕语言代码
# 查看当前配置
python main.py config-show
# 设置配置
python main.py config-set --api-type openai --openai-key "your-api-key"
# 初始化配置文件
python main.py init-config工具支持YAML配置文件 (config.yaml),可以自定义各种参数:
bilibili:
headers:
User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
Referer: "https://www.bilibili.com/"
timeout: 30
summarizer:
api_type: "local" # local, openai, azure
openai_api_key: ""
model: "gpt-3.5-turbo"
max_tokens: 1000
temperature: 0.3
output:
format: "markdown" # markdown, txt, json
output_dir: "output"
include_timestamp: true
subtitle:
language: "zh-CN"
merge_threshold: 2.0要使用AI摘要功能,需要配置相应的API密钥:
# 设置OpenAI API密钥
python main.py config-set --api-type openai --openai-key "sk-your-api-key"
# 设置使用的模型
python main.py config-set --model "gpt-4"Bilibili-Note/
├── bilibili_note/ # 主要代码目录
│ ├── core/ # 核心功能模块
│ │ ├── bilibili_api.py # B站API接口
│ │ ├── subtitle_processor.py # 字幕处理
│ │ └── summarizer.py # 摘要生成
│ ├── output/ # 输出格式化
│ │ └── formatter.py # 格式化器
│ ├── utils/ # 工具模块
│ │ └── config.py # 配置管理
│ └── main.py # 主程序CLI
├── tests/ # 测试目录
├── examples/ # 示例文件
├── output/ # 默认输出目录
├── main.py # 入口脚本
├── requirements.txt # 依赖文件
├── config.yaml # 配置文件
└── README.md # 说明文档
- Python 3.7+
- 依赖包见
requirements.txt
# 克隆项目
git clone https://github.com/your-username/Bilibili-Note.git
cd Bilibili-Note
# 安装依赖
pip install -r requirements.txt
# 初始化配置
python main.py init-config# 运行单元测试
python -m pytest tests/
# 测试单个模块
python -m pytest tests/test_bilibili_api.py# 视频标题
## 视频信息
- **标题**: 视频标题
- **作者**: UP主名称
- **时长**: 10:30
- **BV号**: BV1xx411c7mu
## 内容摘要
本视频主要介绍了...
## 关键要点
1. 第一个要点
2. 第二个要点
3. 第三个要点
## 主要话题
`话题1` | `话题2` | `话题3`{
"video_info": {
"title": "视频标题",
"owner": "UP主名称",
"duration": 630,
"bvid": "BV1xx411c7mu"
},
"summary": {
"summary_text": "视频摘要",
"key_points": ["要点1", "要点2"],
"topics": ["话题1", "话题2"]
}
}欢迎提交Issue和Pull Request!
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
本工具仅供学习和研究使用,请遵守B站的服务条款和相关法律法规。