chore(protos): Add all possible onesie_proxy_status enum values

This commit is contained in:
Luan
2025-02-15 20:39:13 -03:00
parent d683f123c0
commit 3d0ec848cd
6 changed files with 151 additions and 8 deletions

View File

@@ -227,7 +227,7 @@ async function getBasicInfo(innertube: Innertube, videoId: string): Promise<YT.V
const decryptedData = await decryptResponse(iv, hmac, encrypted, clientConfig.clientKeyData);
const response = Protos.OnesiePlayerResponse.decode(decryptedData);
if (response.onesieProxyStatus !== 1)
if (response.onesieProxyStatus !== Protos.OnesieProxyStatus.ONESIE_PROXY_STATUS_OK)
throw new Error('Onesie proxy status not OK');
if (response.httpStatus !== 200)

View File

@@ -10,8 +10,113 @@ import { HttpHeader } from "../misc/common.js";
export const protobufPackage = "video_streaming";
export enum OnesieProxyStatus {
ONESIE_PROXY_STATUS_UNKNOWN = 0,
ONESIE_PROXY_STATUS_OK = 1,
ONESIE_PROXY_STATUS_DECRYPTION_FAILED = 2,
ONESIE_PROXY_STATUS_PARSING_FAILED = 3,
ONESIE_PROXY_STATUS_MISSING_X_FORWARDED_FOR = 4,
ONESIE_PROXY_STATUS_INVALID_X_FORWARDED_FOR = 5,
ONESIE_PROXY_STATUS_INVALID_CONTENT_TYPE = 6,
ONESIE_PROXY_STATUS_BACKEND_ERROR = 7,
ONESIE_PROXY_STATUS_CLIENT_ERROR = 8,
ONESIE_PROXY_STATUS_MISSING_CRYPTER = 9,
ONESIE_PROXY_STATUS_RESPONSE_JSON_SERIALIZATION_FAILED = 10,
ONESIE_PROXY_STATUS_DECOMPRESSION_FAILED = 11,
ONESIE_PROXY_STATUS_JSON_PARSING_FAILED = 12,
ONESIE_PROXY_STATUS_UNKNOWN_COMPRESSION_TYPE = 13,
UNRECOGNIZED = -1,
}
export function onesieProxyStatusFromJSON(object: any): OnesieProxyStatus {
switch (object) {
case 0:
case "ONESIE_PROXY_STATUS_UNKNOWN":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_UNKNOWN;
case 1:
case "ONESIE_PROXY_STATUS_OK":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_OK;
case 2:
case "ONESIE_PROXY_STATUS_DECRYPTION_FAILED":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_DECRYPTION_FAILED;
case 3:
case "ONESIE_PROXY_STATUS_PARSING_FAILED":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_PARSING_FAILED;
case 4:
case "ONESIE_PROXY_STATUS_MISSING_X_FORWARDED_FOR":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_MISSING_X_FORWARDED_FOR;
case 5:
case "ONESIE_PROXY_STATUS_INVALID_X_FORWARDED_FOR":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_INVALID_X_FORWARDED_FOR;
case 6:
case "ONESIE_PROXY_STATUS_INVALID_CONTENT_TYPE":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_INVALID_CONTENT_TYPE;
case 7:
case "ONESIE_PROXY_STATUS_BACKEND_ERROR":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_BACKEND_ERROR;
case 8:
case "ONESIE_PROXY_STATUS_CLIENT_ERROR":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_CLIENT_ERROR;
case 9:
case "ONESIE_PROXY_STATUS_MISSING_CRYPTER":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_MISSING_CRYPTER;
case 10:
case "ONESIE_PROXY_STATUS_RESPONSE_JSON_SERIALIZATION_FAILED":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_RESPONSE_JSON_SERIALIZATION_FAILED;
case 11:
case "ONESIE_PROXY_STATUS_DECOMPRESSION_FAILED":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_DECOMPRESSION_FAILED;
case 12:
case "ONESIE_PROXY_STATUS_JSON_PARSING_FAILED":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_JSON_PARSING_FAILED;
case 13:
case "ONESIE_PROXY_STATUS_UNKNOWN_COMPRESSION_TYPE":
return OnesieProxyStatus.ONESIE_PROXY_STATUS_UNKNOWN_COMPRESSION_TYPE;
case -1:
case "UNRECOGNIZED":
default:
return OnesieProxyStatus.UNRECOGNIZED;
}
}
export function onesieProxyStatusToJSON(object: OnesieProxyStatus): string {
switch (object) {
case OnesieProxyStatus.ONESIE_PROXY_STATUS_UNKNOWN:
return "ONESIE_PROXY_STATUS_UNKNOWN";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_OK:
return "ONESIE_PROXY_STATUS_OK";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_DECRYPTION_FAILED:
return "ONESIE_PROXY_STATUS_DECRYPTION_FAILED";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_PARSING_FAILED:
return "ONESIE_PROXY_STATUS_PARSING_FAILED";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_MISSING_X_FORWARDED_FOR:
return "ONESIE_PROXY_STATUS_MISSING_X_FORWARDED_FOR";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_INVALID_X_FORWARDED_FOR:
return "ONESIE_PROXY_STATUS_INVALID_X_FORWARDED_FOR";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_INVALID_CONTENT_TYPE:
return "ONESIE_PROXY_STATUS_INVALID_CONTENT_TYPE";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_BACKEND_ERROR:
return "ONESIE_PROXY_STATUS_BACKEND_ERROR";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_CLIENT_ERROR:
return "ONESIE_PROXY_STATUS_CLIENT_ERROR";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_MISSING_CRYPTER:
return "ONESIE_PROXY_STATUS_MISSING_CRYPTER";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_RESPONSE_JSON_SERIALIZATION_FAILED:
return "ONESIE_PROXY_STATUS_RESPONSE_JSON_SERIALIZATION_FAILED";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_DECOMPRESSION_FAILED:
return "ONESIE_PROXY_STATUS_DECOMPRESSION_FAILED";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_JSON_PARSING_FAILED:
return "ONESIE_PROXY_STATUS_JSON_PARSING_FAILED";
case OnesieProxyStatus.ONESIE_PROXY_STATUS_UNKNOWN_COMPRESSION_TYPE:
return "ONESIE_PROXY_STATUS_UNKNOWN_COMPRESSION_TYPE";
case OnesieProxyStatus.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
export interface OnesiePlayerResponse {
onesieProxyStatus?: number | undefined;
onesieProxyStatus?: OnesieProxyStatus | undefined;
httpStatus?: number | undefined;
headers: HttpHeader[];
body?: Uint8Array | undefined;
@@ -50,7 +155,7 @@ export const OnesiePlayerResponse: MessageFns<OnesiePlayerResponse> = {
break;
}
message.onesieProxyStatus = reader.int32();
message.onesieProxyStatus = reader.int32() as any;
continue;
case 2:
if (tag !== 16) {
@@ -84,7 +189,7 @@ export const OnesiePlayerResponse: MessageFns<OnesiePlayerResponse> = {
fromJSON(object: any): OnesiePlayerResponse {
return {
onesieProxyStatus: isSet(object.onesieProxyStatus) ? globalThis.Number(object.onesieProxyStatus) : 0,
onesieProxyStatus: isSet(object.onesieProxyStatus) ? onesieProxyStatusFromJSON(object.onesieProxyStatus) : 0,
httpStatus: isSet(object.httpStatus) ? globalThis.Number(object.httpStatus) : 0,
headers: globalThis.Array.isArray(object?.headers) ? object.headers.map((e: any) => HttpHeader.fromJSON(e)) : [],
body: isSet(object.body) ? bytesFromBase64(object.body) : new Uint8Array(0),
@@ -94,7 +199,7 @@ export const OnesiePlayerResponse: MessageFns<OnesiePlayerResponse> = {
toJSON(message: OnesiePlayerResponse): unknown {
const obj: any = {};
if (message.onesieProxyStatus !== undefined && message.onesieProxyStatus !== 0) {
obj.onesieProxyStatus = Math.round(message.onesieProxyStatus);
obj.onesieProxyStatus = onesieProxyStatusToJSON(message.onesieProxyStatus);
}
if (message.httpStatus !== undefined && message.httpStatus !== 0) {
obj.httpStatus = Math.round(message.httpStatus);

View File

@@ -20,7 +20,11 @@ export interface OnesieRequest {
onesieUstreamerConfig?: Uint8Array | undefined;
maxVp9Height?: number | undefined;
clientDisplayHeight?: number | undefined;
streamerContext?: StreamerContext | undefined;
streamerContext?:
| StreamerContext
| undefined;
/** MLOnesieRequestTarget */
requestTarget?: number | undefined;
bufferedRanges: BufferedRange[];
}
@@ -33,6 +37,7 @@ function createBaseOnesieRequest(): OnesieRequest {
maxVp9Height: 0,
clientDisplayHeight: 0,
streamerContext: undefined,
requestTarget: 0,
bufferedRanges: [],
};
}
@@ -60,6 +65,9 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
if (message.streamerContext !== undefined) {
StreamerContext.encode(message.streamerContext, writer.uint32(82).fork()).join();
}
if (message.requestTarget !== undefined && message.requestTarget !== 0) {
writer.uint32(104).int32(message.requestTarget);
}
for (const v of message.bufferedRanges) {
BufferedRange.encode(v!, writer.uint32(114).fork()).join();
}
@@ -122,6 +130,13 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
message.streamerContext = StreamerContext.decode(reader, reader.uint32());
continue;
case 13:
if (tag !== 104) {
break;
}
message.requestTarget = reader.int32();
continue;
case 14:
if (tag !== 114) {
break;
@@ -149,6 +164,7 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
maxVp9Height: isSet(object.maxVp9Height) ? globalThis.Number(object.maxVp9Height) : 0,
clientDisplayHeight: isSet(object.clientDisplayHeight) ? globalThis.Number(object.clientDisplayHeight) : 0,
streamerContext: isSet(object.streamerContext) ? StreamerContext.fromJSON(object.streamerContext) : undefined,
requestTarget: isSet(object.requestTarget) ? globalThis.Number(object.requestTarget) : 0,
bufferedRanges: globalThis.Array.isArray(object?.bufferedRanges)
? object.bufferedRanges.map((e: any) => BufferedRange.fromJSON(e))
: [],
@@ -178,6 +194,9 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
if (message.streamerContext !== undefined) {
obj.streamerContext = StreamerContext.toJSON(message.streamerContext);
}
if (message.requestTarget !== undefined && message.requestTarget !== 0) {
obj.requestTarget = Math.round(message.requestTarget);
}
if (message.bufferedRanges?.length) {
obj.bufferedRanges = message.bufferedRanges.map((e) => BufferedRange.toJSON(e));
}
@@ -202,6 +221,7 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
message.streamerContext = (object.streamerContext !== undefined && object.streamerContext !== null)
? StreamerContext.fromPartial(object.streamerContext)
: undefined;
message.requestTarget = object.requestTarget ?? 0;
message.bufferedRanges = object.bufferedRanges?.map((e) => BufferedRange.fromPartial(e)) || [];
return message;
},

View File

@@ -3,8 +3,25 @@ package video_streaming;
import "misc/common.proto";
enum OnesieProxyStatus {
ONESIE_PROXY_STATUS_UNKNOWN = 0;
ONESIE_PROXY_STATUS_OK = 1;
ONESIE_PROXY_STATUS_DECRYPTION_FAILED = 2;
ONESIE_PROXY_STATUS_PARSING_FAILED = 3;
ONESIE_PROXY_STATUS_MISSING_X_FORWARDED_FOR = 4;
ONESIE_PROXY_STATUS_INVALID_X_FORWARDED_FOR = 5;
ONESIE_PROXY_STATUS_INVALID_CONTENT_TYPE = 6;
ONESIE_PROXY_STATUS_BACKEND_ERROR = 7;
ONESIE_PROXY_STATUS_CLIENT_ERROR = 8;
ONESIE_PROXY_STATUS_MISSING_CRYPTER = 9;
ONESIE_PROXY_STATUS_RESPONSE_JSON_SERIALIZATION_FAILED = 10;
ONESIE_PROXY_STATUS_DECOMPRESSION_FAILED = 11;
ONESIE_PROXY_STATUS_JSON_PARSING_FAILED = 12;
ONESIE_PROXY_STATUS_UNKNOWN_COMPRESSION_TYPE = 13;
}
message OnesiePlayerResponse {
optional int32 onesie_proxy_status = 1;
optional OnesieProxyStatus onesie_proxy_status = 1;
optional int32 http_status = 2;
repeated .misc.HttpHeader headers = 3;
optional bytes body = 4;

View File

@@ -14,5 +14,6 @@ message OnesieRequest {
optional int32 max_vp9_height = 5;
optional int32 client_display_height = 6;
optional StreamerContext streamer_context = 10;
optional int32 request_target = 13; // MLOnesieRequestTarget
repeated BufferedRange buffered_ranges = 14;
}

View File

@@ -14,7 +14,7 @@ export { EncryptedPlayerRequest } from '../../protos/generated/video_streaming/e
export { OnesieHeader } from '../../protos/generated/video_streaming/onesie_header.js';
export { OnesieHeaderType } from '../../protos/generated/video_streaming/onesie_header_type.js';
export { OnesiePlayerRequest } from '../../protos/generated/video_streaming/onesie_player_request.js';
export { OnesiePlayerResponse } from '../../protos/generated/video_streaming/onesie_player_response.js';
export { OnesiePlayerResponse, OnesieProxyStatus } from '../../protos/generated/video_streaming/onesie_player_response.js';
export { ClientAbrState } from '../../protos/generated/video_streaming/client_abr_state.js';
export { StreamerContext } from '../../protos/generated/video_streaming/streamer_context.js';
export { ProxyStatus } from '../../protos/generated/video_streaming/proxy_status.js';