UNPKG

@bililive-tools/huya-recorder

Version:
117 lines (88 loc) 4.07 kB
# 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