blivechat/README.md

134 lines
4.2 KiB
Markdown
Raw Normal View History

2019-05-22 21:21:03 +08:00
# blivechat
2019-10-06 16:56:40 +08:00
用于OBS的仿YouTube风格的bilibili直播评论栏
2019-05-22 21:21:03 +08:00
2020-02-06 20:31:43 +08:00
最近喜欢看VTuber想为此写些程序于是有了这个东西。~~写到一半发现有类似项目了:[bilibili-live-chat](https://github.com/Tsuk1ko/bilibili-live-chat)、[BiliChat](https://github.com/3Shain/BiliChat)~~
2019-05-22 21:21:03 +08:00
2019-06-22 17:17:30 +08:00
![OBS截图](https://github.com/xfgryujk/blivechat/blob/master/screenshots/obs.png)
![Chrome截图](https://github.com/xfgryujk/blivechat/blob/master/screenshots/chrome.png)
![样式生成器截图](https://github.com/xfgryujk/blivechat/blob/master/screenshots/stylegen.png)
2019-05-22 21:21:03 +08:00
## 特性
2019-10-06 16:56:40 +08:00
* 兼容YouTube直播评论栏的样式
* 金瓜子礼物模仿醒目留言显示
2019-05-22 21:21:03 +08:00
* 高亮舰队、房管、主播的用户名
2019-12-16 23:40:01 +08:00
* 支持屏蔽弹幕、合并相似弹幕等设置
2019-06-22 17:17:30 +08:00
* 自带样式生成器
2020-02-06 20:31:43 +08:00
* 支持自动翻译弹幕、醒目留言到日语
2019-05-22 21:21:03 +08:00
## 使用方法
2020-08-16 10:10:49 +08:00
### 一、本地使用
2019-06-22 17:17:30 +08:00
1. 下载[发布版](https://github.com/xfgryujk/blivechat/releases)仅提供x64 Windows版
2019-05-28 19:05:59 +08:00
2. 双击`blivechat.exe`运行服务器或者用命令行可以指定host和端口号
```bat
2019-07-10 15:30:35 +08:00
blivechat.exe --host 127.0.0.1 --port 12450
2019-05-28 19:05:59 +08:00
```
2020-05-09 22:46:24 +08:00
3. 用浏览器打开[http://localhost:12450](http://localhost:12450)输入房间ID复制房间URL
2019-07-15 21:30:52 +08:00
4. 用样式生成器生成样式复制CSS
2020-02-01 21:27:50 +08:00
5. 在OBS中添加浏览器源输入URL和自定义CSS
2019-05-28 19:05:59 +08:00
2020-05-09 22:46:24 +08:00
**注意事项:**
* 应该先启动blivechat后启动OBS否则网页会加载失败这时应该刷新OBS的浏览器源显示Loaded则加载成功
* 本地使用时不要关闭blivechat.exe那个黑框否则不能继续获取弹幕
* 样式生成器没有列出所有本地字体,但是可以手动输入本地字体
2020-08-16 10:10:49 +08:00
### 二、公共服务器
请优先在本地使用,使用公共服务器会有更大的弹幕延迟,而且服务器故障时可能发生直播事故
2019-10-06 16:56:40 +08:00
* [第三方公共服务器](http://chat.bilisc.com/)
* [仅样式生成器](https://style.vtbs.moe/)
2020-08-16 10:10:49 +08:00
### 三、源代码版自建服务器或在Windows以外平台
0. 由于使用了git子模块clone时需要加上`--recursive`参数:
```sh
git clone --recursive https://github.com/xfgryujk/blivechat.git
```
如果已经clone拉子模块的方法
```sh
git submodule update --init --recursive
```
1. 编译前端需要安装Node.js
2019-05-22 21:21:03 +08:00
```sh
cd frontend
npm i
2019-05-25 01:05:07 +08:00
npm run build
2019-05-22 21:21:03 +08:00
```
2019-07-07 23:01:42 +08:00
2. 运行服务器需要Python3.6以上版本):
2019-05-22 21:21:03 +08:00
```sh
2019-07-07 23:01:42 +08:00
pip3 install -r requirements.txt
2019-05-22 21:21:03 +08:00
python3 main.py
```
2019-05-26 17:14:59 +08:00
或者可以指定host和端口号
```sh
2019-07-10 15:30:35 +08:00
python3 main.py --host 127.0.0.1 --port 12450
2019-05-26 17:14:59 +08:00
```
2019-10-06 16:56:40 +08:00
3. 用浏览器打开[http://localhost:12450](http://localhost:12450),以下略
2019-07-06 01:23:29 +08:00
2020-08-16 10:10:49 +08:00
### 四、Docker自建服务器
2019-07-07 23:01:42 +08:00
1. ```sh
2019-07-10 15:30:35 +08:00
docker run -d -p 12450:12450 xfgryujk/blivechat:latest
2019-07-07 23:01:42 +08:00
```
2019-10-06 16:56:40 +08:00
2. 用浏览器打开[http://localhost:12450](http://localhost:12450),以下略
2020-08-16 10:10:49 +08:00
### nginx配置可选
自建服务器时使用,`sudo vim /etc/nginx/sites-enabled/blivechat.conf`
```conf
upstream blivechat {
# blivechat地址
server 127.0.0.1:12450;
}
# 强制HTTPS
server {
listen 80;
listen [::]:80;
server_name YOUR.DOMAIN.NAME;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name YOUR.DOMAIN.NAME;
# SSL
ssl_certificate /PATH/TO/CERT.crt;
ssl_certificate_key /PATH/TO/CERT_KEY.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 代理header
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 静态文件
location / {
root /PATH/TO/BLIVECHAT/frontend/dist;
# 如果文件不存在,交给前端路由
try_files $uri $uri/ /index.html;
}
# 动态API
location = /server_info {
proxy_pass http://blivechat;
}
# websocket
location = /chat {
proxy_pass http://blivechat;
# 代理websocket必须设置
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
# 由于这个块有proxy_set_header这些不会自动继承
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```