一个直播录制工具
- 多平台支持:抖音、快手、哔哩哔哩
- 多画质支持:录制画质支持从原画到流畅五档画质
- 自动值守:支持监控开播状态,开播就录制
- 网盘归档:录制的视频支持自动上传到夸克网盘、百度网盘、115网盘、光鸭网盘、联通云盘和移动云盘,可选上传前转换为 MP4
- 本地录像:在浏览器中浏览、在线播放、下载和删除录像文件
- 运行日志:按级别、类别、任务筛选和搜索运行记录,支持导出
1. 准备目录
mkdir -p StreamKeeper && cd StreamKeeper2. 拉取仓库内置docker-compose.yml
curl -fLO https://raw.githubusercontent.com/nianzhibai/StreamKeeper/main/docker-compose.yml3. 启动
docker compose up -d部署完成后访问:
http://服务器IP:8000/,首次访问会要求设置管理员用户名和密码
常用指令
docker compose pull && docker compose up -d # 更新并重启
docker compose logs -f # 查看日志Python版本需要 >= 3.10,并确保系统已安装 FFmpeg
1. 拉取Release页面最新代码并解压(Release 压缩包已包含构建好的网页界面,无需安装 Node.js)
curl -fL https://github.com/nianzhibai/StreamKeeper/releases/latest/download/streamkeeper-source.tar.gz \
| tar -xz2. 进入项目目录并安装
cd StreamKeeper
python3 -m pip install .3. 启动 StreamKeeper
python3 -m stream_keeper部署完成后访问:
http://服务器IP:8000/
直接 git clone 的源码不包含构建好的网页界面,需要先构建一次(Node.js 版本需要 >= 22.12):
git clone https://github.com/nianzhibai/StreamKeeper.git && cd StreamKeeper
(cd frontend && npm ci && npm run build) # 构建网页界面到 src/stream_keeper/web/static
python3 -m pip install .
python3 -m stream_keeper未构建网页界面时,API 仍可正常使用,访问页面会提示构建方法
- 后端:Python + FastAPI,代码在
src/stream_keeper - 网页界面:React 19 + Astryx 设计系统,代码在
frontend/,构建产物输出到src/stream_keeper/web/static(不纳入版本管理)
python3 -m pip install -e '.[dev]'
python3 -m stream_keeper # 启动后端(默认 8000 端口)
cd frontend && npm ci
npm run dev # 启动网页开发服务器,/api 请求代理到后端
npm run build # 类型检查并构建网页界面- 后端地址不是
http://127.0.0.1:8000时,用STREAM_KEEPER_DEV_BACKEND指定 - 测试与检查:
python3 -m pytest、python3 -m ruff check .、cd frontend && npm test && npx astryx doctor --built . - 使用 AI 编程助手修改网页界面前,可先阅读
frontend/AGENTS.md中的 Astryx 使用规范
| 启动方式 | 数据根目录 | 任务和程序配置 | 录像文件 |
|---|---|---|---|
| Docker | 容器内的 /data |
/data/tasks.db |
/data/recordings |
| Python | ~/.streamkeeper/data |
~/.streamkeeper/data/tasks.db |
~/.streamkeeper/data/recordings |
STREAM_KEEPER_BIND_ADDRESS、STREAM_KEEPER_WEB_PORT:StreamKeeper监听的地址和端口STREAM_KEEPER_DATA_DIR:用于更改Python启动时,数据存放的目录,默认~/.streamkeeper/data,对docker无效STREAM_KEEPER_MAX_CONCURRENT_RECORDINGS:最大同时录制数量STREAM_KEEPER_*_COOKIE:抖音、哔哩哔哩、快手的可选登录Cookie(默认不需要配置)STREAM_KEEPER_PROXY:可选代理地址。如果配置了,录制时会使用这个代理STREAM_KEEPER_QUARK_*、STREAM_KEEPER_WOPAN_*、STREAM_KEEPER_BAIDU_*、STREAM_KEEPER_115_*、STREAM_KEEPER_GUANGYA_*:各网盘的登录凭据和目录配置STREAM_KEEPER_UPLOAD_*:网盘上传模式、执行时间、文件等待时间和超时时间TZ:程序时区,默认Asia/Shanghai



