@bililive-tools/huya-recorder
Version:
bililive-tools huya recorder implemention
87 lines (86 loc) • 2.52 kB
TypeScript
/**
* 虎牙 WUP 协议客户端
* 参考 DanmakuRender 项目实现
* @see https://github.com/SmallPeaches/DanmakuRender/pull/527/files
*/
declare const WUP_URL = "https://wup.huya.com";
declare const WUP_YST_URL = "https://snmhuya.yst.aisee.tv";
declare const WUP_UA = "HYSDK(Windows, 30000002)_APP(pc_exe&7030003&official)_SDK(trans&2.29.0.5493)";
declare const HUYA_ORIGIN = "https://www.huya.com";
/**
* CDN Token 扩展响应接口
*/
export interface CdnTokenExInfo {
sFlvToken: string;
iExpireTime: number;
ua: string;
}
/**
* UserId 结构体
*/
declare class HuyaUserId {
lUid: number;
sGuid: string;
sToken: string;
sHuYaUA: string;
sCookie: string;
iTokenType: number;
sDeviceId: string;
sQIMEI: string;
constructor();
_writeTo(os: any): void;
_readFrom(is: any): void;
}
/**
* GetCdnTokenExReq 请求结构体
*/
declare class HuyaGetCdnTokenExReq {
sFlvUrl: string;
sStreamName: string;
iLoopTime: number;
tId: HuyaUserId;
iAppId: number;
constructor(streamName?: string);
_writeTo(os: any): void;
_readFrom(is: any): void;
}
/**
* GetCdnTokenExRsp 响应结构体
*/
declare class HuyaGetCdnTokenExRsp {
sFlvToken: string;
iExpireTime: number;
constructor();
_writeTo(os: any): void;
_readFrom(is: any): void;
}
/**
* 生成随机虎牙 UA
*/
declare function generateRandomHuYaUA(): string;
/**
* 构建 getCdnTokenInfoEx 请求
* @param streamName - 流名称
* @returns TARS 编码的请求体
*/
declare function buildGetCdnTokenInfoExRequest(streamName: string, ua: string): Buffer;
/**
* 解码 getCdnTokenInfoEx 响应
* @param responseBytes - 响应二进制数据
* @returns 解码后的响应对象
*/
declare function decodeGetCdnTokenInfoExResponse(responseBytes: Buffer): HuyaGetCdnTokenExRsp;
/**
* 发送 WUP 请求到虎牙服务器
* @param requestBody - 请求体
* @param funcName - 函数名
* @returns 响应体
*/
declare function sendWupRequest(requestBody: Buffer, funcName?: string, ua?: string): Promise<Buffer>;
/**
* 获取 CDN Token 信息(使用 getCdnTokenInfoEx API)
* @param streamName - 流名称
* @returns CDN Token 信息
*/
export declare function getCdnTokenInfoEx(streamName: string): Promise<CdnTokenExInfo>;
export { HuyaUserId, HuyaGetCdnTokenExReq, HuyaGetCdnTokenExRsp, buildGetCdnTokenInfoExRequest, decodeGetCdnTokenInfoExResponse, sendWupRequest, generateRandomHuYaUA, WUP_URL, WUP_YST_URL, WUP_UA, HUYA_ORIGIN, };