关于本项目
这是一个面向多个场景的开源项目
- 普通用户可以直接使用客户端版本来自动录制需要回顾的直播与弹幕
- 专业用户可以使用服务端部署来离线自动录制
- 开发者可以基于插件系统来扩展可用的直播平台,或基于
@autorecord/manager
包和已实现的直播平台插件来做一款新的软件
Built With
客户端
基于 Electron 整合了 http-server
与 web
的部分,并对一部分功能做原生化支持。
具有良好的键盘操作支持,预期上可以纯键盘操作。
支持系统
预览
录播任务列表
开发
# install dependencies
yarn install
# build client dep packages
cd packages/shared && yarn build
cd packages/manager && yarn build
# dev electron
yarn app:dev
# build electron application for production
yarn app:build
服务端部署
你可以通过下列命令来进行服务端部署:
# 克隆本仓库
git clone [email protected]:WhiteMinds/LiveAutoRecord.git && cd LiveAutoRecord
# 安装依赖
yarn install
# 编译内部依赖包
cd packages/shared && yarn build
cd packages/manager && yarn build
# 启动服务端
cd packages/http-server && yarn build && yarn start
# 启动前端(也可以将前端 build 后通过 nginx 等方案来访问)
cd packages/web && yarn preview
开发
# install dependencies
yarn install
# build client dep packages
cd packages/shared && yarn build
cd packages/manager && yarn build
# dev server
cd packages/http-server && yarn start:dev
cd packages/web && yarn dev
# deployment for production
cd packages/http-server && yarn build && yarn start # Or start using another method, such as nodemon
cd packages/web && yarn build # Start a web service using a tool such as nginx
作为 NPM 包引入
核心的包为 @autorecord/manager,该包实现了频道的模型,自动检查的调度等。
此外还要引入直播平台的支持插件或自己实现自定义的平台支持插件,已知的插件有如下:
- @autorecord/douyu-recorder
- @autorecord/bilibili-recorder
- @autorecord/huya-recorder
- @autorecord/douyin-recorder
你可以通过 yarn add @autorecord/manager
或其他包管理器来引入它们。
下面是代码实例,另外 http-server 包也是通过 @autorecord/manager
和多个插件实现的,也可以作为开发时的参考。
Example
import { createRecorderManager } from '@autorecord/manager'
import { provider as providerForDouYu } from '@autorecord/douyu-recorder'
const manager = createRecorderManager({
providers: [providerForDouYu],
// ... other options ...
})
manager.addRecorder({
providerId: providerForDouYu.id,
channelId: '74751',
quality: 'highest',
streamPriorities: [],
sourcePriorities: [],
// ... other options ...
})
manager.startCheckLoop()
注意事项
软件默认使用 fmp4 格式进行录制,这是综合了抗损坏、实时查看等方面的考虑,如果使用此格式遇到问题,可以手动更换为其他格式。
Road Map
- 完善弹幕播放器的 UI
- 完善错误处理
- 处理一些代码中的 TODO 项
- 提供文档
- 增加测试
- 简化服务端部署流程
- i18n