Skip to content

xfgryujk/blivechat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e7d8fd0 · Oct 11, 2020
Oct 11, 2020
Oct 11, 2020
Aug 30, 2020
Oct 11, 2020
Sep 3, 2020
Sep 13, 2020
Feb 6, 2020
Sep 5, 2020
May 21, 2019
Sep 12, 2020
May 21, 2019
Sep 5, 2020
May 21, 2019
Oct 11, 2020
Aug 30, 2020
Oct 11, 2020
Feb 3, 2020
Oct 11, 2020

Repository files navigation

blivechat

用于OBS的仿YouTube风格的bilibili直播评论栏

最近喜欢看VTuber,想为此写些程序,于是有了这个东西。写到一半发现有类似项目了:bilibili-live-chatBiliChat

OBS截图
Chrome截图
样式生成器截图

特性

  • 兼容YouTube直播评论栏的样式
  • 金瓜子礼物模仿醒目留言显示
  • 高亮舰队、房管、主播的用户名
  • 支持屏蔽弹幕、合并相似弹幕等设置
  • 自带样式生成器
  • 支持自动翻译弹幕、醒目留言到日语

使用方法

一、本地使用

  1. 下载发布版(仅提供x64 Windows版)
  2. 双击blivechat.exe运行服务器,或者用命令行可以指定host和端口号:
    blivechat.exe --host 127.0.0.1 --port 12450
  3. 用浏览器打开http://localhost:12450,输入房间ID,复制房间URL
  4. 用样式生成器生成样式,复制CSS
  5. 在OBS中添加浏览器源,输入URL和自定义CSS

注意事项:

  • 本地使用时不要关闭blivechat.exe那个黑框,否则不能继续获取弹幕
  • 样式生成器没有列出所有本地字体,但是可以手动输入本地字体

二、公共服务器

请优先在本地使用,使用公共服务器会有更大的弹幕延迟,而且服务器故障时可能发生直播事故

三、源代码版(自建服务器或在Windows以外平台)

  1. 由于使用了git子模块,clone时需要加上--recursive参数:
    git clone --recursive https://github.com/xfgryujk/blivechat.git
    如果已经clone,拉子模块的方法:
    git submodule update --init --recursive
  2. 编译前端(需要安装Node.js):
    cd frontend
    npm i
    npm run build
  3. 运行服务器(需要Python3.6以上版本):
    pip3 install -r requirements.txt
    python3 main.py
    或者可以指定host和端口号:
    python3 main.py --host 127.0.0.1 --port 12450
  4. 用浏览器打开http://localhost:12450,以下略

四、Docker(自建服务器)

  1. docker run --name blivechat -d -p 12450:12450 \
      --mount source=blc-data,target=/blivechat/data \
      --mount source=blc-log,target=/blivechat/log \
      --mount source=blc-frontend,target=/blivechat/frontend/dist \
      xfgryujk/blivechat:latest
  2. 用浏览器打开http://localhost:12450,以下略

nginx配置(可选)

自建服务器时使用,sudo vim /etc/nginx/sites-enabled/blivechat.conf

upstream blivechat {
	keepalive 8;
	# 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;

	# 代理header
	proxy_http_version 1.1;
	proxy_set_header Host $host;
	proxy_set_header Connection "";
	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 /api {
		proxy_pass http://blivechat;
	}
	# websocket
	location = /api/chat {
		proxy_pass http://blivechat;

		# 代理websocket必须设置
		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;
	}
}