newpipe-extractor-js
Version:
JavaScript/Node.js port of NewPipeExtractor
265 lines • 7 kB
TypeScript
export interface Image {
url: string;
height?: number;
width?: number;
estimatedResolutionLevel?: ResolutionLevel;
}
export declare enum ResolutionLevel {
UNKNOWN = 0,
LOW = 1,
MEDIUM = 2,
HIGH = 3
}
export declare enum MediaFormat {
MPEG_4 = "mp4",
v3GPP = "3gp",
WEBM = "webm",
MP3 = "mp3",
M4A = "m4a",
WEBMA = "webma",
WEBMA_OPUS = "webm",// WebM container with Opus codec
OGG = "ogg",
OPUS = "opus",
FLAC = "flac",// High-quality lossless audio
WAV = "wav",// Uncompressed audio
SRT = "srt",
TRANSCRIPT1 = "transcript1",
TRANSCRIPT2 = "transcript2",
TRANSCRIPT3 = "transcript3",
TTML = "ttml",
VTT = "vtt"
}
export interface AudioStream {
url?: string;
itag?: number;
bitrate?: number;
samplingRate?: number;
audioTrackId?: string;
audioTrackName?: string;
audioTrackType?: AudioTrackType;
format: MediaFormat;
averageBitrate?: number;
quality?: string;
codec?: string;
initRange?: Range;
indexRange?: Range;
approxDurationMs?: number;
contentLength?: number;
signatureCipher?: string;
cipher?: string;
}
export interface VideoStream {
url?: string;
itag?: number;
bitrate?: number;
format: MediaFormat;
resolution?: string;
isVideoOnly?: boolean;
fps?: number;
quality?: string;
codec?: string;
width?: number;
height?: number;
initRange?: Range;
indexRange?: Range;
approxDurationMs?: number;
contentLength?: number;
signatureCipher?: string;
cipher?: string;
}
export interface Range {
start: string;
end: string;
}
export declare enum AudioTrackType {
ORIGINAL = "ORIGINAL",
DUBBED = "DUBBED",
DESCRIPTIVE = "DESCRIPTIVE"
}
export interface StreamInfo {
id: string;
name: string;
url: string;
originalUrl: string;
streamType: StreamType;
uploaderName?: string;
uploaderUrl?: string;
uploaderAvatars: Image[];
thumbnails: Image[];
description?: string;
length: number;
viewCount: number;
uploadDate?: string;
uploaderSubscriberCount?: number;
ageLimit: number;
likeCount?: number;
dislikeCount?: number;
audioStreams: AudioStream[];
videoStreams: VideoStream[];
videoOnlyStreams: VideoStream[];
dashMpdUrl?: string;
hlsUrl?: string;
relatedItems: StreamInfoItem[];
tags: string[];
category?: string;
licence?: string;
languageInfo?: Locale;
privacy?: Privacy;
supportInfo?: string;
hostInfo?: string;
shortFormContent: boolean;
}
export declare enum StreamType {
NONE = "NONE",
VIDEO_STREAM = "VIDEO_STREAM",
AUDIO_STREAM = "AUDIO_STREAM",
LIVE_STREAM = "LIVE_STREAM",
AUDIO_LIVE_STREAM = "AUDIO_LIVE_STREAM",
POST = "POST"
}
export declare enum Privacy {
PUBLIC = "PUBLIC",
UNLISTED = "UNLISTED",
PRIVATE = "PRIVATE",
INTERNAL = "INTERNAL",
OTHER = "OTHER"
}
export interface StreamInfoItem extends InfoItem {
streamType: StreamType;
duration: number;
uploaderName?: string;
uploaderUrl?: string;
uploaderAvatars: Image[];
uploadDate?: string;
viewCount?: number;
shortFormContent: boolean;
}
export interface InfoItem {
infoType: InfoType;
serviceId: number;
url: string;
name: string;
thumbnails: Image[];
}
export declare enum InfoType {
STREAM = "STREAM",
PLAYLIST = "PLAYLIST",
CHANNEL = "CHANNEL",
COMMENT = "COMMENT"
}
export interface ChannelInfo {
id: string;
name: string;
url: string;
originalUrl: string;
avatars: Image[];
banners: Image[];
description?: string;
parentChannelName?: string;
parentChannelUrl?: string;
parentChannelAvatars: Image[];
subscriberCount?: number;
verified: boolean;
relatedItems: InfoItem[];
donationLinks: string[];
tags: string[];
supportInfo?: string;
}
export interface PlaylistInfo {
id: string;
name: string;
url: string;
originalUrl: string;
thumbnails: Image[];
banners: Image[];
uploaderName?: string;
uploaderUrl?: string;
uploaderAvatars: Image[];
streamCount?: number;
description?: string;
relatedItems: StreamInfoItem[];
}
export interface SearchResult {
items: InfoItem[];
suggestion?: string;
corrected?: string;
metaInfo: string[];
errors: string[];
}
export interface Page {
url?: string;
id?: string;
ids?: string[];
cookies?: {
[key: string]: string;
};
}
export interface Locale {
languageCode: string;
countryCode?: string;
}
export interface MetaInfo {
title: string;
content: string;
urls: string[];
}
export interface Comment {
commentId: string;
commentText: string;
uploaderName: string;
uploaderThumbnails: Image[];
uploaderUrl?: string;
uploaderAvatars: Image[];
uploadDate?: string;
likeCount?: number;
textualUploadDate?: string;
replyCount?: number;
replies?: Page;
hearted: boolean;
pinned: boolean;
uploaderVerified: boolean;
creatorReply: boolean;
parentCommentId?: string;
}
export declare class ExtractorException extends Error {
cause?: Error | undefined;
constructor(message: string, cause?: Error | undefined);
}
export declare class ParsingException extends ExtractorException {
constructor(message: string, cause?: Error);
}
export declare class ContentNotAvailableException extends ParsingException {
constructor(message: string, cause?: Error);
}
export declare class GeographicallyRestrictedException extends ContentNotAvailableException {
constructor(message: string, cause?: Error);
}
export declare class AgeRestrictedException extends ContentNotAvailableException {
constructor(message: string, cause?: Error);
}
export declare class PaidContentException extends ContentNotAvailableException {
constructor(message: string, cause?: Error);
}
export declare class PrivateContentException extends ContentNotAvailableException {
constructor(message: string, cause?: Error);
}
export declare class YoutubeMusicPremiumContentException extends ContentNotAvailableException {
constructor(message: string, cause?: Error);
}
export declare class AccountTerminatedException extends ContentNotAvailableException {
constructor(message: string, cause?: Error);
}
export declare class ContentNotSupportedException extends ParsingException {
constructor(message: string, cause?: Error);
}
export declare class ReCaptchaException extends ParsingException {
url: string;
constructor(message: string, url: string, cause?: Error);
}
export declare class NetworkException extends ExtractorException {
constructor(message: string, cause?: Error);
}
export declare class SoundCloudGoPlusContentException extends ContentNotAvailableException {
constructor(message: string, cause?: Error);
}
//# sourceMappingURL=index.d.ts.map