chzzk
Version:
네이버 라이브 스트리밍 서비스 CHZZK의 비공식 API 라이브러리
121 lines (120 loc) • 3.06 kB
TypeScript
import { PartialChannel } from "./channel";
import { ChzzkClient } from "../client";
export interface Live {
liveTitle: string;
liveImageUrl: string;
defaultThumbnailImageUrl?: string;
concurrentUserCount: number;
accumulateCount: number;
openDate: string;
liveId: number;
adult: boolean;
chatChannelId: string;
categoryType?: string;
liveCategory?: string;
liveCategoryValue?: string;
channelId: string;
livePlayback: LivePlayback;
channel: PartialChannel;
}
export interface LivePlayback {
meta: {
videoId: string;
streamSeq: number;
liveId: string;
paidLive: boolean;
cdnInfo: {
cdnType: string;
zeroRating: boolean;
};
p2p: boolean;
};
serviceMeta: {
contentType: string;
};
live: {
start: string;
open: string;
timeMachine: boolean;
status: string;
};
api: {
name: string;
path: string;
}[];
media: Media[];
thumbnail: {
snapshotThumbnailTemplate: string;
types: string[];
};
multiview: [];
}
export interface Media {
mediaId: string;
protocol: string;
path: string;
encodingTrack: (VideoEncodingTrack | AudioEncodingTrack)[];
}
export interface EncodingTrack {
encodingTrackId: string;
audioBitRate: number;
audioSamplingRate: number;
audioChannel: number;
avoidReencoding: boolean;
audioOnly: boolean;
}
export interface VideoEncodingTrack extends EncodingTrack {
videoProfile: string;
audioProfile: string;
videoCodec: string;
videoBitRate: number;
videoFrameRate: string;
videoWidth: number;
videoHeight: number;
videoDynamicRange: string;
audioOnly: false | undefined;
}
export interface AudioEncodingTrack extends EncodingTrack {
encodingTrackId: "alow.stream";
path: string;
audioCodec: string;
audioOnly: true;
}
export interface LiveStatus {
liveTitle: string;
status: "OPEN" | "CLOSE";
concurrentUserCount: number;
accumulateCount: number;
adult: boolean;
chatChannelId: string;
categoryType: string;
liveCategory?: string;
liveCategoryValue?: string;
livePollingStatus: LivePollingStatus;
faultStatus?: string;
userAdultStatus?: string;
}
export interface LivePollingStatus {
status: string;
isPublishing: boolean;
playableStatus: string;
trafficThrottling: number;
callPeriodMilliSecond: number;
}
export interface LiveDetail extends Live {
status: "OPEN" | "CLOSE";
closeDate?: string;
chatActive: boolean;
chatAvailableGroup: string;
paidPromotion: boolean;
chatAvailableCondition: string;
minFollowerMinute: number;
livePollingStatus: LivePollingStatus;
userAdultStatus?: string;
}
export declare class ChzzkLive {
private client;
constructor(client: ChzzkClient);
status(channelId: string): Promise<LiveStatus>;
detail(channelId: string): Promise<LiveDetail>;
}