# Qili
**Repository Path**: sauntor/Qili
## Basic Information
- **Project Name**: Qili
- **Description**: Qili 是一款免费且开源的B站直播弹幕语音播报软件,主要适配适配 Windows 及 Linux 平台
- **Primary Language**: QML
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2024-01-12
- **Last Updated**: 2024-11-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Qili弹幕姬 中文|[English](README_en.md)
### 介绍
Qili 是一款免费且开源的B站直播弹幕语音播报软件,主要适配适配 `Windows` 及 `Linux` 平台。
> 主站: https://github.com/sauntor/Qili
> 镜像:https://gitee.com/sauntor/Qili
### 版权声明
本软件使用 [GPL v3](https://www.gnu.org/licenses/gpl-3.0.txt) 进行授权。
### 软件架构
语音播报功能依赖Qt的TextToSpeech引擎,Qt会利用平台系统的TTS组件,
所以(可能)需要安装一些系统组件。
本软件采用模拟浏览器登录的方式从B站获取弹幕数据,当然,不登录也可使用基本功能。
### 计划实现的功能
- [] 适配暗色模式
- [] 历史弹幕存储
- [] 弹幕数据分析
### 已适配系统
1. Windows 10+ x86_64/amd64
1. Ubuntu/Kylin 22.04
2. openSUSE Tumbleweed
### 安装教程
##### Windows
1. 下载 [安装包](https://github.com/sauntor/Qili/releases/download/v1.0.0/Qili-1.0.0-Windows-AMD64.exe)
2. 双击软件包,按照引导进行安装
3. 打开软件并登录(可匿名),在 `设置` 中测试并选择合适的语音
##### openSUSE
1. 安装系统语音组件
```bash
sudo zypper in --recommends speech-dispatcher speech-dispatcher-configure speech-dispatcher-module-espeak espeak-ng
```
2. 下载 [RPM 安装包](https://github.com/sauntor/Qili/releases/download/v1.0.0/me.sauntor.qili-1.0.0-opensuse-tumbleweed.20240105_x86_64.rpm)
3. 单/双击软件包安装,或执行命令
```bash
sudo zypper in me.sauntor.qili-1.0.0-opensuse-tumbleweed.20240105_x86_64.rpm
```
4. (可选)编译安装`mbrola`(自行百度)
5. (可选)运行 `spd-conf -u` 按照引导为**当前用户**生成 `speech-dispatcher` 配置
6. 打开软件并登录(可匿名),在 `设置` 中测试并选择合适的语音
##### Ubuntu/Kylin 22.04
1. 下载 [DEB 安装包](https://github.com/sauntor/Qili/releases/download/v1.0.0/me.sauntor.qili-1.0.0-ubuntu.22.04_x86_64.deb)
2. 打开终端,并用下面的命令安装
```bash
sudo apt install --fix-broken --install-recommends me.sauntor.qili-1.0.0-ubuntu.22.04_x86_64.deb
```
3. (可选)`sudo apt install python3-speechd`
4. (可选)运行 `spd-conf -u` 按照引导为**当前用户**生成 `speech-dispatcher` 配置
5. 打开软件并登录(可匿名),在 `设置` 中测试并选择合适的语音
### 使用说明
1. `房间号` 不限于自己的直播间
2. 匿名登录可能会接收不到直播间的弹幕数据,(由于B站隐私策略,)即使收到弹幕也无法看到用户全名,但仍能接收到用户进入、本场观众数等信息。
3. 连接B站成功后,此程序会隐藏到系统托盘
4. 单击系统托盘图标可显示本场弹幕记录
5. 双击或中键单击系统托盘图标可以 暂停/继续 语音播报(如果系统支持的话)
6. 本软件不会收集用户的任何信息(纯本地软件,无服务端)
### 参与贡献
1. 代码风格:[KDE Code Style](https://community.kde.org/Policies/Frameworks_Coding_Style)
2. 在龙芯等国产硬件上测试并打包本软件
3. bug修复、帮助实现`计划实现的功能`并`Pull Request`
### 编译打包
> 1. 主要依赖:`Qt`(`Widgets` `Network`, `WebSockets` `TextToSpeech`), `brotli`
> 2. 发布时请添加: `-DCMAKE_BUILD_TYPE=Release` 或者 `-DCMAKE_BUILD_TYPE=RelWithDebInfo`
1. openSUSE Tumbleweed
```
# 安装依赖
sudo zypper in -t pattern devel_C_C++ devel_qt6
# 下面的命令可能不需要执行
sudo zypper in --recommends cmake qt6-texttospeech-devel qt6-websockets-devel libbrotli-devel
# 创建编译文件夹
mkdir build && cd build
# (A)初始化编译配置
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -B . -S /path/to/source/of/Qili
# 编译
cmake --build . --clean-first --verbose --target all
# 打包,在 (A) 处的命令上增加参数: -DUSE_CPACK=ON
cpack --config CPackConfig.cmake -G RPM -V
# Qt Creator集成
# 将 (A) 处命令换成
cmake -DDEV_MODE=ON \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$HOME/QiliDev \
-B . \
-S /path/to/source/of/Qili
# 安装
cmake --build . --clean-first --verbose --target install
# 启动QtCreator
LD_LIBRARY_PATH=$HOME/QiliDev/lib64 \
QT_PLUGIN_PATH=$HOME/QiliDev/plugins \
qtcreator
```
2. Ubuntu/Kylin 22.04
```bash
# 安装依赖
sudo apt install --install-recommends \
build-essential \
cmake \
qtbase5-dev \
qtbase5-dev-tools \
qttools5-dev \
qttools5-dev-tools \
libqt5texttospeech5-dev \
libqt5websockets5-dev \
libbrotli-dev
# 创建编译文件夹
mkdir build && cd build
# (A) 初始化编译配置
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_QT5=ON -B . -S /path/to/source/of/Qili
# 编译
cmake --build . --clean-first --verbose --target all
# 打包,另需在 (A) 处的命令上增加参数: -DUSE_CPACK=ON
cpack --config CPackConfig.cmake -G DEB -V
```
### 鸣谢
> 本项目使用或参考了以下项目
1. https://github.com/SocialSisterYi/bilibili-API-collect
2. https://www.qt.io/
3. https://github.com/google/brotli
4. https://github.com/nayuki/QR-Code-generator