@bililive-tools/huya-recorder
Version:
bililive-tools huya recorder implemention
117 lines (88 loc) • 4.07 kB
Markdown
# Intro
原项目:https://github.com/WhiteMinds/HuYaRecorder
这是 [biliLive-tools](https://github.com/renmu123/biliLive-tools) 的一个平台插件,为其支持了虎牙平台录制
# 安装
**建议所有录制器和manager包都升级到最新版,我不会对兼容性做过多考虑**
`npm i @bililive-tools/huya-recorder @bililive-tools/manager`
# 使用
```ts
import { createRecorderManager } from "@bililive-tools/manager";
import { provider } from "@bililive-tools/huya-recorder";
const manager = createRecorderManager({ providers: [provider] });
manager.addRecorder({
providerId: provider.id,
channelId: "7734200",
quality: 0,
streamPriorities: [],
sourcePriorities: [],
});
// 录制前请设置好ffmepg的环境变量,或手动指定,具体见`@bililive-tools/manager`文档
manager.startCheckLoop();
```
## 参数
```ts
interface Options {
channelId: string; // 直播间ID,具体解析见文档,也可自行解析
quality: number; // 见画质参数
qualityRetry?: number; // 画质匹配重试次数, -1为强制匹配画质,0为自动配置,正整数为最大匹配次数
streamPriorities: []; // 废弃
titleKeywords?: string; // 禁止录制的标题关键字,英文逗号分开多个
sourcePriorities: []; // 按提供的源优先级去给CDN列表排序,并过滤掉不在优先级配置中的源,在未匹配到的情况下会优先使用TX的CDN,具体参数见 CDN 参数
formatPriorities?: string[]; // 支持,`flv`和`hls` 参数,默认为['flv','hls']
disableAutoCheck?: boolean; // 为 true 时 manager 将跳过自动检查
segment?: number | string; // 分段参数,单位分钟,如果以"B","KB","MB","GB"结尾,会尝试使用文件大小分段,仅推荐在使用mesio录制引擎时使用
disableProvideCommentsWhenRecording?: boolean; // 禁用弹幕录制
saveGiftDanma?: boolean; // 保存礼物弹幕
saveCover?: boolean; // 保存封面
api?: "auto" | "mp" | "web" | "wup"; // 默认为auto,在星秀区使用mp接口,其他使用web接口,你也可以强制指定
videoFormat?: "auto"; // 视频格式: "auto", "ts", "mkv" ,auto模式下, 分段使用 "ts",不分段使用 "mp4"
recorderType?: "auto" | "ffmpeg" | "mesio"; // 底层录制器,使用mesio时videoFormat参数无效
debugLevel?: `verbose` | "basic"; // verbose参数时,录制器会输出更加详细的log
}
```
### 画质
| 画质 | 值 |
| -------- | ----- |
| 2K HDR | 14100 |
| 2K | 14000 |
| HDR(10M) | 4200 |
| 原画 | 0 |
| 蓝光20M | 20000 |
| 蓝光10M | 10000 |
| 蓝光8M | 8000 |
| 蓝光4M | 4000 |
| 超清 | 2000 |
| 流畅 | 500 |
### CDN
不同直播间可能支持的cdn并不一致
| 画质 | 值 |
| -------------------------- | ---- |
| 阿里 | AL |
| 腾讯 | TX |
| 华为 | HW |
| 火山 | HS |
| 网宿 | WS |
| 阿里13 | AL13 |
| 腾讯15 | TX15 |
| 华为16 | HW16 |
| 不知道是啥(可能是虎牙自建) | HYZJ |
### 流格式
hls 可能并不适合 mp 的 api,也许你能找到可以使用的cdn
支持 hls 和 flv
## 直播间ID解析
解析出真实直播间ID
```ts
import { provider } from "@bililive-tools/huya-recorder";
const url = "https://www.huya.com/910323";
const { id } = await provider.resolveChannelInfoFromURL(url);
```
### API 接口选择
虎牙提供多种API接口,可以根据情况选择:
| 接口类型 | 说明 |
| -------- | ---------------------------------------- |
| auto | 一般使用web接口,星秀区使用wup接口 |
| web | 你web看到的东西,星秀区会两分钟分段 |
| wup | 神奇的接口 |
| mp | 小程序接口,也可以录星秀区,但画质差了点 |
# 协议
与原项目保存一致为 LGPL