• Stars
    star
    757
  • Rank 59,989 (Top 2 %)
  • Language
    TypeScript
  • License
    GNU Lesser Genera...
  • Created over 6 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

基于 Electron 的多平台直播自动录制软件

License: LGPL v3 client-build

Logo

Live Auto Record

支持多个直播平台的自动录制工具 / NPM 包


关于本项目

这是一个面向多个场景的开源项目

  • 普通用户可以直接使用客户端版本来自动录制需要回顾的直播与弹幕
  • 专业用户可以使用服务端部署来离线自动录制
  • 开发者可以基于插件系统来扩展可用的直播平台,或基于 @autorecord/manager 包和已实现的直播平台插件来做一款新的软件

Built With

客户端

基于 Electron 整合了 http-serverweb 的部分,并对一部分功能做原生化支持。

具有良好的键盘操作支持,预期上可以纯键盘操作。

进入下载页

支持系统

  • 由于 linux 用户群体较少,没有尝试在系统此编译,但理论上可以支持。

预览

录播任务列表
点击查看更多 👉
新增录播任务
录播历史
录播播放器-网页全屏
全局录播配置

开发

# 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,该包实现了频道的模型,自动检查的调度等。

此外还要引入直播平台的支持插件或自己实现自定义的平台支持插件,已知的插件有如下:

你可以通过 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