UNPKG

xvdl

Version:

Video downloader for xvideos.com written in pure JavaScript.

89 lines (78 loc) 2.25 kB
import { Readable } from "stream"; import miniget from "miniget"; declare module "xvdl" { export interface RelatedVideos { id: number; thumbnail: string; url: string; title: string; views: string; duration: string; channel: { name: string; url: string; }; } export interface SearchData { id: string, title: string, url: string, duration: string; channel: { url: string; name: string; }; thumbnail: { dynamic: string; static: string; }; } export interface BrowseResult { videos: SearchData[]; lastPage: number; } export type SearchResult = BrowseResult; export interface DownloadOptions extends miniget.Options { type?: "hq" | "lq" | "hls"; } export interface VideoInfo { url: string; title: string; length: number; views: number; streams: { hq: string; lq: string; hls: string; }; thumbnail: string; relatedVideos: RelatedVideos[]; ratings: { likes: string; dislikes: string; }; comments: string; channel: { name: string; url: string; subscribers: string; }; } export class Util { public static getHTML(url: string): Promise<string>; public static getDOM(html: string): Document; public static parseRelated(data: string): RelatedVideos[]; } export class XVDL { public static browse(path?: string): Promise<BrowseResult>; public static getInfo(url: string): Promise<VideoInfo>; public static download(url: string, options?: DownloadOptions): Readable; public static search(query: string, page?: number): Promise<SearchResult>; } export interface ConstantsInterface { BASE_URL: string; SEARCH_HEAD: string; } export const Constants: ConstantsInterface; export const version: string; }