Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StreamerHelper

自托管的直播录制、媒体处理与 B 站投稿流水线。

License Release

快速开始 · 能力范围 · 系统架构 · 运维 · 部署文档

StreamerHelper 持续检查配置的直播间,在开播后创建录制任务,并通过队列完成分片存储、转写、媒体处理和投稿。系统由 Web 控制台、后端任务服务、浏览器自动化运行时以及 PostgreSQL、Redis、MinIO 组成。

直播平台 -> 开播检测 -> 录制与分片 -> 对象存储 -> 转写/处理 -> B 站投稿

能力范围

领域 当前能力
直播源 B 站、虎牙、斗鱼、抖音
录制 自动开播检测、分片录制、断线恢复、任务状态追踪
存储 S3 兼容对象存储、MinIO 内置部署、受投稿状态保护的自动清理
媒体处理 FFmpeg 合并与转码、弹幕归档、阿里云 ASR、字幕烧录
投稿 B 站自动投稿、分 P、合集、投稿恢复与状态追踪
认证 B 站扫码登录、抖音浏览器登录与二次验证代理
运维 Web 控制台、BullMQ 队列、健康检查、结构化日志、Server酱通知

投稿目标目前仅为 B 站。不同直播平台的可用画质和鉴权要求由平台接口决定。

快速开始

环境要求

依赖 最低要求
Docker Engine 20.10
Docker Compose v2
Node.js 18
jq 任意受支持版本
可用内存 4 GB

部署

git clone https://github.com/StreamerHelper/infra.git
cd infra

npm ci
./bin/configure init
./bin/control up

configure init 会生成本地配置;control up 会启动基础设施、执行数据库迁移并启动应用服务。

访问入口

服务 默认地址
Web 控制台 http://localhost:7080
队列管理 http://localhost:7080/ui
MinIO 控制台 http://localhost:7091

首次启动后,在 Web 控制台中配置主播、录制策略、平台登录和投稿参数。

配置

运行时配置保存在:

~/.streamer-helper/settings.json

使用配置工具查看或修改:

./bin/configure show
./bin/configure edit

show 会隐藏密码和密钥。修改配置后,重新启动应用服务:

./bin/control app down
./bin/control app up

完整配置项、端口覆盖和外部 S3 接入方式见 部署文档

系统架构

flowchart LR
    User["Browser"] --> Nginx
    Nginx --> Web["Web / Next.js"]
    Nginx --> Backend["Backend / MidwayJS"]
    Backend --> PostgreSQL
    Backend --> Redis["Redis / BullMQ"]
    Backend --> MinIO["MinIO / S3"]
    Backend --> Browser["Browser Runtime"]
    Backend --> Platforms["Live Platforms"]
    Backend --> Bilibili["Bilibili Submission"]
Loading
组件 职责
web 管理主播、任务、内容、投稿和系统设置
web-server 平台适配、录制生命周期、队列处理和 API
browser 抖音 Web 登录与二次验证所需的隔离浏览器
PostgreSQL 主播、任务、凭据和投稿状态
Redis / BullMQ 轮询、录制、转写、上传和清理队列
MinIO / S3 视频分片、弹幕、转写结果和封面
Nginx Web、API 和队列管理入口

运维

# 服务状态
./bin/control status

# 后端日志
./bin/control logs backend

# 更新应用镜像并执行迁移
./bin/control update app

# 停止应用,保留数据库和对象存储
./bin/control app down

数据库、对象存储和配置文件需要分别备份。备份与恢复命令见 数据备份

仓库

仓库 内容
StreamerHelper/infra Docker Compose、配置工具、部署和升级
StreamerHelper/web-server 后端 API、任务处理器和平台适配器
StreamerHelper/web Next.js 管理控制台
StreamerHelper/StreamerHelper 项目入口、Issue、贡献与安全策略

开发

开发环境需要分别检出 infraweb-serverweb

# 基础设施
cd infra
./bin/control infra up

# 后端
cd ../web-server
npm ci
npm run dev

# 前端
cd ../web
pnpm install
pnpm dev

提交代码前运行对应仓库的构建、测试和 lint。具体约定见 CONTRIBUTING.md

安全

settings.json、平台 Cookie、API Key、数据库和对象存储凭据均属于敏感信息:

  • 不要提交运行时配置或登录凭据。
  • 不要将管理端口直接暴露到公网。
  • 生产部署应配置 HTTPS、访问控制和定期备份。
  • 安全漏洞请按 SECURITY.md 私下报告,不要创建公开 Issue。

License

MIT

About

全平台主播录制+投稿服务

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors