UNPKG

chzzk

Version:

네이버 라이브 스트리밍 서비스 CHZZK의 비공식 API 라이브러리

142 lines (141 loc) 3.62 kB
import { PartialChannel } from "./channel"; import { ChzzkClient } from "../client"; export interface BaseLive { liveTitle: string; liveImageUrl: string; defaultThumbnailImageUrl?: string; concurrentUserCount: number; accumulateCount: number; openDate: string; liveId: number; adult: boolean; tags: string[]; chatChannelId: string; categoryType?: string; liveCategory?: string; liveCategoryValue?: string; livePlayback: LivePlayback; channel: PartialChannel; } export interface Live extends BaseLive { channelId: string; } 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; paidPromotion: boolean; adult: boolean; krOnlyViewing: boolean; chatChannelId: string; tags: string[]; categoryType: string; liveCategory?: string; liveCategoryValue?: string; livePollingStatus: LivePollingStatus; faultStatus?: string; userAdultStatus?: string; blindType?: string; chatActive: boolean; chatAvailableGroup: string; chatAvailableCondition: string; minFollowerMinute: number; chatDonationRankingExposure: boolean; dropsCampaignNo?: string; liveTokenList: string[]; } export interface LivePollingStatus { status: string; isPublishing: boolean; playableStatus: string; trafficThrottling: number; callPeriodMilliSecond: number; } export interface LiveDetail extends BaseLive { status: "OPEN" | "CLOSE"; closeDate?: string; clipActive: boolean; chatActive: boolean; chatAvailableGroup: string; paidPromotion: boolean; chatAvailableCondition: string; minFollowerMinute: number; p2pQuality: string[]; livePollingStatus: LivePollingStatus; userAdultStatus?: string; chatDonationRankingExposure: boolean; adParameter: { tag: string; }; dropsCampaignNo?: string; } export declare class ChzzkLive { private client; constructor(client: ChzzkClient); status(channelId: string): Promise<LiveStatus>; detail(channelId: string): Promise<LiveDetail>; }