Skip to content

About

No description or website provided.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

StreamKeeper

StreamKeeper

一个直播录制工具

功能

  • 多平台支持:抖音、快手、哔哩哔哩
  • 多画质支持:录制画质支持从原画到流畅五档画质
  • 自动值守:支持监控开播状态,开播就录制
  • 网盘归档:录制的视频支持自动上传到夸克网盘、百度网盘、115网盘、光鸭网盘、联通云盘和移动云盘,可选上传前转换为 MP4
  • 本地录像:在浏览器中浏览、在线播放、下载和删除录像文件
  • 运行日志:按级别、类别、任务筛选和搜索运行记录,支持导出

预览图

概览页面

录制任务页面

网盘归档页面

快速启动

方式一:Docker 启动(推荐)

1. 准备目录

mkdir -p StreamKeeper && cd StreamKeeper

2. 拉取仓库内置docker-compose.yml

curl -fLO https://raw.githubusercontent.com/nianzhibai/StreamKeeper/main/docker-compose.yml

3. 启动

docker compose up -d

部署完成后访问:http://服务器IP:8000/,首次访问会要求设置管理员用户名和密码

常用指令

docker compose pull && docker compose up -d   # 更新并重启
docker compose logs -f                        # 查看日志

方式二:Python 启动

Python版本需要 >= 3.10,并确保系统已安装 FFmpeg

1. 拉取Release页面最新代码并解压(Release 压缩包已包含构建好的网页界面,无需安装 Node.js)

curl -fL https://github.com/nianzhibai/StreamKeeper/releases/latest/download/streamkeeper-source.tar.gz \
  | tar -xz

2. 进入项目目录并安装

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

.env.example 部分字段说明

  • 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

致谢

About

No description or website provided.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages