googlevideo 2.0.0 → 4.0.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.
Files changed (186) hide show
  1. package/LICENSE +9 -9
  2. package/README.md +127 -66
  3. package/dist/protos/generated/misc/common.d.ts +180 -21
  4. package/dist/protos/generated/misc/common.js +277 -147
  5. package/dist/protos/generated/misc/common.js.map +1 -0
  6. package/dist/protos/generated/video_streaming/buffered_range.d.ts +10 -25
  7. package/dist/protos/generated/video_streaming/buffered_range.js +21 -166
  8. package/dist/protos/generated/video_streaming/buffered_range.js.map +1 -0
  9. package/dist/protos/generated/video_streaming/client_abr_state.d.ts +34 -45
  10. package/dist/protos/generated/video_streaming/client_abr_state.js +209 -350
  11. package/dist/protos/generated/video_streaming/client_abr_state.js.map +1 -0
  12. package/dist/protos/generated/video_streaming/crypto_params.d.ts +2 -24
  13. package/dist/protos/generated/video_streaming/crypto_params.js +2 -86
  14. package/dist/protos/generated/video_streaming/crypto_params.js.map +1 -0
  15. package/dist/protos/generated/video_streaming/format_initialization_metadata.d.ts +6 -21
  16. package/dist/protos/generated/video_streaming/format_initialization_metadata.js +32 -95
  17. package/dist/protos/generated/video_streaming/format_initialization_metadata.js.map +1 -0
  18. package/dist/protos/generated/video_streaming/format_selection_config.d.ts +12 -0
  19. package/dist/protos/generated/video_streaming/format_selection_config.js +68 -0
  20. package/dist/protos/generated/video_streaming/format_selection_config.js.map +1 -0
  21. package/dist/protos/generated/video_streaming/innertube_request.d.ts +25 -0
  22. package/dist/protos/generated/video_streaming/innertube_request.js +186 -0
  23. package/dist/protos/generated/video_streaming/innertube_request.js.map +1 -0
  24. package/dist/protos/generated/video_streaming/live_metadata.d.ts +20 -0
  25. package/dist/protos/generated/video_streaming/live_metadata.js +153 -0
  26. package/dist/protos/generated/video_streaming/live_metadata.js.map +1 -0
  27. package/dist/protos/generated/video_streaming/media_capabilities.d.ts +0 -15
  28. package/dist/protos/generated/video_streaming/media_capabilities.js +2 -122
  29. package/dist/protos/generated/video_streaming/media_capabilities.js.map +1 -0
  30. package/dist/protos/generated/video_streaming/media_header.d.ts +5 -27
  31. package/dist/protos/generated/video_streaming/media_header.js +28 -151
  32. package/dist/protos/generated/video_streaming/media_header.js.map +1 -0
  33. package/dist/protos/generated/video_streaming/next_request_policy.d.ts +3 -15
  34. package/dist/protos/generated/video_streaming/next_request_policy.js +32 -50
  35. package/dist/protos/generated/video_streaming/next_request_policy.js.map +1 -0
  36. package/dist/protos/generated/video_streaming/onesie_header.d.ts +7 -22
  37. package/dist/protos/generated/video_streaming/onesie_header.js +16 -137
  38. package/dist/protos/generated/video_streaming/onesie_header.js.map +1 -0
  39. package/dist/protos/generated/video_streaming/onesie_header_type.d.ts +9 -25
  40. package/dist/protos/generated/video_streaming/onesie_header_type.js +17 -176
  41. package/dist/protos/generated/video_streaming/onesie_header_type.js.map +1 -0
  42. package/dist/protos/generated/video_streaming/onesie_innertube_request.d.ts +15 -0
  43. package/dist/protos/generated/video_streaming/{onesie_player_request.js → onesie_innertube_request.js} +10 -54
  44. package/dist/protos/generated/video_streaming/onesie_innertube_request.js.map +1 -0
  45. package/dist/protos/generated/video_streaming/onesie_innertube_response.d.ts +15 -0
  46. package/dist/protos/generated/video_streaming/{onesie_player_response.js → onesie_innertube_response.js} +6 -58
  47. package/dist/protos/generated/video_streaming/onesie_innertube_response.js.map +1 -0
  48. package/dist/protos/generated/video_streaming/onesie_proxy_status.d.ts +18 -0
  49. package/dist/protos/generated/video_streaming/onesie_proxy_status.js +25 -0
  50. package/dist/protos/generated/video_streaming/onesie_proxy_status.js.map +1 -0
  51. package/dist/protos/generated/video_streaming/onesie_request.d.ts +7 -17
  52. package/dist/protos/generated/video_streaming/onesie_request.js +28 -89
  53. package/dist/protos/generated/video_streaming/onesie_request.js.map +1 -0
  54. package/dist/protos/generated/video_streaming/playback_cookie.d.ts +2 -17
  55. package/dist/protos/generated/video_streaming/playback_cookie.js +6 -47
  56. package/dist/protos/generated/video_streaming/playback_cookie.js.map +1 -0
  57. package/dist/protos/generated/video_streaming/playback_start_policy.d.ts +0 -15
  58. package/dist/protos/generated/video_streaming/playback_start_policy.js +2 -66
  59. package/dist/protos/generated/video_streaming/playback_start_policy.js.map +1 -0
  60. package/dist/protos/generated/video_streaming/reload_player_response.d.ts +14 -0
  61. package/dist/protos/generated/video_streaming/reload_player_response.js +73 -0
  62. package/dist/protos/generated/video_streaming/reload_player_response.js.map +1 -0
  63. package/dist/protos/generated/video_streaming/request_cancellation_policy.d.ts +0 -15
  64. package/dist/protos/generated/video_streaming/request_cancellation_policy.js +2 -66
  65. package/dist/protos/generated/video_streaming/request_cancellation_policy.js.map +1 -0
  66. package/dist/protos/generated/video_streaming/request_identifier.d.ts +10 -0
  67. package/dist/protos/generated/video_streaming/request_identifier.js +41 -0
  68. package/dist/protos/generated/video_streaming/request_identifier.js.map +1 -0
  69. package/dist/protos/generated/video_streaming/sabr_context_sending_policy.d.ts +12 -0
  70. package/dist/protos/generated/video_streaming/sabr_context_sending_policy.js +86 -0
  71. package/dist/protos/generated/video_streaming/sabr_context_sending_policy.js.map +1 -0
  72. package/dist/protos/generated/video_streaming/sabr_context_update.d.ts +48 -0
  73. package/dist/protos/generated/video_streaming/sabr_context_update.js +242 -0
  74. package/dist/protos/generated/video_streaming/sabr_context_update.js.map +1 -0
  75. package/dist/protos/generated/video_streaming/sabr_error.d.ts +0 -15
  76. package/dist/protos/generated/video_streaming/sabr_error.js +2 -29
  77. package/dist/protos/generated/video_streaming/sabr_error.js.map +1 -0
  78. package/dist/protos/generated/video_streaming/sabr_redirect.d.ts +0 -15
  79. package/dist/protos/generated/video_streaming/sabr_redirect.js +2 -22
  80. package/dist/protos/generated/video_streaming/sabr_redirect.js.map +1 -0
  81. package/dist/protos/generated/video_streaming/snackbar_message.d.ts +10 -0
  82. package/dist/protos/generated/video_streaming/snackbar_message.js +41 -0
  83. package/dist/protos/generated/video_streaming/snackbar_message.js.map +1 -0
  84. package/dist/protos/generated/video_streaming/stream_protection_status.d.ts +1 -16
  85. package/dist/protos/generated/video_streaming/stream_protection_status.js +6 -33
  86. package/dist/protos/generated/video_streaming/stream_protection_status.js.map +1 -0
  87. package/dist/protos/generated/video_streaming/streamer_context.d.ts +11 -28
  88. package/dist/protos/generated/video_streaming/streamer_context.js +33 -383
  89. package/dist/protos/generated/video_streaming/streamer_context.js.map +1 -0
  90. package/dist/protos/generated/video_streaming/time_range.d.ts +2 -17
  91. package/dist/protos/generated/video_streaming/time_range.js +9 -41
  92. package/dist/protos/generated/video_streaming/time_range.js.map +1 -0
  93. package/dist/protos/generated/video_streaming/ump_part_id.d.ts +58 -0
  94. package/dist/protos/generated/video_streaming/ump_part_id.js +89 -0
  95. package/dist/protos/generated/video_streaming/ump_part_id.js.map +1 -0
  96. package/dist/protos/generated/video_streaming/video_playback_abr_request.d.ts +21 -36
  97. package/dist/protos/generated/video_streaming/video_playback_abr_request.js +67 -343
  98. package/dist/protos/generated/video_streaming/video_playback_abr_request.js.map +1 -0
  99. package/dist/src/core/{ChunkedDataBuffer.d.ts → CompositeBuffer.d.ts} +8 -8
  100. package/dist/src/core/{ChunkedDataBuffer.js → CompositeBuffer.js} +32 -27
  101. package/dist/src/core/CompositeBuffer.js.map +1 -0
  102. package/dist/src/core/SabrStream.d.ts +356 -0
  103. package/dist/src/core/SabrStream.js +958 -0
  104. package/dist/src/core/SabrStream.js.map +1 -0
  105. package/dist/src/core/SabrStreamingAdapter.d.ts +158 -0
  106. package/dist/src/core/SabrStreamingAdapter.js +496 -0
  107. package/dist/src/core/SabrStreamingAdapter.js.map +1 -0
  108. package/dist/src/core/SabrUmpProcessor.d.ts +53 -0
  109. package/dist/src/core/SabrUmpProcessor.js +234 -0
  110. package/dist/src/core/SabrUmpProcessor.js.map +1 -0
  111. package/dist/src/core/UmpReader.d.ts +30 -0
  112. package/dist/src/core/UmpReader.js +122 -0
  113. package/dist/src/core/UmpReader.js.map +1 -0
  114. package/dist/src/core/UmpWriter.d.ts +16 -0
  115. package/dist/src/core/UmpWriter.js +56 -0
  116. package/dist/src/core/UmpWriter.js.map +1 -0
  117. package/dist/src/exports/protos.d.ts +1 -0
  118. package/dist/src/exports/protos.js +2 -0
  119. package/dist/src/exports/protos.js.map +1 -0
  120. package/dist/src/exports/sabr-stream.d.ts +2 -0
  121. package/dist/src/exports/sabr-stream.js +2 -0
  122. package/dist/src/exports/sabr-stream.js.map +1 -0
  123. package/dist/src/exports/sabr-streaming-adapter.d.ts +3 -0
  124. package/dist/src/exports/sabr-streaming-adapter.js +3 -0
  125. package/dist/src/exports/sabr-streaming-adapter.js.map +1 -0
  126. package/dist/src/exports/ump.d.ts +3 -0
  127. package/dist/src/exports/ump.js +4 -0
  128. package/dist/src/exports/ump.js.map +1 -0
  129. package/dist/src/exports/utils.d.ts +1 -0
  130. package/dist/src/exports/utils.js +2 -0
  131. package/dist/src/exports/utils.js.map +1 -0
  132. package/dist/src/types/sabrStreamTypes.d.ts +102 -0
  133. package/dist/src/types/sabrStreamTypes.js +2 -0
  134. package/dist/src/types/sabrStreamTypes.js.map +1 -0
  135. package/dist/src/types/sabrStreamingAdapterTypes.d.ts +93 -0
  136. package/dist/src/types/sabrStreamingAdapterTypes.js +2 -0
  137. package/dist/src/types/sabrStreamingAdapterTypes.js.map +1 -0
  138. package/dist/src/types/shared.d.ts +64 -0
  139. package/dist/src/types/shared.js +2 -0
  140. package/dist/src/types/shared.js.map +1 -0
  141. package/dist/src/utils/CacheManager.d.ts +32 -0
  142. package/dist/src/utils/CacheManager.js +131 -0
  143. package/dist/src/utils/CacheManager.js.map +1 -0
  144. package/dist/src/utils/EventEmitterLike.d.ts +5 -0
  145. package/dist/src/utils/EventEmitterLike.js +51 -10
  146. package/dist/src/utils/EventEmitterLike.js.map +1 -0
  147. package/dist/src/utils/Logger.d.ts +30 -0
  148. package/dist/src/utils/Logger.js +80 -0
  149. package/dist/src/utils/Logger.js.map +1 -0
  150. package/dist/src/utils/Protos.d.ts +21 -13
  151. package/dist/src/utils/Protos.js +22 -13
  152. package/dist/src/utils/Protos.js.map +1 -0
  153. package/dist/src/utils/RequestMetadataManager.d.ts +15 -0
  154. package/dist/src/utils/RequestMetadataManager.js +48 -0
  155. package/dist/src/utils/RequestMetadataManager.js.map +1 -0
  156. package/dist/src/utils/formatKeyUtils.d.ts +45 -0
  157. package/dist/src/utils/formatKeyUtils.js +77 -0
  158. package/dist/src/utils/formatKeyUtils.js.map +1 -0
  159. package/dist/src/utils/index.d.ts +5 -3
  160. package/dist/src/utils/index.js +6 -2
  161. package/dist/src/utils/index.js.map +1 -0
  162. package/dist/src/utils/sabrStreamUtils.d.ts +28 -0
  163. package/dist/src/utils/sabrStreamUtils.js +76 -0
  164. package/dist/src/utils/sabrStreamUtils.js.map +1 -0
  165. package/dist/src/utils/shared.d.ts +43 -0
  166. package/dist/src/utils/shared.js +108 -0
  167. package/dist/src/utils/shared.js.map +1 -0
  168. package/package.json +88 -61
  169. package/dist/protos/generated/video_streaming/encrypted_player_request.d.ts +0 -37
  170. package/dist/protos/generated/video_streaming/encrypted_player_request.js +0 -239
  171. package/dist/protos/generated/video_streaming/onesie_player_request.d.ts +0 -31
  172. package/dist/protos/generated/video_streaming/onesie_player_response.d.ts +0 -29
  173. package/dist/protos/generated/video_streaming/proxy_status.d.ts +0 -16
  174. package/dist/protos/generated/video_streaming/proxy_status.js +0 -86
  175. package/dist/src/core/ServerAbrStream.d.ts +0 -38
  176. package/dist/src/core/ServerAbrStream.js +0 -272
  177. package/dist/src/core/UMP.d.ts +0 -10
  178. package/dist/src/core/UMP.js +0 -109
  179. package/dist/src/core/index.d.ts +0 -3
  180. package/dist/src/core/index.js +0 -3
  181. package/dist/src/index.d.ts +0 -4
  182. package/dist/src/index.js +0 -4
  183. package/dist/src/utils/helpers.d.ts +0 -63
  184. package/dist/src/utils/helpers.js +0 -101
  185. package/dist/src/utils/types.d.ts +0 -65
  186. package/dist/src/utils/types.js +0 -1
package/package.json CHANGED
@@ -1,61 +1,88 @@
1
- {
2
- "name": "googlevideo",
3
- "version": "2.0.0",
4
- "description": "A set of utilities for working with Google Video APIs.",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "types": "./dist/src/index.d.ts",
8
- "module": "./dist/src/index.js",
9
- "scripts": {
10
- "watch": "npx tsc --watch",
11
- "lint": "npx eslint ./src/**/*.ts",
12
- "lint:fix": "npx eslint --fix ./src/**/*.ts",
13
- "clean": "npx rimraf ./dist ./protos/generated",
14
- "build": "npm run clean && npm run lint && npm run build:proto && npm run build:esm",
15
- "build:esm": "npx tsc",
16
- "build:proto": "node ./dev-scripts/generate-proto.mjs",
17
- "prepare": "npm run build"
18
- },
19
- "author": "LuanRT <luan.lrt4@gmail.com> (https://github.com/LuanRT)",
20
- "funding": [
21
- "https://github.com/sponsors/LuanRT"
22
- ],
23
- "keywords": [
24
- "UMP",
25
- "SABR",
26
- "Google",
27
- "YouTube"
28
- ],
29
- "license": "MIT",
30
- "exports": {
31
- ".": {
32
- "node": {
33
- "import": "./dist/src/index.js"
34
- },
35
- "types": "./dist/src/index.d.ts",
36
- "default": "./dist/src/index.js"
37
- }
38
- },
39
- "devDependencies": {
40
- "@eslint/js": "^9.9.0",
41
- "@stylistic/eslint-plugin": "^2.6.4",
42
- "@types/eslint__js": "^8.42.3",
43
- "esbuild": "^0.24.0",
44
- "eslint": "^9.9.0",
45
- "globals": "^15.9.0",
46
- "ts-proto": "^2.2.0",
47
- "typescript": "^5.5.4",
48
- "typescript-eslint": "^8.2.0"
49
- },
50
- "dependencies": {
51
- "@bufbuild/protobuf": "^2.0.0"
52
- },
53
- "bugs": {
54
- "url": "https://github.com/LuanRT/GoogleVideo/issues"
55
- },
56
- "homepage": "https://github.com/LuanRT/GoogleVideo#readme",
57
- "repository": {
58
- "type": "git",
59
- "url": "git+https://github.com/LuanRT/GoogleVideo.git"
60
- }
61
- }
1
+ {
2
+ "name": "googlevideo",
3
+ "version": "4.0.0",
4
+ "description": "A collection of modules for working with YouTube's proprietary video streaming protocols (UMP/SABR).",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "types": "./dist/src/index.d.ts",
8
+ "module": "./dist/src/index.js",
9
+ "scripts": {
10
+ "watch": "npx tspc --watch",
11
+ "lint": "npx eslint ./src/**/*.ts",
12
+ "lint:fix": "npx eslint --fix ./src/**/*.ts",
13
+ "clean": "npx rimraf ./dist ./protos/generated",
14
+ "build": "npm run clean && npm run lint && npm run build:proto && npm run build:esm",
15
+ "build:esm": "npx tspc",
16
+ "build:proto": "node ./dev-scripts/generate-proto.mjs",
17
+ "build:docs": "typedoc",
18
+ "test": "vitest run --reporter verbose",
19
+ "test:watch": "vitest",
20
+ "prepare": "npm run build"
21
+ },
22
+ "author": "LuanRT <luan.lrt4@gmail.com> (https://github.com/LuanRT)",
23
+ "funding": [
24
+ "https://github.com/sponsors/LuanRT"
25
+ ],
26
+ "keywords": [
27
+ "UMP",
28
+ "SABR",
29
+ "Google",
30
+ "YouTube"
31
+ ],
32
+ "license": "MIT",
33
+ "exports": {
34
+ "./ump": {
35
+ "types": "./dist/src/exports/ump.d.ts",
36
+ "import": "./dist/src/exports/ump.js",
37
+ "default": "./dist/src/exports/ump.js"
38
+ },
39
+ "./sabr-streaming-adapter": {
40
+ "types": "./dist/src/exports/sabr-streaming-adapter.d.ts",
41
+ "import": "./dist/src/exports/sabr-streaming-adapter.js",
42
+ "default": "./dist/src/exports/sabr-streaming-adapter.js"
43
+ },
44
+ "./sabr-stream": {
45
+ "types": "./dist/src/exports/sabr-stream.d.ts",
46
+ "import": "./dist/src/exports/sabr-stream.js",
47
+ "default": "./dist/src/exports/sabr-stream.js"
48
+ },
49
+ "./protos": {
50
+ "types": "./dist/src/exports/protos.d.ts",
51
+ "import": "./dist/src/exports/protos.js",
52
+ "default": "./dist/src/exports/protos.js"
53
+ },
54
+ "./utils": {
55
+ "types": "./dist/src/exports/utils.d.ts",
56
+ "import": "./dist/src/exports/utils.js",
57
+ "default": "./dist/src/exports/utils.js"
58
+ },
59
+ "./shared-types": {
60
+ "types": "./dist/src/types/shared.d.ts"
61
+ }
62
+ },
63
+ "devDependencies": {
64
+ "@eslint/js": "^9.9.0",
65
+ "@stylistic/eslint-plugin": "^2.6.4",
66
+ "@types/eslint__js": "^8.42.3",
67
+ "eslint": "^9.9.0",
68
+ "globals": "^15.9.0",
69
+ "ts-patch": "^3.3.0",
70
+ "ts-proto": "^2.2.0",
71
+ "typedoc": "^0.28.7",
72
+ "typedoc-plugin-markdown": "^4.7.1",
73
+ "typescript": "^5.5.4",
74
+ "typescript-eslint": "^8.2.0",
75
+ "vitest": "^3.2.4"
76
+ },
77
+ "dependencies": {
78
+ "@bufbuild/protobuf": "^2.0.0"
79
+ },
80
+ "bugs": {
81
+ "url": "https://github.com/LuanRT/GoogleVideo/issues"
82
+ },
83
+ "homepage": "https://github.com/LuanRT/GoogleVideo#readme",
84
+ "repository": {
85
+ "type": "git",
86
+ "url": "git+https://github.com/LuanRT/GoogleVideo.git"
87
+ }
88
+ }
@@ -1,37 +0,0 @@
1
- import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
- import { OnesiePlayerRequest } from "./onesie_player_request.js";
3
- export declare const protobufPackage = "video_streaming";
4
- export interface EncryptedPlayerRequest {
5
- /** InnerTubeContext proto? */
6
- context?: Uint8Array | undefined;
7
- encryptedOnesiePlayerRequest?: Uint8Array | undefined;
8
- encryptedClientKey?: Uint8Array | undefined;
9
- iv?: Uint8Array | undefined;
10
- hmac?: Uint8Array | undefined;
11
- reverseProxyConfig?: string | undefined;
12
- YP?: boolean | undefined;
13
- pM?: boolean | undefined;
14
- enableCompression?: boolean | undefined;
15
- onesiePlayerRequest?: OnesiePlayerRequest | undefined;
16
- TQ?: boolean | undefined;
17
- }
18
- export declare const EncryptedPlayerRequest: MessageFns<EncryptedPlayerRequest>;
19
- type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
20
- export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
21
- [K in keyof T]?: DeepPartial<T[K]>;
22
- } : Partial<T>;
23
- type KeysOfUnion<T> = T extends T ? keyof T : never;
24
- export type Exact<P, I extends P> = P extends Builtin ? P : P & {
25
- [K in keyof P]: Exact<P[K], I[K]>;
26
- } & {
27
- [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
28
- };
29
- export interface MessageFns<T> {
30
- encode(message: T, writer?: BinaryWriter): BinaryWriter;
31
- decode(input: BinaryReader | Uint8Array, length?: number): T;
32
- fromJSON(object: any): T;
33
- toJSON(message: T): unknown;
34
- create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
35
- fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
36
- }
37
- export {};
@@ -1,239 +0,0 @@
1
- // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
2
- // versions:
3
- // protoc-gen-ts_proto v2.2.0
4
- // protoc v5.28.0
5
- // source: video_streaming/encrypted_player_request.proto
6
- /* eslint-disable */
7
- import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
8
- import { OnesiePlayerRequest } from "./onesie_player_request.js";
9
- export const protobufPackage = "video_streaming";
10
- function createBaseEncryptedPlayerRequest() {
11
- return {
12
- context: new Uint8Array(0),
13
- encryptedOnesiePlayerRequest: new Uint8Array(0),
14
- encryptedClientKey: new Uint8Array(0),
15
- iv: new Uint8Array(0),
16
- hmac: new Uint8Array(0),
17
- reverseProxyConfig: "",
18
- YP: false,
19
- pM: false,
20
- enableCompression: false,
21
- onesiePlayerRequest: undefined,
22
- TQ: false,
23
- };
24
- }
25
- export const EncryptedPlayerRequest = {
26
- encode(message, writer = new BinaryWriter()) {
27
- if (message.context !== undefined && message.context.length !== 0) {
28
- writer.uint32(10).bytes(message.context);
29
- }
30
- if (message.encryptedOnesiePlayerRequest !== undefined && message.encryptedOnesiePlayerRequest.length !== 0) {
31
- writer.uint32(18).bytes(message.encryptedOnesiePlayerRequest);
32
- }
33
- if (message.encryptedClientKey !== undefined && message.encryptedClientKey.length !== 0) {
34
- writer.uint32(42).bytes(message.encryptedClientKey);
35
- }
36
- if (message.iv !== undefined && message.iv.length !== 0) {
37
- writer.uint32(50).bytes(message.iv);
38
- }
39
- if (message.hmac !== undefined && message.hmac.length !== 0) {
40
- writer.uint32(58).bytes(message.hmac);
41
- }
42
- if (message.reverseProxyConfig !== undefined && message.reverseProxyConfig !== "") {
43
- writer.uint32(74).string(message.reverseProxyConfig);
44
- }
45
- if (message.YP !== undefined && message.YP !== false) {
46
- writer.uint32(80).bool(message.YP);
47
- }
48
- if (message.pM !== undefined && message.pM !== false) {
49
- writer.uint32(104).bool(message.pM);
50
- }
51
- if (message.enableCompression !== undefined && message.enableCompression !== false) {
52
- writer.uint32(112).bool(message.enableCompression);
53
- }
54
- if (message.onesiePlayerRequest !== undefined) {
55
- OnesiePlayerRequest.encode(message.onesiePlayerRequest, writer.uint32(130).fork()).join();
56
- }
57
- if (message.TQ !== undefined && message.TQ !== false) {
58
- writer.uint32(136).bool(message.TQ);
59
- }
60
- return writer;
61
- },
62
- decode(input, length) {
63
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
64
- let end = length === undefined ? reader.len : reader.pos + length;
65
- const message = createBaseEncryptedPlayerRequest();
66
- while (reader.pos < end) {
67
- const tag = reader.uint32();
68
- switch (tag >>> 3) {
69
- case 1:
70
- if (tag !== 10) {
71
- break;
72
- }
73
- message.context = reader.bytes();
74
- continue;
75
- case 2:
76
- if (tag !== 18) {
77
- break;
78
- }
79
- message.encryptedOnesiePlayerRequest = reader.bytes();
80
- continue;
81
- case 5:
82
- if (tag !== 42) {
83
- break;
84
- }
85
- message.encryptedClientKey = reader.bytes();
86
- continue;
87
- case 6:
88
- if (tag !== 50) {
89
- break;
90
- }
91
- message.iv = reader.bytes();
92
- continue;
93
- case 7:
94
- if (tag !== 58) {
95
- break;
96
- }
97
- message.hmac = reader.bytes();
98
- continue;
99
- case 9:
100
- if (tag !== 74) {
101
- break;
102
- }
103
- message.reverseProxyConfig = reader.string();
104
- continue;
105
- case 10:
106
- if (tag !== 80) {
107
- break;
108
- }
109
- message.YP = reader.bool();
110
- continue;
111
- case 13:
112
- if (tag !== 104) {
113
- break;
114
- }
115
- message.pM = reader.bool();
116
- continue;
117
- case 14:
118
- if (tag !== 112) {
119
- break;
120
- }
121
- message.enableCompression = reader.bool();
122
- continue;
123
- case 16:
124
- if (tag !== 130) {
125
- break;
126
- }
127
- message.onesiePlayerRequest = OnesiePlayerRequest.decode(reader, reader.uint32());
128
- continue;
129
- case 17:
130
- if (tag !== 136) {
131
- break;
132
- }
133
- message.TQ = reader.bool();
134
- continue;
135
- }
136
- if ((tag & 7) === 4 || tag === 0) {
137
- break;
138
- }
139
- reader.skip(tag & 7);
140
- }
141
- return message;
142
- },
143
- fromJSON(object) {
144
- return {
145
- context: isSet(object.context) ? bytesFromBase64(object.context) : new Uint8Array(0),
146
- encryptedOnesiePlayerRequest: isSet(object.encryptedOnesiePlayerRequest)
147
- ? bytesFromBase64(object.encryptedOnesiePlayerRequest)
148
- : new Uint8Array(0),
149
- encryptedClientKey: isSet(object.encryptedClientKey)
150
- ? bytesFromBase64(object.encryptedClientKey)
151
- : new Uint8Array(0),
152
- iv: isSet(object.iv) ? bytesFromBase64(object.iv) : new Uint8Array(0),
153
- hmac: isSet(object.hmac) ? bytesFromBase64(object.hmac) : new Uint8Array(0),
154
- reverseProxyConfig: isSet(object.reverseProxyConfig) ? globalThis.String(object.reverseProxyConfig) : "",
155
- YP: isSet(object.YP) ? globalThis.Boolean(object.YP) : false,
156
- pM: isSet(object.pM) ? globalThis.Boolean(object.pM) : false,
157
- enableCompression: isSet(object.enableCompression) ? globalThis.Boolean(object.enableCompression) : false,
158
- onesiePlayerRequest: isSet(object.onesiePlayerRequest)
159
- ? OnesiePlayerRequest.fromJSON(object.onesiePlayerRequest)
160
- : undefined,
161
- TQ: isSet(object.TQ) ? globalThis.Boolean(object.TQ) : false,
162
- };
163
- },
164
- toJSON(message) {
165
- const obj = {};
166
- if (message.context !== undefined && message.context.length !== 0) {
167
- obj.context = base64FromBytes(message.context);
168
- }
169
- if (message.encryptedOnesiePlayerRequest !== undefined && message.encryptedOnesiePlayerRequest.length !== 0) {
170
- obj.encryptedOnesiePlayerRequest = base64FromBytes(message.encryptedOnesiePlayerRequest);
171
- }
172
- if (message.encryptedClientKey !== undefined && message.encryptedClientKey.length !== 0) {
173
- obj.encryptedClientKey = base64FromBytes(message.encryptedClientKey);
174
- }
175
- if (message.iv !== undefined && message.iv.length !== 0) {
176
- obj.iv = base64FromBytes(message.iv);
177
- }
178
- if (message.hmac !== undefined && message.hmac.length !== 0) {
179
- obj.hmac = base64FromBytes(message.hmac);
180
- }
181
- if (message.reverseProxyConfig !== undefined && message.reverseProxyConfig !== "") {
182
- obj.reverseProxyConfig = message.reverseProxyConfig;
183
- }
184
- if (message.YP !== undefined && message.YP !== false) {
185
- obj.YP = message.YP;
186
- }
187
- if (message.pM !== undefined && message.pM !== false) {
188
- obj.pM = message.pM;
189
- }
190
- if (message.enableCompression !== undefined && message.enableCompression !== false) {
191
- obj.enableCompression = message.enableCompression;
192
- }
193
- if (message.onesiePlayerRequest !== undefined) {
194
- obj.onesiePlayerRequest = OnesiePlayerRequest.toJSON(message.onesiePlayerRequest);
195
- }
196
- if (message.TQ !== undefined && message.TQ !== false) {
197
- obj.TQ = message.TQ;
198
- }
199
- return obj;
200
- },
201
- create(base) {
202
- return EncryptedPlayerRequest.fromPartial(base ?? {});
203
- },
204
- fromPartial(object) {
205
- const message = createBaseEncryptedPlayerRequest();
206
- message.context = object.context ?? new Uint8Array(0);
207
- message.encryptedOnesiePlayerRequest = object.encryptedOnesiePlayerRequest ?? new Uint8Array(0);
208
- message.encryptedClientKey = object.encryptedClientKey ?? new Uint8Array(0);
209
- message.iv = object.iv ?? new Uint8Array(0);
210
- message.hmac = object.hmac ?? new Uint8Array(0);
211
- message.reverseProxyConfig = object.reverseProxyConfig ?? "";
212
- message.YP = object.YP ?? false;
213
- message.pM = object.pM ?? false;
214
- message.enableCompression = object.enableCompression ?? false;
215
- message.onesiePlayerRequest = (object.onesiePlayerRequest !== undefined && object.onesiePlayerRequest !== null)
216
- ? OnesiePlayerRequest.fromPartial(object.onesiePlayerRequest)
217
- : undefined;
218
- message.TQ = object.TQ ?? false;
219
- return message;
220
- },
221
- };
222
- function bytesFromBase64(b64) {
223
- const bin = globalThis.atob(b64);
224
- const arr = new Uint8Array(bin.length);
225
- for (let i = 0; i < bin.length; ++i) {
226
- arr[i] = bin.charCodeAt(i);
227
- }
228
- return arr;
229
- }
230
- function base64FromBytes(arr) {
231
- const bin = [];
232
- arr.forEach((byte) => {
233
- bin.push(globalThis.String.fromCharCode(byte));
234
- });
235
- return globalThis.btoa(bin.join(""));
236
- }
237
- function isSet(value) {
238
- return value !== null && value !== undefined;
239
- }
@@ -1,31 +0,0 @@
1
- import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
- import { HttpHeader } from "../misc/common.js";
3
- export declare const protobufPackage = "video_streaming";
4
- export interface OnesiePlayerRequest {
5
- url?: string | undefined;
6
- headers: HttpHeader[];
7
- body?: string | undefined;
8
- proxiedByTrustedBandaid?: boolean | undefined;
9
- /** Seen this on youtube.com and the YTMusic protos. Not sure what it is yet. */
10
- field6?: boolean | undefined;
11
- }
12
- export declare const OnesiePlayerRequest: MessageFns<OnesiePlayerRequest>;
13
- type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
14
- export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
15
- [K in keyof T]?: DeepPartial<T[K]>;
16
- } : Partial<T>;
17
- type KeysOfUnion<T> = T extends T ? keyof T : never;
18
- export type Exact<P, I extends P> = P extends Builtin ? P : P & {
19
- [K in keyof P]: Exact<P[K], I[K]>;
20
- } & {
21
- [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
22
- };
23
- export interface MessageFns<T> {
24
- encode(message: T, writer?: BinaryWriter): BinaryWriter;
25
- decode(input: BinaryReader | Uint8Array, length?: number): T;
26
- fromJSON(object: any): T;
27
- toJSON(message: T): unknown;
28
- create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
29
- fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
30
- }
31
- export {};
@@ -1,29 +0,0 @@
1
- import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
- import { HttpHeader } from "../misc/common.js";
3
- export declare const protobufPackage = "video_streaming";
4
- export interface OnesiePlayerResponse {
5
- onesieProxyStatus?: number | undefined;
6
- httpStatus?: number | undefined;
7
- headers: HttpHeader[];
8
- body?: Uint8Array | undefined;
9
- }
10
- export declare const OnesiePlayerResponse: MessageFns<OnesiePlayerResponse>;
11
- type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
12
- export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
13
- [K in keyof T]?: DeepPartial<T[K]>;
14
- } : Partial<T>;
15
- type KeysOfUnion<T> = T extends T ? keyof T : never;
16
- export type Exact<P, I extends P> = P extends Builtin ? P : P & {
17
- [K in keyof P]: Exact<P[K], I[K]>;
18
- } & {
19
- [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
20
- };
21
- export interface MessageFns<T> {
22
- encode(message: T, writer?: BinaryWriter): BinaryWriter;
23
- decode(input: BinaryReader | Uint8Array, length?: number): T;
24
- fromJSON(object: any): T;
25
- toJSON(message: T): unknown;
26
- create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
27
- fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
28
- }
29
- export {};
@@ -1,16 +0,0 @@
1
- export declare const protobufPackage = "video_streaming";
2
- export declare enum ProxyStatus {
3
- VAL_0 = 0,
4
- OK = 1,
5
- VAL_2 = 2,
6
- VAL_3 = 3,
7
- VAL_4 = 4,
8
- VAL_5 = 5,
9
- VAL_6 = 6,
10
- VAL_7 = 7,
11
- VAL_8 = 8,
12
- VAL_9 = 9,
13
- UNRECOGNIZED = -1
14
- }
15
- export declare function proxyStatusFromJSON(object: any): ProxyStatus;
16
- export declare function proxyStatusToJSON(object: ProxyStatus): string;
@@ -1,86 +0,0 @@
1
- // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
2
- // versions:
3
- // protoc-gen-ts_proto v2.2.0
4
- // protoc v5.28.0
5
- // source: video_streaming/proxy_status.proto
6
- /* eslint-disable */
7
- export const protobufPackage = "video_streaming";
8
- export var ProxyStatus;
9
- (function (ProxyStatus) {
10
- ProxyStatus[ProxyStatus["VAL_0"] = 0] = "VAL_0";
11
- ProxyStatus[ProxyStatus["OK"] = 1] = "OK";
12
- ProxyStatus[ProxyStatus["VAL_2"] = 2] = "VAL_2";
13
- ProxyStatus[ProxyStatus["VAL_3"] = 3] = "VAL_3";
14
- ProxyStatus[ProxyStatus["VAL_4"] = 4] = "VAL_4";
15
- ProxyStatus[ProxyStatus["VAL_5"] = 5] = "VAL_5";
16
- ProxyStatus[ProxyStatus["VAL_6"] = 6] = "VAL_6";
17
- ProxyStatus[ProxyStatus["VAL_7"] = 7] = "VAL_7";
18
- ProxyStatus[ProxyStatus["VAL_8"] = 8] = "VAL_8";
19
- ProxyStatus[ProxyStatus["VAL_9"] = 9] = "VAL_9";
20
- ProxyStatus[ProxyStatus["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
21
- })(ProxyStatus || (ProxyStatus = {}));
22
- export function proxyStatusFromJSON(object) {
23
- switch (object) {
24
- case 0:
25
- case "VAL_0":
26
- return ProxyStatus.VAL_0;
27
- case 1:
28
- case "OK":
29
- return ProxyStatus.OK;
30
- case 2:
31
- case "VAL_2":
32
- return ProxyStatus.VAL_2;
33
- case 3:
34
- case "VAL_3":
35
- return ProxyStatus.VAL_3;
36
- case 4:
37
- case "VAL_4":
38
- return ProxyStatus.VAL_4;
39
- case 5:
40
- case "VAL_5":
41
- return ProxyStatus.VAL_5;
42
- case 6:
43
- case "VAL_6":
44
- return ProxyStatus.VAL_6;
45
- case 7:
46
- case "VAL_7":
47
- return ProxyStatus.VAL_7;
48
- case 8:
49
- case "VAL_8":
50
- return ProxyStatus.VAL_8;
51
- case 9:
52
- case "VAL_9":
53
- return ProxyStatus.VAL_9;
54
- case -1:
55
- case "UNRECOGNIZED":
56
- default:
57
- return ProxyStatus.UNRECOGNIZED;
58
- }
59
- }
60
- export function proxyStatusToJSON(object) {
61
- switch (object) {
62
- case ProxyStatus.VAL_0:
63
- return "VAL_0";
64
- case ProxyStatus.OK:
65
- return "OK";
66
- case ProxyStatus.VAL_2:
67
- return "VAL_2";
68
- case ProxyStatus.VAL_3:
69
- return "VAL_3";
70
- case ProxyStatus.VAL_4:
71
- return "VAL_4";
72
- case ProxyStatus.VAL_5:
73
- return "VAL_5";
74
- case ProxyStatus.VAL_6:
75
- return "VAL_6";
76
- case ProxyStatus.VAL_7:
77
- return "VAL_7";
78
- case ProxyStatus.VAL_8:
79
- return "VAL_8";
80
- case ProxyStatus.VAL_9:
81
- return "VAL_9";
82
- case ProxyStatus.UNRECOGNIZED:
83
- default:
84
- return "UNRECOGNIZED";
85
- }
86
- }
@@ -1,38 +0,0 @@
1
- import { EventEmitterLike } from '../utils/index.js';
2
- import type { InitOptions, ServerAbrResponse, ServerAbrStreamOptions } from '../utils/types.js';
3
- export declare class ServerAbrStream extends EventEmitterLike {
4
- private fetchFunction;
5
- private serverAbrStreamingUrl;
6
- private videoPlaybackUstreamerConfig;
7
- private poToken?;
8
- private playbackCookie?;
9
- private totalDurationMs;
10
- private initializedFormats;
11
- private formatsByKey;
12
- private headerIdToFormatKeyMap;
13
- private previousSequences;
14
- constructor(args: ServerAbrStreamOptions);
15
- on(event: 'end', listener: (streamData: ServerAbrResponse) => void): void;
16
- on(event: 'data', listener: (streamData: ServerAbrResponse) => void): void;
17
- on(event: 'error', listener: (error: Error) => void): void;
18
- once(event: 'end', listener: (streamData: ServerAbrResponse) => void): void;
19
- once(event: 'data', listener: (streamData: ServerAbrResponse) => void): void;
20
- once(event: 'error', listener: (error: Error) => void): void;
21
- /**
22
- * Initializes the server ABR stream with the provided options.
23
- * @param args - The initialization options.
24
- */
25
- init(args: InitOptions): Promise<void>;
26
- private fetchMedia;
27
- /**
28
- * Parses the UMP response data and updates the initialized formats.
29
- * @param response - The UMP response data as a byte array.
30
- */
31
- parseUMPResponse(response: Uint8Array): Promise<ServerAbrResponse>;
32
- private processMediaHeader;
33
- private processMediaData;
34
- private processEndOfMedia;
35
- private processNextRequestPolicy;
36
- private processFormatInitialization;
37
- private processSabrRedirect;
38
- }