2025-10-21 14:40:27 +08:00

141 lines
3.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** 抖音评论响应(精简版) */
interface DouyinCommentResponse {
status_code: number;
comments: DouyinComment[];
total: number;
}
/** 单条评论(精简版) */
interface DouyinComment {
cid: string;
text: string; // 评论内容
digg_count: number; // 点赞数
create_time: number; // 创建时间(时间戳)
user: DouyinUser; // 评论用户
}
/** 用户信息(精简版) */
interface DouyinUser {
nickname: string; // 用户昵称
avatar_thumb: {
url_list: string[]; // 头像链接(可取第一个)
};
}
/** 抖音视频详情响应(精简版) */
interface DouyinVideoDetailResponse {
status_code: number;
aweme_detail: DouyinVideoDetail;
}
/** 作者信息(精简版) */
interface DouyinAuthor {
uid: string; // 用户ID
sec_uid: string; // 安全UID
nickname: string; // 用户昵称
signature: string; // 个性签名
avatar_thumb: {
url_list: string[]; // 头像URL可取第一个
};
follower_count: number; // 粉丝数
total_favorited: number; // 获赞总数
unique_id: string; // 抖音号
short_id: string; // 短ID
}
/** 视频详情 */
interface DouyinVideoDetail {
aweme_id: string; // 视频ID
desc: string; // 视频描述
preview_title?: string; // 视频标题(有些字段中叫 preview_title
duration: number; // 视频时长(毫秒)
create_time: number; // 创建时间(时间戳)
share_url: string; // 视频分享链接
statistics: {
digg_count: number; // 点赞数
comment_count: number; // 评论数
share_count: number; // 分享数
collect_count: number; // 收藏数
};
author: DouyinAuthor; // 作者信息
video: VideoPlayBasic;
tags: VideoTagBasic[];
}
/** 视频播放信息 */
interface VideoPlayBasic {
/** 多种清晰度/编码的可播放变体(选其一即可) */
bit_rate: PlayVariant[];
/** 大缩略图(如果需要封面) */
big_thumb_url?: string;
}
/** 单个清晰度变体(来自 bit_rate[*] + play_addr */
interface PlayVariant {
format: string; // mp4 等
FPS: number;
bit_rate: number; // bit_rate.bit_rate
/** 直连播放地址(最关键) */
play_addr: {
uri: string;
url_list: string[];
width: number;
height: number;
data_size: number;
FPS: number;
is_bytevc1: number; // 0 or 1
is_h265: number; // 0 or 1
};
}
/** 视频标签(精简) */
interface VideoTagBasic {
tag_id: number;
tag_name: string;
level?: number;
}
/** 图文作品列表响应POST_PATH */
interface DouyinPostListResponse {
status_code: number;
aweme_list: DouyinImageAweme[];
}
/** 图文作品(精简必要字段) */
interface DouyinImageAweme {
aweme_id: string;
desc: string;
create_time: number; // 秒
share_url: string;
statistics: {
digg_count: number;
comment_count: number;
share_count: number;
collect_count: number;
};
author: DouyinAuthor; // 复用视频作者类型(需包含 sec_uid
images: DouyinImageInfo[]; // 图片列表
music?: DouyinMusicBasic; // 背景音乐(可选)
video_tag?: VideoTagBasic[]; // 标签
}
/** 图文作品的单张图片信息(精简) */
interface DouyinImageInfo {
url_list: string[]; // 多种格式webp/jpeg
download_url_list?: string[]; // 可能带水印
width: number;
height: number;
}
/** 音乐基本信息(精简) */
interface DouyinMusicBasic {
id?: number | string;
title?: string;
author?: string;
album?: string;
play_url: {
uri?: string;
url_list: string[]; // 真实可下载地址
};
}