googlevideo 3.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.
- package/README.md +93 -45
- package/dist/protos/generated/misc/common.d.ts +180 -6
- package/dist/protos/generated/misc/common.js +282 -19
- package/dist/protos/generated/misc/common.js.map +1 -0
- package/dist/protos/generated/video_streaming/buffered_range.d.ts +10 -10
- package/dist/protos/generated/video_streaming/buffered_range.js +20 -19
- package/dist/protos/generated/video_streaming/buffered_range.js.map +1 -0
- package/dist/protos/generated/video_streaming/client_abr_state.d.ts +22 -11
- package/dist/protos/generated/video_streaming/client_abr_state.js +133 -50
- package/dist/protos/generated/video_streaming/client_abr_state.js.map +1 -0
- package/dist/protos/generated/video_streaming/crypto_params.d.ts +2 -7
- package/dist/protos/generated/video_streaming/crypto_params.js +1 -7
- package/dist/protos/generated/video_streaming/crypto_params.js.map +1 -0
- package/dist/protos/generated/video_streaming/format_initialization_metadata.d.ts +6 -6
- package/dist/protos/generated/video_streaming/format_initialization_metadata.js +32 -21
- package/dist/protos/generated/video_streaming/format_initialization_metadata.js.map +1 -0
- package/dist/protos/generated/video_streaming/format_selection_config.d.ts +12 -0
- package/dist/protos/generated/video_streaming/format_selection_config.js +68 -0
- package/dist/protos/generated/video_streaming/format_selection_config.js.map +1 -0
- package/dist/protos/generated/video_streaming/{encrypted_player_request.d.ts → innertube_request.d.ts} +11 -6
- package/dist/protos/generated/video_streaming/{encrypted_player_request.js → innertube_request.js} +64 -20
- package/dist/protos/generated/video_streaming/innertube_request.js.map +1 -0
- package/dist/protos/generated/video_streaming/live_metadata.d.ts +8 -5
- package/dist/protos/generated/video_streaming/live_metadata.js +57 -26
- package/dist/protos/generated/video_streaming/live_metadata.js.map +1 -0
- package/dist/protos/generated/video_streaming/media_capabilities.js +1 -0
- package/dist/protos/generated/video_streaming/media_capabilities.js.map +1 -0
- package/dist/protos/generated/video_streaming/media_header.d.ts +5 -10
- package/dist/protos/generated/video_streaming/media_header.js +27 -23
- package/dist/protos/generated/video_streaming/media_header.js.map +1 -0
- package/dist/protos/generated/video_streaming/next_request_policy.d.ts +3 -0
- package/dist/protos/generated/video_streaming/next_request_policy.js +31 -0
- package/dist/protos/generated/video_streaming/next_request_policy.js.map +1 -0
- package/dist/protos/generated/video_streaming/onesie_header.d.ts +7 -7
- package/dist/protos/generated/video_streaming/onesie_header.js +15 -14
- package/dist/protos/generated/video_streaming/onesie_header.js.map +1 -0
- package/dist/protos/generated/video_streaming/onesie_header_type.d.ts +9 -23
- package/dist/protos/generated/video_streaming/onesie_header_type.js +16 -30
- package/dist/protos/generated/video_streaming/onesie_header_type.js.map +1 -0
- package/dist/protos/generated/video_streaming/{onesie_player_request.d.ts → onesie_innertube_request.d.ts} +2 -2
- package/dist/protos/generated/video_streaming/{onesie_player_request.js → onesie_innertube_request.js} +5 -4
- package/dist/protos/generated/video_streaming/onesie_innertube_request.js.map +1 -0
- package/dist/protos/generated/video_streaming/onesie_innertube_response.d.ts +15 -0
- package/dist/protos/generated/video_streaming/{onesie_player_response.js → onesie_innertube_response.js} +5 -22
- package/dist/protos/generated/video_streaming/onesie_innertube_response.js.map +1 -0
- package/dist/protos/generated/video_streaming/onesie_proxy_status.d.ts +18 -0
- package/dist/protos/generated/video_streaming/onesie_proxy_status.js +25 -0
- package/dist/protos/generated/video_streaming/onesie_proxy_status.js.map +1 -0
- package/dist/protos/generated/video_streaming/onesie_request.d.ts +6 -3
- package/dist/protos/generated/video_streaming/onesie_request.js +17 -5
- package/dist/protos/generated/video_streaming/onesie_request.js.map +1 -0
- package/dist/protos/generated/video_streaming/playback_cookie.d.ts +2 -2
- package/dist/protos/generated/video_streaming/playback_cookie.js +5 -4
- package/dist/protos/generated/video_streaming/playback_cookie.js.map +1 -0
- package/dist/protos/generated/video_streaming/playback_start_policy.js +1 -0
- package/dist/protos/generated/video_streaming/playback_start_policy.js.map +1 -0
- package/dist/protos/generated/video_streaming/reload_player_response.d.ts +14 -0
- package/dist/protos/generated/video_streaming/reload_player_response.js +73 -0
- package/dist/protos/generated/video_streaming/reload_player_response.js.map +1 -0
- package/dist/protos/generated/video_streaming/request_cancellation_policy.js +1 -0
- package/dist/protos/generated/video_streaming/request_cancellation_policy.js.map +1 -0
- package/dist/protos/generated/video_streaming/request_identifier.d.ts +10 -0
- package/dist/protos/generated/video_streaming/request_identifier.js +41 -0
- package/dist/protos/generated/video_streaming/request_identifier.js.map +1 -0
- package/dist/protos/generated/video_streaming/sabr_context_sending_policy.d.ts +12 -0
- package/dist/protos/generated/video_streaming/sabr_context_sending_policy.js +86 -0
- package/dist/protos/generated/video_streaming/sabr_context_sending_policy.js.map +1 -0
- package/dist/protos/generated/video_streaming/sabr_context_update.d.ts +48 -0
- package/dist/protos/generated/video_streaming/sabr_context_update.js +242 -0
- package/dist/protos/generated/video_streaming/sabr_context_update.js.map +1 -0
- package/dist/protos/generated/video_streaming/sabr_error.js +1 -0
- package/dist/protos/generated/video_streaming/sabr_error.js.map +1 -0
- package/dist/protos/generated/video_streaming/sabr_redirect.js +1 -0
- package/dist/protos/generated/video_streaming/sabr_redirect.js.map +1 -0
- package/dist/protos/generated/video_streaming/snackbar_message.d.ts +10 -0
- package/dist/protos/generated/video_streaming/snackbar_message.js +41 -0
- package/dist/protos/generated/video_streaming/snackbar_message.js.map +1 -0
- package/dist/protos/generated/video_streaming/stream_protection_status.d.ts +1 -1
- package/dist/protos/generated/video_streaming/stream_protection_status.js +5 -4
- package/dist/protos/generated/video_streaming/stream_protection_status.js.map +1 -0
- package/dist/protos/generated/video_streaming/streamer_context.d.ts +11 -11
- package/dist/protos/generated/video_streaming/streamer_context.js +32 -32
- package/dist/protos/generated/video_streaming/streamer_context.js.map +1 -0
- package/dist/protos/generated/video_streaming/time_range.d.ts +2 -2
- package/dist/protos/generated/video_streaming/time_range.js +8 -7
- package/dist/protos/generated/video_streaming/time_range.js.map +1 -0
- package/dist/protos/generated/video_streaming/ump_part_id.d.ts +58 -0
- package/dist/protos/generated/video_streaming/ump_part_id.js +89 -0
- package/dist/protos/generated/video_streaming/ump_part_id.js.map +1 -0
- package/dist/protos/generated/video_streaming/video_playback_abr_request.d.ts +20 -21
- package/dist/protos/generated/video_streaming/video_playback_abr_request.js +48 -86
- package/dist/protos/generated/video_streaming/video_playback_abr_request.js.map +1 -0
- package/dist/src/core/{ChunkedDataBuffer.d.ts → CompositeBuffer.d.ts} +8 -8
- package/dist/src/core/{ChunkedDataBuffer.js → CompositeBuffer.js} +32 -27
- package/dist/src/core/CompositeBuffer.js.map +1 -0
- package/dist/src/core/SabrStream.d.ts +356 -0
- package/dist/src/core/SabrStream.js +958 -0
- package/dist/src/core/SabrStream.js.map +1 -0
- package/dist/src/core/SabrStreamingAdapter.d.ts +158 -0
- package/dist/src/core/SabrStreamingAdapter.js +496 -0
- package/dist/src/core/SabrStreamingAdapter.js.map +1 -0
- package/dist/src/core/SabrUmpProcessor.d.ts +53 -0
- package/dist/src/core/SabrUmpProcessor.js +234 -0
- package/dist/src/core/SabrUmpProcessor.js.map +1 -0
- package/dist/src/core/{UMP.d.ts → UmpReader.d.ts} +6 -10
- package/dist/src/core/{UMP.js → UmpReader.js} +33 -36
- package/dist/src/core/UmpReader.js.map +1 -0
- package/dist/src/core/UmpWriter.d.ts +16 -0
- package/dist/src/core/UmpWriter.js +56 -0
- package/dist/src/core/UmpWriter.js.map +1 -0
- package/dist/src/exports/protos.d.ts +1 -0
- package/dist/src/exports/protos.js +2 -0
- package/dist/src/exports/protos.js.map +1 -0
- package/dist/src/exports/sabr-stream.d.ts +2 -0
- package/dist/src/exports/sabr-stream.js +2 -0
- package/dist/src/exports/sabr-stream.js.map +1 -0
- package/dist/src/exports/sabr-streaming-adapter.d.ts +3 -0
- package/dist/src/exports/sabr-streaming-adapter.js +3 -0
- package/dist/src/exports/sabr-streaming-adapter.js.map +1 -0
- package/dist/src/exports/ump.d.ts +3 -0
- package/dist/src/exports/ump.js +4 -0
- package/dist/src/exports/ump.js.map +1 -0
- package/dist/src/exports/utils.d.ts +1 -0
- package/dist/src/exports/utils.js +2 -0
- package/dist/src/exports/utils.js.map +1 -0
- package/dist/src/types/sabrStreamTypes.d.ts +102 -0
- package/dist/src/types/sabrStreamTypes.js +2 -0
- package/dist/src/types/sabrStreamTypes.js.map +1 -0
- package/dist/src/types/sabrStreamingAdapterTypes.d.ts +93 -0
- package/dist/src/types/sabrStreamingAdapterTypes.js +2 -0
- package/dist/src/types/sabrStreamingAdapterTypes.js.map +1 -0
- package/dist/src/types/shared.d.ts +64 -0
- package/dist/src/types/shared.js +2 -0
- package/dist/src/types/shared.js.map +1 -0
- package/dist/src/utils/CacheManager.d.ts +32 -0
- package/dist/src/utils/CacheManager.js +131 -0
- package/dist/src/utils/CacheManager.js.map +1 -0
- package/dist/src/utils/EventEmitterLike.d.ts +5 -0
- package/dist/src/utils/EventEmitterLike.js +51 -10
- package/dist/src/utils/EventEmitterLike.js.map +1 -0
- package/dist/src/utils/Logger.d.ts +30 -0
- package/dist/src/utils/Logger.js +80 -0
- package/dist/src/utils/Logger.js.map +1 -0
- package/dist/src/utils/Protos.d.ts +20 -13
- package/dist/src/utils/Protos.js +21 -13
- package/dist/src/utils/Protos.js.map +1 -0
- package/dist/src/utils/RequestMetadataManager.d.ts +15 -0
- package/dist/src/utils/RequestMetadataManager.js +48 -0
- package/dist/src/utils/RequestMetadataManager.js.map +1 -0
- package/dist/src/utils/formatKeyUtils.d.ts +45 -0
- package/dist/src/utils/formatKeyUtils.js +77 -0
- package/dist/src/utils/formatKeyUtils.js.map +1 -0
- package/dist/src/utils/index.d.ts +5 -3
- package/dist/src/utils/index.js +6 -2
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/sabrStreamUtils.d.ts +28 -0
- package/dist/src/utils/sabrStreamUtils.js +76 -0
- package/dist/src/utils/sabrStreamUtils.js.map +1 -0
- package/dist/src/utils/shared.d.ts +43 -0
- package/dist/src/utils/shared.js +108 -0
- package/dist/src/utils/shared.js.map +1 -0
- package/package.json +40 -12
- package/dist/protos/generated/video_streaming/onesie_player_response.d.ts +0 -31
- package/dist/protos/generated/video_streaming/proxy_status.d.ts +0 -14
- package/dist/protos/generated/video_streaming/proxy_status.js +0 -21
- package/dist/src/core/ServerAbrStream.d.ts +0 -39
- package/dist/src/core/ServerAbrStream.js +0 -259
- package/dist/src/core/index.d.ts +0 -3
- package/dist/src/core/index.js +0 -3
- package/dist/src/index.d.ts +0 -4
- package/dist/src/index.js +0 -4
- package/dist/src/utils/helpers.d.ts +0 -63
- package/dist/src/utils/helpers.js +0 -101
- package/dist/src/utils/types.d.ts +0 -65
- package/dist/src/utils/types.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SabrStream.js","sourceRoot":"","sources":["../../../src/core/SabrStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { CacheManager } from '../utils/index.js';
|
|
2
|
+
import { type ReloadPlaybackContext, type SnackbarMessage } from '../utils/Protos.js';
|
|
3
|
+
import type { SabrOptions } from '../types/sabrStreamingAdapterTypes.js';
|
|
4
|
+
import type { SabrFormat } from '../types/shared.js';
|
|
5
|
+
type OnSnackbarMessageCb = (snackbarMessage: SnackbarMessage) => void;
|
|
6
|
+
type OnReloadPlayerResponseCb = (reloadPlaybackContext: ReloadPlaybackContext) => Promise<void>;
|
|
7
|
+
type OnMintPoTokenCallback = () => Promise<string>;
|
|
8
|
+
export declare const SABR_CONSTANTS: {
|
|
9
|
+
readonly PROTOCOL: "sabr:";
|
|
10
|
+
readonly KEY_PARAM: "key";
|
|
11
|
+
readonly DEFAULT_OPTIONS: {
|
|
12
|
+
readonly enableCaching: true;
|
|
13
|
+
readonly enableVerboseRequestLogging: false;
|
|
14
|
+
readonly maxCacheSizeMB: 3;
|
|
15
|
+
readonly maxCacheAgeSeconds: 300;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Adapter class that handles YouTube SABR integration with media players (e.g., Shaka Player).
|
|
20
|
+
*
|
|
21
|
+
* What it does:
|
|
22
|
+
* - Sets up request/response interceptors so we can send proper SABR requests (UMP response parsing must be done in the player adapter).
|
|
23
|
+
* - Keeps track of initialized formats and their metadata.
|
|
24
|
+
* - Handles SABR-specific things, such as redirects, context updates, and playback cookies.
|
|
25
|
+
*/
|
|
26
|
+
export declare class SabrStreamingAdapter {
|
|
27
|
+
private readonly playerAdapter;
|
|
28
|
+
private readonly requestMetadataManager;
|
|
29
|
+
private readonly initializedFormats;
|
|
30
|
+
private readonly logger;
|
|
31
|
+
private options;
|
|
32
|
+
private ustreamerConfig?;
|
|
33
|
+
private serverAbrStreamingUrl?;
|
|
34
|
+
private sabrFormats;
|
|
35
|
+
private sabrContexts;
|
|
36
|
+
private activeSabrContextTypes;
|
|
37
|
+
private lastPlaybackCookie?;
|
|
38
|
+
private cacheManager;
|
|
39
|
+
private requestNumber;
|
|
40
|
+
private activeDelayPromise;
|
|
41
|
+
private onReloadPlayerResponseCallback?;
|
|
42
|
+
private onSnackbarMessageCallback?;
|
|
43
|
+
private onMintPoTokenCallback?;
|
|
44
|
+
isDisposed: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Registers a callback function to handle snackbar messages.
|
|
47
|
+
*/
|
|
48
|
+
onSnackbarMessage(cb: OnSnackbarMessageCb): void;
|
|
49
|
+
/**
|
|
50
|
+
* Handles server requests to reload the player with new parameters.
|
|
51
|
+
* @param cb
|
|
52
|
+
*/
|
|
53
|
+
onReloadPlayerResponse(cb: OnReloadPlayerResponseCb): void;
|
|
54
|
+
/**
|
|
55
|
+
* Registers a callback function to mint a new PoToken.
|
|
56
|
+
* @param cb
|
|
57
|
+
*/
|
|
58
|
+
onMintPoToken(cb: OnMintPoTokenCallback): void;
|
|
59
|
+
/**
|
|
60
|
+
* @param options - Configuration options for the adapter.
|
|
61
|
+
* @throws SabrAdapterError if a player adapter is not provided.
|
|
62
|
+
*/
|
|
63
|
+
constructor(options: SabrOptions);
|
|
64
|
+
/**
|
|
65
|
+
* Initializes the player adapter and sets up request/response interceptors.
|
|
66
|
+
* @throws SabrAdapterError if the adapter has been disposed.
|
|
67
|
+
*/
|
|
68
|
+
attach(player: any): void;
|
|
69
|
+
/**
|
|
70
|
+
* Sets the initial server abr streaming URL.
|
|
71
|
+
* @throws SabrAdapterError if the adapter has been disposed.
|
|
72
|
+
*/
|
|
73
|
+
setStreamingURL(url?: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* Sets the ustreamer configuration for SABR requests.
|
|
76
|
+
* @throws SabrAdapterError if the adapter has been disposed.
|
|
77
|
+
*/
|
|
78
|
+
setUstreamerConfig(ustreamerConfig?: string): void;
|
|
79
|
+
/**
|
|
80
|
+
* Sets the available SABR formats for streaming.
|
|
81
|
+
* @throws SabrAdapterError if the adapter has been disposed.
|
|
82
|
+
*/
|
|
83
|
+
setServerAbrFormats(sabrFormats: SabrFormat[]): void;
|
|
84
|
+
/**
|
|
85
|
+
* Returns the cache manager instance, if caching is enabled.
|
|
86
|
+
*/
|
|
87
|
+
getCacheManager(): CacheManager | null;
|
|
88
|
+
private setupInterceptors;
|
|
89
|
+
/**
|
|
90
|
+
* Processes incoming requests and modifies them to conform to SABR protocol requirements.
|
|
91
|
+
* For SABR protocol URIs, prepares a VideoPlaybackAbrRequest with current state information.
|
|
92
|
+
* For regular URIs with UMP requirements, adds necessary query parameters.
|
|
93
|
+
* @returns Modified request with SABR-specific changes.
|
|
94
|
+
*/
|
|
95
|
+
private handleRequest;
|
|
96
|
+
/**
|
|
97
|
+
* Creates a VideoPlaybackAbrRequest object with current playback state information.
|
|
98
|
+
* @param request - The original player HTTP request.
|
|
99
|
+
* @param currentFormat - The format currently being fetched.
|
|
100
|
+
* @param activeFormats - Object containing references to active audio and video formats.
|
|
101
|
+
* @returns A populated VideoPlaybackAbrRequest object.
|
|
102
|
+
* @throws SabrAdapterError if ustreamer config is not set.
|
|
103
|
+
*/
|
|
104
|
+
private createVideoPlaybackAbrRequest;
|
|
105
|
+
/**
|
|
106
|
+
* Adds buffering information to the ABR request for all active formats.
|
|
107
|
+
*
|
|
108
|
+
* NOTE:
|
|
109
|
+
* On the web, mobile, and TV clients, buffered ranges in combination to player time is what dictates the segments you get.
|
|
110
|
+
* In our case, we are cheating a bit by abusing the player time field (in clientAbrState), setting it to the exact start
|
|
111
|
+
* time value of the segment we want, while YouTube simply uses the actual player time.
|
|
112
|
+
*
|
|
113
|
+
* We don't have to fully replicate this behavior for two reasons:
|
|
114
|
+
* 1. The SABR server will only send so much segments for a given player time. That means players like Shaka would
|
|
115
|
+
* not be able to buffer more than what the server thinks is enough. It would behave like YouTube's.
|
|
116
|
+
* 2. We don't have to know what segment a buffered range starts/ends at. It is easy to do in Shaka, but not in other players.
|
|
117
|
+
*
|
|
118
|
+
* @param videoPlaybackAbrRequest - The ABR request to modify with buffering information.
|
|
119
|
+
* @param currentFormat - The format currently being requested.
|
|
120
|
+
* @param activeFormats - References to the currently active audio and video formats.
|
|
121
|
+
* @returns The format to discard (if any) - typically formats that are active but not currently requested.
|
|
122
|
+
*/
|
|
123
|
+
private addBufferingInfoToAbrRequest;
|
|
124
|
+
/**
|
|
125
|
+
* Creates a bogus buffered range for a format. Used when we want to signal to the server to not send any
|
|
126
|
+
* segments for this format.
|
|
127
|
+
* @param format - The format to create a full buffer range for.
|
|
128
|
+
* @returns A BufferedRange object indicating the entire format is buffered.
|
|
129
|
+
*/
|
|
130
|
+
private createFullBufferRange;
|
|
131
|
+
/**
|
|
132
|
+
* Creates a buffered range representing a partially buffered format.
|
|
133
|
+
* @param initializedFormat - The format with initialization data.
|
|
134
|
+
* @returns A BufferedRange object with segment information, or null if no metadata is available.
|
|
135
|
+
*/
|
|
136
|
+
private createPartialBufferRange;
|
|
137
|
+
/**
|
|
138
|
+
* Processes HTTP responses to extract SABR-specific information.
|
|
139
|
+
* @returns The response object.
|
|
140
|
+
*/
|
|
141
|
+
private handleResponse;
|
|
142
|
+
/**
|
|
143
|
+
* Makes a followup request and updates the original response object with the new data.
|
|
144
|
+
* @param originalResponse - The original HTTP response.
|
|
145
|
+
* @param url - The URL to request.
|
|
146
|
+
* @param isSABR - Whether this is a SABR request.
|
|
147
|
+
* @param byteRange - Optional byte range for the request.
|
|
148
|
+
* @returns The updated response.
|
|
149
|
+
*/
|
|
150
|
+
private makeFollowupRequest;
|
|
151
|
+
private checkDisposed;
|
|
152
|
+
/**
|
|
153
|
+
* Releases resources and cleans up the adapter instance.
|
|
154
|
+
* After calling dispose, the adapter can no longer be used.
|
|
155
|
+
*/
|
|
156
|
+
dispose(): void;
|
|
157
|
+
}
|
|
158
|
+
export {};
|