Metadata-Version: 2.1
Name: danmaku-tools
Version: 0.0.9
Summary: Process XML Danmaku File from BililiveRecorder
Home-page: https://github.com/valkjsaaa/danmaku_tools
Author: Jackie Yang
Author-email: jackie@jackieyang.me
Project-URL: Bug Tracker, https://github.com/valkjsaaa/danmaku_tools/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE

Bilibili Live Danmaku Tools 哔哩哔哩直播弹幕处理工具
===========================

本工具可用于处理 B站录播姬 产生的弹幕 XML。具体功能有：
1. 分切 弹幕 XML 
2. 合并 弹幕 XML 
3. 分析 弹幕 XML 中的弹幕数量以及礼物价格
4. 分析 弹幕 XML 中的高能点（主要用于生成录播）

### 安装

```bash
pip3 install danmaku_tools
```

### 典型使用例子

#### 合并

根据 flv 文件的长度合并 XML
```bash
python3 -m danmaku_tools.merge_danmaku video_1.xml video_2.xml video_3.xml --video_time ".flv" --output video_combined.xml
```

经常和类似这样的视频合并命令同时使用
```bash
echo "file video_1.flv\n file video_2.flv" > video_input.txt
ffmpeg -f concat -safe 0 -i video_input.txt -c copy video_combined.flv
```

根据 XML 开始时间合并 XML
```bash
python3 -m danmaku_tools.merge_danmaku video_1.xml video_2.xml video_3.xml --output video_combined.xml
```

#### 剪切

从 123.45 秒开始剪切 XML
```bash
python3 -m danmaku_tools.cut_danmaku --start_time 123.45 video_input.xml --output video_output.xml
```

从 123.45 秒到 567.89 开始剪切 XML
```bash
python3 -m danmaku_tools.cut_danmaku --start_time 123.45 --end_time 567.89 video_input.xml --output video_output.xml
```

经常和类似这样的视频剪切命令同时使用
```bash
ffmpeg -ss 123.45 -to 567.89 -i video_input.flv video_output.flv
```

#### 分析流水

```bash
python3 -m danmaku_tools.analyze_danmaku video.xml
```
输出如下：
```
弹幕：46541条
醒目留言：15294.0元
礼物：7366.440000000309元
大航海：10116.0元
大航海类别：{'舰长': 41, '提督': 1}
总流水 32776.44000000031元
```

#### 分析高能

```bash
python3 -m danmaku_tools.danmaku_energy_map video.xml `# 输入 XML 文件` \
  --graph video.he.png `# 高能进度条 png` \
  --he_map he_list.txt `# 高能列表` \
  --sc_list sc_list.txt `# 醒目留言列表` \
  --sc_srt sc.srt `# 醒目留言字幕` \
  --he_time he_time.txt `# 最高能时间点` \
  --he_range he_range.txt `# 最高能时间段`
```
