mirror of
https://github.com/tiajinsha/JKVideo.git
synced 2026-04-04 22:49:02 +08:00
181 lines
3.4 KiB
TypeScript
181 lines
3.4 KiB
TypeScript
export interface VideoItem {
|
||
bvid: string;
|
||
aid: number;
|
||
title: string;
|
||
pic: string;
|
||
owner: {
|
||
mid: number;
|
||
name: string;
|
||
face: string;
|
||
};
|
||
stat?: {
|
||
view: number;
|
||
danmaku: number;
|
||
reply: number;
|
||
like: number;
|
||
coin: number;
|
||
favorite: number;
|
||
} | null;
|
||
duration: number;
|
||
desc: string;
|
||
cid?: number;
|
||
pages?: Array<{ cid: number; part: string }>;
|
||
goto?: 'av' | 'live';
|
||
roomid?: number;
|
||
online?: number;
|
||
area_name?: string;
|
||
ugc_season?: {
|
||
id: number;
|
||
title: string;
|
||
cover: string;
|
||
ep_count: number;
|
||
sections: Array<{
|
||
episodes: Array<{
|
||
aid: number;
|
||
bvid: string;
|
||
cid: number;
|
||
title: string;
|
||
arc?: { pic: string; stat?: { view: number } };
|
||
}>;
|
||
}>;
|
||
};
|
||
}
|
||
|
||
export interface Comment {
|
||
rpid: number;
|
||
content: { message: string };
|
||
member: {
|
||
uname: string;
|
||
avatar: string;
|
||
};
|
||
like: number;
|
||
ctime: number;
|
||
replies: Comment[] | null;
|
||
}
|
||
|
||
export interface DashSegmentBase {
|
||
initialization: string;
|
||
index_range: string;
|
||
}
|
||
|
||
export interface DashVideoItem {
|
||
id: number;
|
||
baseUrl: string;
|
||
bandwidth: number;
|
||
mimeType: string;
|
||
codecs: string;
|
||
width: number;
|
||
height: number;
|
||
stat:any;
|
||
frameRate: string;
|
||
segment_base?: DashSegmentBase;
|
||
dolby_type?: number; // 1=杜比视界
|
||
hdr_type?: number; // 1=HDR
|
||
}
|
||
|
||
export interface DashAudioItem {
|
||
id: number;
|
||
baseUrl: string;
|
||
bandwidth: number;
|
||
mimeType: string;
|
||
codecs: string;
|
||
segment_base?: DashSegmentBase;
|
||
}
|
||
|
||
export interface PlayUrlResponse {
|
||
durl?: Array<{
|
||
url: string;
|
||
length: number;
|
||
size: number;
|
||
}>;
|
||
dash?: {
|
||
duration: number;
|
||
video: DashVideoItem[];
|
||
audio: DashAudioItem[];
|
||
};
|
||
dolby?: {
|
||
type: number; // 1=杜比全景声
|
||
audio?: DashAudioItem[];
|
||
};
|
||
quality: number;
|
||
accept_quality: number[];
|
||
accept_description: string[];
|
||
}
|
||
|
||
export interface QRCodeInfo {
|
||
url: string;
|
||
qrcode_key: string;
|
||
}
|
||
|
||
export interface VideoShotData {
|
||
img_x_len: number;
|
||
img_y_len: number;
|
||
img_x_size: number;
|
||
img_y_size: number;
|
||
image: string[];
|
||
index: number[]; // frame index per second: index[t] = frame idx at second t
|
||
pvdata?: string;
|
||
}
|
||
|
||
export interface DanmakuItem {
|
||
time: number; // 秒(float),弹幕出现时间
|
||
mode: 1 | 4 | 5; // 1=滚动, 4=底部固定, 5=顶部固定
|
||
fontSize: number;
|
||
color: number; // 0xRRGGBB 十进制整数
|
||
text: string;
|
||
uname?: string;
|
||
isAdmin?: boolean;
|
||
guardLevel?: number; // 0=无, 1=总督, 2=提督, 3=舰长
|
||
medalLevel?: number;
|
||
medalName?: string;
|
||
timeline?: string; // "2024-01-01 12:00:00" 直播弹幕时间戳
|
||
}
|
||
|
||
export interface LiveRoom {
|
||
roomid: number;
|
||
uid: number;
|
||
title: string;
|
||
uname: string;
|
||
face: string;
|
||
cover: string;
|
||
online: number;
|
||
area_name: string;
|
||
parent_area_name: string;
|
||
}
|
||
|
||
export interface LiveRoomDetail {
|
||
roomid: number;
|
||
uid: number;
|
||
title: string;
|
||
description: string;
|
||
live_status: number; // 1=直播中, 0=未开播
|
||
online: number;
|
||
area_name: string;
|
||
parent_area_name: string;
|
||
keyframe: string;
|
||
}
|
||
|
||
export interface LiveAnchorInfo {
|
||
uid: number;
|
||
uname: string;
|
||
face: string;
|
||
}
|
||
|
||
export interface LiveStreamInfo {
|
||
hlsUrl: string;
|
||
flvUrl: string;
|
||
qn: number;
|
||
qualities: { qn: number; desc: string }[];
|
||
}
|
||
|
||
export interface SearchSuggestItem {
|
||
value: string;
|
||
ref: number;
|
||
}
|
||
|
||
export interface HotSearchItem {
|
||
keyword: string;
|
||
show_name: string;
|
||
icon?: string;
|
||
}
|