newpipe-extractor-js
Version:
JavaScript/Node.js port of NewPipeExtractor
84 lines • 2.37 kB
TypeScript
import { Locale, StreamInfo, ChannelInfo, PlaylistInfo, SearchResult } from '../types';
export interface ServiceInfo {
name: string;
serviceId: number;
baseUrl: string;
}
export interface LinkHandler {
acceptUrl(url: string): boolean;
getId(url: string): string;
getUrl(id: string): string;
}
export declare abstract class StreamingService {
private serviceInfo;
constructor(serviceInfo: ServiceInfo);
/**
* Get service information
*/
getServiceInfo(): ServiceInfo;
/**
* Get service ID
*/
getServiceId(): number;
/**
* Get service name
*/
getServiceName(): string;
/**
* Get base URL for this service
*/
getBaseUrl(): string;
/**
* Get the link handler for this service
*/
abstract getLinkHandler(): LinkHandler | null;
/**
* Extract stream information from URL
*/
abstract getStreamExtractor(url: string): Promise<StreamInfo>;
/**
* Extract channel information from URL
*/
abstract getChannelExtractor(url: string): Promise<ChannelInfo>;
/**
* Extract playlist information from URL
*/
abstract getPlaylistExtractor(url: string): Promise<PlaylistInfo>;
/**
* Search for content
*/
abstract search(query: string, contentFilters: string[], sortFilter: string, localization: Locale): Promise<SearchResult>;
/**
* Get search suggestions
*/
abstract getSuggestionExtractor(query: string, localization: Locale): Promise<string[]>;
/**
* Get trending/kiosk content
*/
abstract getKioskExtractor(kioskId: string, localization: Locale): Promise<SearchResult>;
/**
* Get available kiosks
*/
abstract getKioskList(): Promise<string[]>;
/**
* Get channel tabs (videos, playlists, etc.)
*/
abstract getChannelTabExtractor(channelUrl: string, tab: string): Promise<SearchResult>;
/**
* Extract comments for a stream
*/
abstract getCommentsExtractor(streamUrl: string): Promise<any>;
/**
* Check if URL is supported by this service
*/
isUrlSupported(url: string): boolean;
/**
* Extract ID from URL
*/
extractId(url: string): string;
/**
* Create URL from ID
*/
createUrl(id: string): string;
}
//# sourceMappingURL=StreamingService.d.ts.map