@mtatko/tiktok-scraper
Version:
TikTok Scraper & Downloader. Scrape information from User, Trending and HashTag pages and download video posts
158 lines (157 loc) • 3.81 kB
TypeScript
import { SocksProxyAgent } from 'socks-proxy-agent';
export declare type ScrapeType = 'user' | 'hashtag' | 'trend' | 'music' | 'discover_user' | 'discover_hashtag' | 'discover_music' | 'single_user' | 'single_hashtag' | 'single_music' | 'signature' | 'video_meta' | 'video';
export interface Proxy {
socks: boolean;
proxy: string | SocksProxyAgent;
}
export interface Options {
proxy?: string[] | string;
sessionList?: string[];
proxyFile?: string;
sessionFile?: string;
event?: boolean;
useTestEndpoints?: boolean;
by_user_id?: boolean;
download?: boolean;
bulk?: boolean;
cli?: boolean;
asyncBulk?: number;
asyncDownload?: number;
asyncScraping?: number;
filepath?: string;
filetype?: string;
progress?: boolean;
number?: number;
since?: number;
noWaterMark?: boolean;
remove?: string;
fileName?: string;
historyPath?: string;
timeout?: number;
hdVideo?: boolean;
randomUa?: boolean;
webHookUrl?: string;
method?: string;
headers?: Headers;
verifyFp?: string;
}
export interface TikTokConstructor {
download: boolean;
filepath: string;
filetype: string;
useTestEndpoints?: boolean;
proxy: string[] | string;
strictSSL?: boolean;
asyncDownload: number;
asyncScraping: number;
cli?: boolean;
zip?: boolean;
event?: boolean;
progress?: boolean;
bulk?: boolean;
input: string;
number: number;
since: number;
type: ScrapeType;
by_user_id?: boolean;
store_history?: boolean;
historyPath?: string;
noWaterMark?: boolean;
fileName?: string;
timeout?: number;
test?: boolean;
hdVideo?: boolean;
signature?: string;
webHookUrl?: string;
method?: string;
headers: Headers;
verifyFp?: string;
sessionList?: string[];
}
export interface Hashtags {
id: string;
name: string;
title: string;
cover: string[] | string;
}
export interface DuetInfo {
duetFromId: string;
}
export interface EffectStickers {
id: string;
name: string;
}
export interface PostCollector {
id: string;
secretID: string;
text: string;
createTime: number;
authorMeta: {
id: string;
secUid: string;
name: string;
nickName: string;
following?: number;
fans?: number;
heart?: number;
video?: number;
digg?: number;
verified: boolean;
private?: boolean;
signature: string;
avatar: string;
};
musicMeta?: {
musicId: string;
musicName: string;
musicAuthor: string;
musicOriginal: boolean;
musicAlbum: string;
playUrl: string;
coverThumb?: string;
coverMedium?: string;
coverLarge?: string;
duration?: number;
};
covers: {
default: string;
origin: string;
dynamic: string;
};
imageUrl?: string;
longUrl?: string;
webVideoUrl?: string;
videoUrl: string;
videoUrlNoWaterMark?: string;
videoApiUrlNoWaterMark?: string;
videoMeta: {
width: number;
height: number;
ratio?: string;
duration: number;
duetEnabled?: boolean;
stitchEnabled?: boolean;
duetInfo?: DuetInfo;
};
diggCount: number;
shareCount: number;
playCount: number;
commentCount: number;
mentions: string[] | null;
hashtags: Hashtags[];
repeated?: boolean;
downloaded: boolean;
effectStickers: EffectStickers[];
}
export interface Result {
headers: Headers;
collector: PostCollector[];
zip?: string;
json?: string;
csv?: string;
}
export interface Headers {
'user-agent': string;
referer?: string;
cookie?: string;
}