newpipe-extractor-js
Version:
JavaScript/Node.js port of NewPipeExtractor
86 lines • 2.76 kB
TypeScript
export declare enum PoTokenContext {
GVS = "gvs",
PLAYER = "player",
SUBS = "subs"
}
export declare enum ContentBindingType {
VISITOR_DATA = "visitor_data",
DATASYNC_ID = "datasync_id",
VIDEO_ID = "video_id",
VISITOR_ID = "visitor_id"
}
export interface InnertubeContext {
client: {
clientName: string;
clientVersion: string;
clientScreen?: string;
clientId?: string;
visitorData?: string;
platform?: string;
osName?: string;
osVersion?: string;
deviceModel?: string;
remoteHost?: string;
};
user?: {
lockedSafetyMode?: boolean;
};
request?: {
useSsl?: boolean;
internalExperimentFlags?: string[];
};
}
export interface PoTokenRequest {
context: PoTokenContext;
innertubeContext: InnertubeContext;
innertubeHost?: string;
sessionIndex?: string;
playerUrl?: string;
isAuthenticated: boolean;
videoWebpage?: string;
internalClientName?: string;
visitorData?: string;
dataSyncId?: string;
videoId?: string;
requestCookies: any[];
requestProxy?: string;
requestHeaders: Record<string, string>;
requestTimeout?: number;
requestSourceAddress?: string;
requestVerifyTls: boolean;
bypassCache: boolean;
}
export interface PoTokenResponse {
poToken: string;
expiresAt?: number;
}
export interface PoTokenCacheSpec {
keyBindings: Record<string, string | null>;
defaultTtl: number;
writePolicy: 'WRITE_ALL' | 'WRITE_FIRST';
}
export declare class PoTokenError extends Error {
constructor(message: string);
}
export declare class PoTokenProviderRejectedRequest extends PoTokenError {
constructor(message: string);
}
export declare const WEBPO_CLIENTS: string[];
export declare function getWebPoContentBinding(request: PoTokenRequest, webpoClients?: string[], bindToVisitorId?: boolean): [string | null, ContentBindingType | null];
export declare function generateWebPoCacheSpec(request: PoTokenRequest, bindToVisitorId?: boolean): PoTokenCacheSpec | null;
export declare abstract class PoTokenProvider {
abstract providerName: string;
abstract providerVersion: string;
protected supportedContexts: PoTokenContext[];
abstract requestPoToken(request: PoTokenRequest): Promise<PoTokenResponse>;
supportsContext(context: PoTokenContext): boolean;
validateRequest(request: PoTokenRequest): void;
}
export declare class PoTokenCache {
private cache;
generateCacheKey(spec: PoTokenCacheSpec): string;
get(request: PoTokenRequest): PoTokenResponse | null;
store(request: PoTokenRequest, response: PoTokenResponse): void;
clear(): void;
}
//# sourceMappingURL=PoTokenProvider.d.ts.map