{"id":13431304,"url":"https://github.com/WhiteMinds/LiveAutoRecord","last_synced_at":"2025-03-16T11:31:28.514Z","repository":{"id":32004909,"uuid":"130979007","full_name":"WhiteMinds/LiveAutoRecord","owner":"WhiteMinds","description":"基于 Electron 的多平台直播自动录制软件","archived":false,"fork":false,"pushed_at":"2024-04-26T10:28:01.000Z","size":10708,"stargazers_count":840,"open_issues_count":89,"forks_count":94,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-11T02:22:00.240Z","etag":null,"topics":["bilibili","douyin","douyu","electron","ffmpeg","huya","typescript","vue"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WhiteMinds.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-25T08:59:23.000Z","updated_at":"2025-03-06T10:42:26.000Z","dependencies_parsed_at":"2024-01-08T14:50:59.312Z","dependency_job_id":"4ce6e8b4-f1df-45e2-b43c-1809a88f0bd8","html_url":"https://github.com/WhiteMinds/LiveAutoRecord","commit_stats":{"total_commits":229,"total_committers":2,"mean_commits":114.5,"dds":0.004366812227074246,"last_synced_commit":"ae124cfec2bfe84d6e36f86640128f43079d5e19"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhiteMinds%2FLiveAutoRecord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhiteMinds%2FLiveAutoRecord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhiteMinds%2FLiveAutoRecord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhiteMinds%2FLiveAutoRecord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WhiteMinds","download_url":"https://codeload.github.com/WhiteMinds/LiveAutoRecord/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243862876,"owners_count":20360232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bilibili","douyin","douyu","electron","ffmpeg","huya","typescript","vue"],"created_at":"2024-07-31T02:01:02.086Z","updated_at":"2025-03-16T11:31:26.005Z","avatar_url":"https://github.com/WhiteMinds.png","language":"TypeScript","readme":"[![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) ![](https://img.shields.io/github/languages/top/WhiteMinds/trial-tower) ![](https://img.shields.io/github/issues/WhiteMinds/LiveAutoRecord) ![](https://img.shields.io/npm/v/@autorecord/manager?label=%40autorecord%2Fmanager) ![](https://img.shields.io/github/v/release/WhiteMinds/LiveAutoRecord?label=client) [![client-build](https://github.com/WhiteMinds/LiveAutoRecord/actions/workflows/release.yml/badge.svg)](https://github.com/WhiteMinds/LiveAutoRecord/actions/workflows/release.yml)\n\n\u003cdiv align=\"center\"\u003e\n  \u003cdiv align=\"center\"\u003e\n    \u003cimg\n      src=\"packages/electron/build/icons/256x256.png\"\n      alt=\"Logo\"\n      width=\"240\"\n    /\u003e\n  \u003c/div\u003e\n  \u003ch3 align=\"center\"\u003eLive Auto Record\u003c/h3\u003e\n  \u003cp align=\"center\"\u003e支持多个直播平台的自动录制工具 / NPM 包\u003c/p\u003e\n  \u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://github.com/WhiteMinds/LiveAutoRecord/issues\"\n      \u003eBug 反馈\u003c/a\n    \u003e\n    ·\n    \u003ca href=\"https://github.com/WhiteMinds/LiveAutoRecord/issues\"\n      \u003e功能建议\u003c/a\n    \u003e\n    ·\n    \u003ca href=\"https://github.com/WhiteMinds/LiveAutoRecord/tree/3.x\"\n      \u003e旧版本\u003c/a\n    \u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cbr /\u003e\n\n## 关于本项目\n\n这是一个面向多个场景的开源项目\n\n- 普通用户可以直接使用客户端版本来自动录制需要回顾的直播与弹幕\n- 专业用户可以使用服务端部署来离线自动录制\n- 开发者可以基于插件系统来扩展可用的直播平台，或基于 `@autorecord/manager` 包和已实现的直播平台插件来做一款新的软件\n\n### Built With\n\n\u003cimg src=\"https://img.shields.io/badge/Lerna-9333EA?style=for-the-badge\u0026logo=lerna\u0026logoColor=white\" /\u003e \u003cimg src=\"https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\" /\u003e \u003cimg src=\"https://img.shields.io/badge/Vite-646CFF?style=for-the-badge\u0026logo=vite\u0026logoColor=white\" /\u003e \u003cimg src=\"https://img.shields.io/badge/Vue.js-4FC08D?style=for-the-badge\u0026logo=vue.js\u0026logoColor=white\" /\u003e \u003cimg src=\"https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white\" /\u003e \u003cimg src=\"https://img.shields.io/badge/Electron-47848F?style=for-the-badge\u0026logo=electron\u0026logoColor=white\" /\u003e \u003cimg src=\"https://img.shields.io/badge/FFmpeg-007808?style=for-the-badge\u0026logo=ffmpeg\u0026logoColor=white\" /\u003e \u003cimg src=\"https://img.shields.io/badge/Express-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white\" /\u003e\n\n## 客户端\n\n基于 Electron 整合了 `http-server` 与 `web` 的部分，并对一部分功能做原生化支持。\n\n具有良好的键盘操作支持，预期上可以纯键盘操作。\n\n[进入下载页](https://github.com/WhiteMinds/LiveAutoRecord/releases/)\n\n#### 支持系统\n\n- \u003cimg src=\"https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white\" align=\"top\" /\u003e\n- \u003cimg src=\"https://img.shields.io/badge/mac%20os-000000?style=for-the-badge\u0026logo=apple\u0026logoColor=white\" align=\"top\" /\u003e\n- 由于 linux 用户群体较少，没有尝试在系统此编译，但理论上可以支持。\n\n#### 预览\n\n\u003ch5 align=\"center\"\u003e录播任务列表\u003c/h5\u003e\n\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"/readme-assets/1.png\" width=\"720\" /\u003e\u003c/div\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e点击查看更多 👉\u003c/summary\u003e\n\n\u003ch5 align=\"center\"\u003e新增录播任务\u003c/h5\u003e\n\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"/readme-assets/5.png\" width=\"720\" /\u003e\u003c/div\u003e\n\n\u003ch5 align=\"center\"\u003e录播历史\u003c/h5\u003e\n\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"/readme-assets/2.png\" width=\"720\" /\u003e\u003c/div\u003e\n\n\u003c!-- #### 录播播放器 --\u003e\n\n\u003c!-- ![](/readme-assets/3.png) --\u003e\n\n\u003ch5 align=\"center\"\u003e录播播放器-网页全屏\u003c/h5\u003e\n\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"/readme-assets/4.png\" width=\"720\" /\u003e\u003c/div\u003e\n\n\u003ch5 align=\"center\"\u003e全局录播配置\u003c/h5\u003e\n\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"/readme-assets/6.png\" width=\"720\" /\u003e\u003c/div\u003e\n\n\u003c/details\u003e\n\n#### 开发\n\n```bash\n# install dependencies\nyarn install\n\n# build client dep packages\ncd packages/shared \u0026\u0026 yarn build\ncd packages/manager \u0026\u0026 yarn build\n\n# dev electron\nyarn app:dev\n\n# build electron application for production\nyarn app:build\n```\n\n## 服务端部署\n\n你可以通过下列命令来进行服务端部署：\n\n```shell\n# 克隆本仓库\ngit clone git@github.com:WhiteMinds/LiveAutoRecord.git \u0026\u0026 cd LiveAutoRecord\n# 安装依赖\nyarn install\n# 编译内部依赖包\ncd packages/shared \u0026\u0026 yarn build\ncd packages/manager \u0026\u0026 yarn build\n# 启动服务端\ncd packages/http-server \u0026\u0026 yarn build \u0026\u0026 yarn start\n# 启动前端（也可以将前端 build 后通过 nginx 等方案来访问）\ncd packages/web \u0026\u0026 yarn preview\n```\n\n#### 开发\n\n```bash\n# install dependencies\nyarn install\n\n# build client dep packages\ncd packages/shared \u0026\u0026 yarn build\ncd packages/manager \u0026\u0026 yarn build\n\n# dev server\ncd packages/http-server \u0026\u0026 yarn start:dev\ncd packages/web \u0026\u0026 yarn dev\n\n# deployment for production\ncd packages/http-server \u0026\u0026 yarn build \u0026\u0026 yarn start # Or start using another method, such as nodemon\ncd packages/web \u0026\u0026 yarn build # Start a web service using a tool such as nginx\n```\n\n## 作为 NPM 包引入\n\n核心的包为 [@autorecord/manager](https://www.npmjs.com/package/@autorecord/manager)，该包实现了频道的模型，自动检查的调度等。\n\n此外还要引入直播平台的支持插件或自己实现自定义的平台支持插件，已知的插件有如下：\n\n- [@autorecord/douyu-recorder](https://www.npmjs.com/package/@autorecord/douyu-recorder)\n- [@autorecord/bilibili-recorder](https://www.npmjs.com/package/@autorecord/bilibili-recorder)\n- [@autorecord/huya-recorder](https://www.npmjs.com/package/@autorecord/huya-recorder)\n- [@autorecord/douyin-recorder](https://www.npmjs.com/package/@autorecord/douyin-recorder)\n\n你可以通过 `yarn add @autorecord/manager ` 或其他包管理器来引入它们。\n\n下面是代码实例，另外 http-server 包也是通过 `@autorecord/manager` 和多个插件实现的，也可以作为开发时的参考。\n\n### Example\n\n```typescript\nimport { createRecorderManager } from '@autorecord/manager'\nimport { provider as providerForDouYu } from '@autorecord/douyu-recorder'\n\nconst manager = createRecorderManager({\n  providers: [providerForDouYu],\n  // ... other options ...\n})\nmanager.addRecorder({\n  providerId: providerForDouYu.id,\n  channelId: '74751',\n  quality: 'highest',\n  streamPriorities: [],\n  sourcePriorities: [],\n  // ... other options ...\n})\nmanager.startCheckLoop()\n```\n\n## 注意事项\n\n软件默认使用 fmp4 格式进行录制，这是综合了抗损坏、实时查看等方面的考虑，如果使用此格式遇到问题，可以手动更换为其他格式。\n\n## Road Map\n\n- 完善弹幕播放器的 UI\n- 完善错误处理\n- 处理一些代码中的 TODO 项\n- 提供文档\n- 增加测试\n- 简化服务端部署流程\n- i18n\n","funding_links":[],"categories":["直播相关工具"],"sub_categories":["直播脚本"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWhiteMinds%2FLiveAutoRecord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FWhiteMinds%2FLiveAutoRecord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWhiteMinds%2FLiveAutoRecord/lists"}