@mks2508/bundlp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +495 -0
- package/dist/core/extractor.d.ts +30 -0
- package/dist/core/extractor.d.ts.map +1 -0
- package/dist/http/client.d.ts +50 -0
- package/dist/http/client.d.ts.map +1 -0
- package/dist/http/retry.d.ts +22 -0
- package/dist/http/retry.d.ts.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19021 -0
- package/dist/innertube/client.d.ts +62 -0
- package/dist/innertube/client.d.ts.map +1 -0
- package/dist/player/ast/analyzer.d.ts +16 -0
- package/dist/player/ast/analyzer.d.ts.map +1 -0
- package/dist/player/ast/extractor.d.ts +35 -0
- package/dist/player/ast/extractor.d.ts.map +1 -0
- package/dist/player/ast/matchers.d.ts +40 -0
- package/dist/player/ast/matchers.d.ts.map +1 -0
- package/dist/player/cache.d.ts +60 -0
- package/dist/player/cache.d.ts.map +1 -0
- package/dist/player/player.d.ts +49 -0
- package/dist/player/player.d.ts.map +1 -0
- package/dist/po-token/botguard/challenge.d.ts +22 -0
- package/dist/po-token/botguard/challenge.d.ts.map +1 -0
- package/dist/po-token/botguard/client.d.ts +25 -0
- package/dist/po-token/botguard/client.d.ts.map +1 -0
- package/dist/po-token/cache/token-cache.d.ts +24 -0
- package/dist/po-token/cache/token-cache.d.ts.map +1 -0
- package/dist/po-token/index.d.ts +14 -0
- package/dist/po-token/index.d.ts.map +1 -0
- package/dist/po-token/manager.d.ts +34 -0
- package/dist/po-token/manager.d.ts.map +1 -0
- package/dist/po-token/minter/web-minter.d.ts +20 -0
- package/dist/po-token/minter/web-minter.d.ts.map +1 -0
- package/dist/po-token/policies.d.ts +18 -0
- package/dist/po-token/policies.d.ts.map +1 -0
- package/dist/po-token/providers/local.provider.d.ts +26 -0
- package/dist/po-token/providers/local.provider.d.ts.map +1 -0
- package/dist/po-token/providers/provider.interface.d.ts +15 -0
- package/dist/po-token/providers/provider.interface.d.ts.map +1 -0
- package/dist/po-token/types.d.ts +160 -0
- package/dist/po-token/types.d.ts.map +1 -0
- package/dist/result/index.d.ts +6 -0
- package/dist/result/index.d.ts.map +1 -0
- package/dist/result/result.types.d.ts +14 -0
- package/dist/result/result.types.d.ts.map +1 -0
- package/dist/result/result.utils.d.ts +32 -0
- package/dist/result/result.utils.d.ts.map +1 -0
- package/dist/streaming/dash/parser.d.ts +37 -0
- package/dist/streaming/dash/parser.d.ts.map +1 -0
- package/dist/streaming/dash/segments.d.ts +58 -0
- package/dist/streaming/dash/segments.d.ts.map +1 -0
- package/dist/streaming/decipher.d.ts +24 -0
- package/dist/streaming/decipher.d.ts.map +1 -0
- package/dist/streaming/drm.d.ts +26 -0
- package/dist/streaming/drm.d.ts.map +1 -0
- package/dist/streaming/formats.d.ts +20 -0
- package/dist/streaming/formats.d.ts.map +1 -0
- package/dist/streaming/hls/parser.d.ts +10 -0
- package/dist/streaming/hls/parser.d.ts.map +1 -0
- package/dist/streaming/hls/segments.d.ts +37 -0
- package/dist/streaming/hls/segments.d.ts.map +1 -0
- package/dist/streaming/processor.d.ts +20 -0
- package/dist/streaming/processor.d.ts.map +1 -0
- package/dist/types/error.types.d.ts +12 -0
- package/dist/types/error.types.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/innertube.types.d.ts +155 -0
- package/dist/types/innertube.types.d.ts.map +1 -0
- package/dist/types/player.types.d.ts +30 -0
- package/dist/types/player.types.d.ts.map +1 -0
- package/dist/types/video.types.d.ts +112 -0
- package/dist/types/video.types.d.ts.map +1 -0
- package/dist/utils/constants.d.ts +129 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/m3u8.d.ts +31 -0
- package/dist/utils/m3u8.d.ts.map +1 -0
- package/dist/utils/xml.d.ts +41 -0
- package/dist/utils/xml.d.ts.map +1 -0
- package/dist/validation/schemas.d.ts +290 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InnerTube API Types
|
|
3
|
+
*/
|
|
4
|
+
export type ClientName = 'WEB' | 'WEB_REMIX' | 'WEB_EMBEDDED_PLAYER' | 'WEB_KIDS' | 'ANDROID' | 'ANDROID_MUSIC' | 'iOS' | 'TVHTML5' | 'MWEB';
|
|
5
|
+
export interface ClientConfig {
|
|
6
|
+
name: ClientName;
|
|
7
|
+
version: string;
|
|
8
|
+
clientId: string;
|
|
9
|
+
apiKey?: string;
|
|
10
|
+
userAgent: string;
|
|
11
|
+
platform?: string;
|
|
12
|
+
sdkVersion?: number;
|
|
13
|
+
deviceModel?: string;
|
|
14
|
+
osName?: string;
|
|
15
|
+
osVersion?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface InnerTubeContext {
|
|
18
|
+
client: {
|
|
19
|
+
clientName: string;
|
|
20
|
+
clientVersion: string;
|
|
21
|
+
hl?: string;
|
|
22
|
+
gl?: string;
|
|
23
|
+
visitorData?: string;
|
|
24
|
+
userAgent?: string;
|
|
25
|
+
platform?: string;
|
|
26
|
+
clientFormFactor?: string;
|
|
27
|
+
clientScreen?: string;
|
|
28
|
+
androidSdkVersion?: number;
|
|
29
|
+
deviceModel?: string;
|
|
30
|
+
osName?: string;
|
|
31
|
+
osVersion?: string;
|
|
32
|
+
};
|
|
33
|
+
user?: {
|
|
34
|
+
lockedSafetyMode: boolean;
|
|
35
|
+
};
|
|
36
|
+
request?: {
|
|
37
|
+
useSsl: boolean;
|
|
38
|
+
internalExperimentFlags?: unknown[];
|
|
39
|
+
};
|
|
40
|
+
thirdParty?: {
|
|
41
|
+
embedUrl: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface InnerTubePayload {
|
|
45
|
+
context: InnerTubeContext;
|
|
46
|
+
videoId: string;
|
|
47
|
+
playbackContext?: {
|
|
48
|
+
contentPlaybackContext: {
|
|
49
|
+
signatureTimestamp?: number;
|
|
50
|
+
html5Preference?: string;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
contentCheckOk?: boolean;
|
|
54
|
+
racyCheckOk?: boolean;
|
|
55
|
+
serviceIntegrityDimensions?: {
|
|
56
|
+
poToken?: string;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export interface PlayerResponse {
|
|
60
|
+
playabilityStatus: PlayabilityStatus;
|
|
61
|
+
videoDetails?: VideoDetails;
|
|
62
|
+
streamingData?: StreamingData;
|
|
63
|
+
captions?: CaptionsData;
|
|
64
|
+
microformat?: MicroformatData;
|
|
65
|
+
storyboards?: StoryboardData;
|
|
66
|
+
}
|
|
67
|
+
export interface PlayabilityStatus {
|
|
68
|
+
status: 'OK' | 'UNPLAYABLE' | 'LOGIN_REQUIRED' | 'AGE_CHECK_REQUIRED' | 'ERROR';
|
|
69
|
+
reason?: string;
|
|
70
|
+
playableInEmbed?: boolean;
|
|
71
|
+
liveStreamability?: unknown;
|
|
72
|
+
}
|
|
73
|
+
export interface VideoDetails {
|
|
74
|
+
videoId: string;
|
|
75
|
+
title: string;
|
|
76
|
+
lengthSeconds: string;
|
|
77
|
+
channelId: string;
|
|
78
|
+
shortDescription: string;
|
|
79
|
+
thumbnail: {
|
|
80
|
+
thumbnails: Array<{
|
|
81
|
+
url: string;
|
|
82
|
+
width: number;
|
|
83
|
+
height: number;
|
|
84
|
+
}>;
|
|
85
|
+
};
|
|
86
|
+
viewCount: string;
|
|
87
|
+
author: string;
|
|
88
|
+
isLiveContent: boolean;
|
|
89
|
+
isPrivate: boolean;
|
|
90
|
+
keywords?: string[];
|
|
91
|
+
}
|
|
92
|
+
export interface StreamingData {
|
|
93
|
+
expiresInSeconds: string;
|
|
94
|
+
formats?: RawFormat[];
|
|
95
|
+
adaptiveFormats?: RawFormat[];
|
|
96
|
+
hlsManifestUrl?: string;
|
|
97
|
+
dashManifestUrl?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface RawFormat {
|
|
100
|
+
itag: number;
|
|
101
|
+
url?: string;
|
|
102
|
+
signatureCipher?: string;
|
|
103
|
+
cipher?: string;
|
|
104
|
+
mimeType: string;
|
|
105
|
+
bitrate: number;
|
|
106
|
+
width?: number;
|
|
107
|
+
height?: number;
|
|
108
|
+
fps?: number;
|
|
109
|
+
qualityLabel?: string;
|
|
110
|
+
quality: string;
|
|
111
|
+
audioQuality?: string;
|
|
112
|
+
audioSampleRate?: string;
|
|
113
|
+
audioChannels?: number;
|
|
114
|
+
contentLength?: string;
|
|
115
|
+
approxDurationMs?: string;
|
|
116
|
+
initRange?: {
|
|
117
|
+
start: string;
|
|
118
|
+
end: string;
|
|
119
|
+
};
|
|
120
|
+
indexRange?: {
|
|
121
|
+
start: string;
|
|
122
|
+
end: string;
|
|
123
|
+
};
|
|
124
|
+
lastModified?: string;
|
|
125
|
+
drmFamilies?: string[];
|
|
126
|
+
}
|
|
127
|
+
export interface CaptionsData {
|
|
128
|
+
playerCaptionsTracklistRenderer?: {
|
|
129
|
+
captionTracks?: CaptionTrack[];
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export interface CaptionTrack {
|
|
133
|
+
baseUrl: string;
|
|
134
|
+
languageCode: string;
|
|
135
|
+
name: {
|
|
136
|
+
simpleText: string;
|
|
137
|
+
};
|
|
138
|
+
kind?: string;
|
|
139
|
+
isTranslatable?: boolean;
|
|
140
|
+
}
|
|
141
|
+
export interface MicroformatData {
|
|
142
|
+
playerMicroformatRenderer?: {
|
|
143
|
+
uploadDate?: string;
|
|
144
|
+
publishDate?: string;
|
|
145
|
+
category?: string;
|
|
146
|
+
isFamilySafe?: boolean;
|
|
147
|
+
lengthSeconds?: string;
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
export interface StoryboardData {
|
|
151
|
+
playerStoryboardSpecRenderer?: {
|
|
152
|
+
spec?: string;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=innertube.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"innertube.types.d.ts","sourceRoot":"","sources":["../../src/types/innertube.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Player Types - Cipher extraction
|
|
3
|
+
*/
|
|
4
|
+
export interface PlayerInfo {
|
|
5
|
+
playerId: string;
|
|
6
|
+
playerUrl: string;
|
|
7
|
+
signatureTimestamp: number;
|
|
8
|
+
sigFunction: CipherFunction;
|
|
9
|
+
nFunction: CipherFunction;
|
|
10
|
+
cachedAt: number;
|
|
11
|
+
}
|
|
12
|
+
export type CipherFunction = (input: string) => string;
|
|
13
|
+
export interface SignatureCipher {
|
|
14
|
+
signature: string;
|
|
15
|
+
signatureParam: string;
|
|
16
|
+
url: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ExtractedFunctions {
|
|
19
|
+
sigFunctionCode: string;
|
|
20
|
+
nFunctionCode: string;
|
|
21
|
+
signatureTimestamp: number;
|
|
22
|
+
helperCode: string;
|
|
23
|
+
}
|
|
24
|
+
export interface PlayerCache {
|
|
25
|
+
get(playerId: string): PlayerInfo | null;
|
|
26
|
+
set(playerId: string, player: PlayerInfo): void;
|
|
27
|
+
has(playerId: string): boolean;
|
|
28
|
+
clear(): void;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=player.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player.types.d.ts","sourceRoot":"","sources":["../../src/types/player.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,cAAc,CAAC;IAC5B,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACzC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAChD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,KAAK,IAAI,IAAI,CAAC;CACf"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Video Types for bundlp
|
|
3
|
+
*/
|
|
4
|
+
export interface VideoInfo {
|
|
5
|
+
id: string;
|
|
6
|
+
title: string;
|
|
7
|
+
description: string;
|
|
8
|
+
duration: number;
|
|
9
|
+
uploadDate?: string;
|
|
10
|
+
channel: ChannelInfo;
|
|
11
|
+
viewCount: number;
|
|
12
|
+
likeCount?: number;
|
|
13
|
+
thumbnails: Thumbnail[];
|
|
14
|
+
formats: FormatCollection;
|
|
15
|
+
subtitles: Map<string, Subtitle[]>;
|
|
16
|
+
chapters?: Chapter[];
|
|
17
|
+
isLive: boolean;
|
|
18
|
+
isPrivate: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface ChannelInfo {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
url: string;
|
|
24
|
+
}
|
|
25
|
+
export interface Thumbnail {
|
|
26
|
+
url: string;
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
}
|
|
30
|
+
export interface FormatCollection {
|
|
31
|
+
combined: Format[];
|
|
32
|
+
video: Format[];
|
|
33
|
+
audio: Format[];
|
|
34
|
+
hls?: HlsInfo;
|
|
35
|
+
dash?: DashInfo;
|
|
36
|
+
}
|
|
37
|
+
export interface Format {
|
|
38
|
+
itag: number;
|
|
39
|
+
url: string;
|
|
40
|
+
mimeType: string;
|
|
41
|
+
codecs: string[];
|
|
42
|
+
bitrate?: number;
|
|
43
|
+
width?: number;
|
|
44
|
+
height?: number;
|
|
45
|
+
fps?: number;
|
|
46
|
+
qualityLabel?: string;
|
|
47
|
+
quality?: string;
|
|
48
|
+
audioQuality?: string;
|
|
49
|
+
audioSampleRate?: number;
|
|
50
|
+
audioChannels?: number;
|
|
51
|
+
contentLength?: number;
|
|
52
|
+
initRange?: {
|
|
53
|
+
start: string;
|
|
54
|
+
end: string;
|
|
55
|
+
};
|
|
56
|
+
indexRange?: {
|
|
57
|
+
start: string;
|
|
58
|
+
end: string;
|
|
59
|
+
};
|
|
60
|
+
approxDurationMs?: number;
|
|
61
|
+
targetDurationSec?: number;
|
|
62
|
+
hasDrm: boolean;
|
|
63
|
+
isAdaptive: boolean;
|
|
64
|
+
}
|
|
65
|
+
export interface AudioFormat extends Format {
|
|
66
|
+
audioSampleRate: number;
|
|
67
|
+
audioChannels: number;
|
|
68
|
+
loudnessDb?: number;
|
|
69
|
+
}
|
|
70
|
+
export interface VideoFormat extends Format {
|
|
71
|
+
width: number;
|
|
72
|
+
height: number;
|
|
73
|
+
fps: number;
|
|
74
|
+
qualityLabel: string;
|
|
75
|
+
}
|
|
76
|
+
export interface HlsInfo {
|
|
77
|
+
manifestUrl: string;
|
|
78
|
+
variants: HlsVariant[];
|
|
79
|
+
}
|
|
80
|
+
export interface HlsVariant {
|
|
81
|
+
url: string;
|
|
82
|
+
bandwidth: number;
|
|
83
|
+
resolution?: string;
|
|
84
|
+
codecs?: string;
|
|
85
|
+
}
|
|
86
|
+
export interface DashInfo {
|
|
87
|
+
manifestUrl: string;
|
|
88
|
+
duration: number;
|
|
89
|
+
}
|
|
90
|
+
export interface Subtitle {
|
|
91
|
+
url: string;
|
|
92
|
+
language: string;
|
|
93
|
+
languageName: string;
|
|
94
|
+
isAutoGenerated: boolean;
|
|
95
|
+
format: 'vtt' | 'ttml' | 'srv1' | 'srv2' | 'srv3' | 'json3';
|
|
96
|
+
}
|
|
97
|
+
export interface Chapter {
|
|
98
|
+
title: string;
|
|
99
|
+
startTime: number;
|
|
100
|
+
endTime: number;
|
|
101
|
+
thumbnail?: Thumbnail;
|
|
102
|
+
}
|
|
103
|
+
export interface Storyboard {
|
|
104
|
+
templateUrl: string;
|
|
105
|
+
width: number;
|
|
106
|
+
height: number;
|
|
107
|
+
count: number;
|
|
108
|
+
interval: number;
|
|
109
|
+
columns: number;
|
|
110
|
+
rows: number;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=video.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video.types.d.ts","sourceRoot":"","sources":["../../src/types/video.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
export declare const YOUTUBE_BASE_URL = "https://www.youtube.com";
|
|
2
|
+
export declare const INNER_TUBE_API_URL = "https://www.youtube.com/youtubei/v1";
|
|
3
|
+
export declare const VIDEO_ID_LENGTH = 11;
|
|
4
|
+
export declare const RETRY_DEFAULTS: {
|
|
5
|
+
readonly RETRIES: 3;
|
|
6
|
+
readonly DELAY: 1000;
|
|
7
|
+
readonly BACKOFF: 2;
|
|
8
|
+
readonly MAX_DELAY: 30000;
|
|
9
|
+
};
|
|
10
|
+
export declare const INNERTUBE_CLIENTS: {
|
|
11
|
+
readonly WEB: {
|
|
12
|
+
readonly NAME: "WEB";
|
|
13
|
+
readonly VERSION: "2.20250222.10.00";
|
|
14
|
+
readonly CLIENT_ID: 1;
|
|
15
|
+
readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
|
|
16
|
+
readonly INNERTUBE_CONTEXT: {
|
|
17
|
+
readonly client: {
|
|
18
|
+
readonly clientName: "WEB";
|
|
19
|
+
readonly clientVersion: "2.20250222.10.00";
|
|
20
|
+
readonly platform: "DESKTOP";
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
readonly HEADERS: {
|
|
24
|
+
readonly 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36";
|
|
25
|
+
readonly 'X-YouTube-Client-Name': "1";
|
|
26
|
+
readonly 'X-YouTube-Client-Version': "2.20250222.10.00";
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
readonly ANDROID: {
|
|
30
|
+
readonly NAME: "ANDROID";
|
|
31
|
+
readonly VERSION: "19.35.36";
|
|
32
|
+
readonly CLIENT_ID: 3;
|
|
33
|
+
readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
|
|
34
|
+
readonly SDK_VERSION: 33;
|
|
35
|
+
readonly INNERTUBE_CONTEXT: {
|
|
36
|
+
readonly client: {
|
|
37
|
+
readonly clientName: "ANDROID";
|
|
38
|
+
readonly clientVersion: "19.35.36";
|
|
39
|
+
readonly androidSdkVersion: 33;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
readonly HEADERS: {
|
|
43
|
+
readonly 'User-Agent': "com.google.android.youtube/19.35.36(Linux; U; Android 13; en_US; SM-S908E Build/TP1A.220624.014) gzip";
|
|
44
|
+
readonly 'X-YouTube-Client-Name': "3";
|
|
45
|
+
readonly 'X-YouTube-Client-Version': "19.35.36";
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
readonly TV: {
|
|
49
|
+
readonly NAME: "TVHTML5";
|
|
50
|
+
readonly VERSION: "7.20250219.14.00";
|
|
51
|
+
readonly CLIENT_ID: 7;
|
|
52
|
+
readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
|
|
53
|
+
readonly INNERTUBE_CONTEXT: {
|
|
54
|
+
readonly client: {
|
|
55
|
+
readonly clientName: "TVHTML5";
|
|
56
|
+
readonly clientVersion: "7.20250219.14.00";
|
|
57
|
+
readonly clientScreen: "WATCH";
|
|
58
|
+
readonly platform: "TV";
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
readonly HEADERS: {
|
|
62
|
+
readonly 'User-Agent': "Mozilla/5.0 (ChromiumStylePlatform) Cobalt/Version";
|
|
63
|
+
readonly 'X-YouTube-Client-Name': "7";
|
|
64
|
+
readonly 'X-YouTube-Client-Version': "7.20250219.14.00";
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
readonly IOS: {
|
|
68
|
+
readonly NAME: "iOS";
|
|
69
|
+
readonly VERSION: "20.11.6";
|
|
70
|
+
readonly CLIENT_ID: 5;
|
|
71
|
+
readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
|
|
72
|
+
readonly INNERTUBE_CONTEXT: {
|
|
73
|
+
readonly client: {
|
|
74
|
+
readonly clientName: "iOS";
|
|
75
|
+
readonly clientVersion: "20.11.6";
|
|
76
|
+
readonly deviceModel: "iPhone10,4";
|
|
77
|
+
readonly osName: "iOS";
|
|
78
|
+
readonly osVersion: "16.7.7.20H330";
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
readonly HEADERS: {
|
|
82
|
+
readonly 'User-Agent': "com.google.ios.youtube/20.11.6 (iPhone10,4; U; CPU iOS 16_7_7 like Mac OS X)";
|
|
83
|
+
readonly 'X-YouTube-Client-Name': "5";
|
|
84
|
+
readonly 'X-YouTube-Client-Version': "20.11.6";
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
readonly ANDROID_SDKLESS: {
|
|
88
|
+
readonly NAME: "ANDROID";
|
|
89
|
+
readonly VERSION: "19.35.36";
|
|
90
|
+
readonly CLIENT_ID: 3;
|
|
91
|
+
readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
|
|
92
|
+
readonly INNERTUBE_CONTEXT: {
|
|
93
|
+
readonly client: {
|
|
94
|
+
readonly clientName: "ANDROID";
|
|
95
|
+
readonly clientVersion: "19.35.36";
|
|
96
|
+
readonly androidSdkVersion: 33;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
readonly HEADERS: {
|
|
100
|
+
readonly 'User-Agent': "com.google.android.youtube/19.35.36 (Linux; U; Android 13; en_US; SM-S908E)";
|
|
101
|
+
readonly 'X-YouTube-Client-Name': "3";
|
|
102
|
+
readonly 'X-YouTube-Client-Version': "19.35.36";
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
readonly TV_EMBEDDED: {
|
|
106
|
+
readonly NAME: "TVHTML5_SIMPLY_EMBEDDED_PLAYER";
|
|
107
|
+
readonly VERSION: "2.0";
|
|
108
|
+
readonly CLIENT_ID: 85;
|
|
109
|
+
readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
|
|
110
|
+
readonly INNERTUBE_CONTEXT: {
|
|
111
|
+
readonly client: {
|
|
112
|
+
readonly clientName: "TVHTML5_SIMPLY_EMBEDDED_PLAYER";
|
|
113
|
+
readonly clientVersion: "2.0";
|
|
114
|
+
readonly clientScreen: "EMBED";
|
|
115
|
+
readonly platform: "TV";
|
|
116
|
+
};
|
|
117
|
+
readonly thirdParty: {
|
|
118
|
+
readonly embedUrl: "https://www.youtube.com/";
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
readonly HEADERS: {
|
|
122
|
+
readonly 'User-Agent': "Mozilla/5.0 (ChromiumStylePlatform) Cobalt/Version";
|
|
123
|
+
readonly 'X-YouTube-Client-Name': "85";
|
|
124
|
+
readonly 'X-YouTube-Client-Version': "2.0";
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
export type ClientName = keyof typeof INNERTUBE_CLIENTS;
|
|
129
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAC1D,eAAO,MAAM,kBAAkB,wCAAoC,CAAC;AACpE,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwHpB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface HlsPlaylist {
|
|
2
|
+
type: 'master' | 'media';
|
|
3
|
+
version: number;
|
|
4
|
+
variants?: HlsVariant[];
|
|
5
|
+
segments?: HlsSegment[];
|
|
6
|
+
targetDuration?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface HlsVariant {
|
|
9
|
+
url: string;
|
|
10
|
+
bandwidth: number;
|
|
11
|
+
resolution?: string;
|
|
12
|
+
codecs?: string;
|
|
13
|
+
frameRate?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface HlsSegment {
|
|
16
|
+
url: string;
|
|
17
|
+
duration: number;
|
|
18
|
+
byteRange?: {
|
|
19
|
+
start: number;
|
|
20
|
+
length: number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
import { type Result } from '../result';
|
|
24
|
+
import { type BundlpError } from '../types/error.types';
|
|
25
|
+
/**
|
|
26
|
+
* Parses an M3U8 playlist.
|
|
27
|
+
* @param content - M3U8 file content
|
|
28
|
+
* @returns Result containing parsed playlist or error
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseM3u8(content: string): Result<HlsPlaylist, BundlpError>;
|
|
31
|
+
//# sourceMappingURL=m3u8.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"m3u8.d.ts","sourceRoot":"","sources":["../../src/utils/m3u8.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAErE;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAgC3E"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface XmlNode {
|
|
2
|
+
type: 'element' | 'text';
|
|
3
|
+
name?: string;
|
|
4
|
+
attributes?: Record<string, string>;
|
|
5
|
+
children?: XmlNode[];
|
|
6
|
+
text?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Parses XML string into a simple node tree.
|
|
10
|
+
* @param xml - XML string to parse
|
|
11
|
+
* @returns Root XML node
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseXml(xml: string): XmlNode;
|
|
14
|
+
/**
|
|
15
|
+
* Finds all nodes matching a tag name.
|
|
16
|
+
* @param node - Root node to search
|
|
17
|
+
* @param tagName - Tag name to match
|
|
18
|
+
* @returns Array of matching nodes
|
|
19
|
+
*/
|
|
20
|
+
export declare function findAll(node: XmlNode, tagName: string): XmlNode[];
|
|
21
|
+
/**
|
|
22
|
+
* Finds the first node matching a tag name.
|
|
23
|
+
* @param node - Root node to search
|
|
24
|
+
* @param tagName - Tag name to match
|
|
25
|
+
* @returns First matching node or undefined
|
|
26
|
+
*/
|
|
27
|
+
export declare function findFirst(node: XmlNode, tagName: string): XmlNode | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Gets attribute value from a node.
|
|
30
|
+
* @param node - XML node
|
|
31
|
+
* @param attrName - Attribute name
|
|
32
|
+
* @returns Attribute value or undefined
|
|
33
|
+
*/
|
|
34
|
+
export declare function getAttribute(node: XmlNode, attrName: string): string | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Gets text content from a node.
|
|
37
|
+
* @param node - XML node
|
|
38
|
+
* @returns Text content or empty string
|
|
39
|
+
*/
|
|
40
|
+
export declare function getTextContent(node: XmlNode): string;
|
|
41
|
+
//# sourceMappingURL=xml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../src/utils/xml.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA6C7C;AAmBD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAcjE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAa7E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAYpD"}
|