chore: update protos

This commit is contained in:
Luan
2024-10-23 09:35:50 -03:00
parent eb9311e482
commit 3f0ddc0555
19 changed files with 1014 additions and 852 deletions

View File

@@ -0,0 +1,494 @@
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
// protoc-gen-ts_proto v2.2.0
// protoc v5.28.0
// source: video_streaming/buffered_range.proto
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { FormatId } from "../misc/common.js";
import { TimeRange } from "./time_range.js";
export const protobufPackage = "video_streaming";
export interface BufferedRange {
formatId: FormatId | undefined;
startTimeMs: number;
durationMs: number;
startSegmentIndex: number;
endSegmentIndex: number;
timeRange?: TimeRange | undefined;
field9?: Kob | undefined;
field11?: YPa | undefined;
field12?: YPa | undefined;
}
export interface Kob {
EW: Kob_Pa[];
}
export interface Kob_Pa {
videoId?: string | undefined;
lmt?: number | undefined;
}
export interface YPa {
field1?: number | undefined;
field2?: number | undefined;
field3?: number | undefined;
}
function createBaseBufferedRange(): BufferedRange {
return {
formatId: undefined,
startTimeMs: 0,
durationMs: 0,
startSegmentIndex: 0,
endSegmentIndex: 0,
timeRange: undefined,
field9: undefined,
field11: undefined,
field12: undefined,
};
}
export const BufferedRange: MessageFns<BufferedRange> = {
encode(message: BufferedRange, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.formatId !== undefined) {
FormatId.encode(message.formatId, writer.uint32(10).fork()).join();
}
if (message.startTimeMs !== 0) {
writer.uint32(16).int64(message.startTimeMs);
}
if (message.durationMs !== 0) {
writer.uint32(24).int64(message.durationMs);
}
if (message.startSegmentIndex !== 0) {
writer.uint32(32).int32(message.startSegmentIndex);
}
if (message.endSegmentIndex !== 0) {
writer.uint32(40).int32(message.endSegmentIndex);
}
if (message.timeRange !== undefined) {
TimeRange.encode(message.timeRange, writer.uint32(50).fork()).join();
}
if (message.field9 !== undefined) {
Kob.encode(message.field9, writer.uint32(74).fork()).join();
}
if (message.field11 !== undefined) {
YPa.encode(message.field11, writer.uint32(90).fork()).join();
}
if (message.field12 !== undefined) {
YPa.encode(message.field12, writer.uint32(98).fork()).join();
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): BufferedRange {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseBufferedRange();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.formatId = FormatId.decode(reader, reader.uint32());
continue;
case 2:
if (tag !== 16) {
break;
}
message.startTimeMs = longToNumber(reader.int64());
continue;
case 3:
if (tag !== 24) {
break;
}
message.durationMs = longToNumber(reader.int64());
continue;
case 4:
if (tag !== 32) {
break;
}
message.startSegmentIndex = reader.int32();
continue;
case 5:
if (tag !== 40) {
break;
}
message.endSegmentIndex = reader.int32();
continue;
case 6:
if (tag !== 50) {
break;
}
message.timeRange = TimeRange.decode(reader, reader.uint32());
continue;
case 9:
if (tag !== 74) {
break;
}
message.field9 = Kob.decode(reader, reader.uint32());
continue;
case 11:
if (tag !== 90) {
break;
}
message.field11 = YPa.decode(reader, reader.uint32());
continue;
case 12:
if (tag !== 98) {
break;
}
message.field12 = YPa.decode(reader, reader.uint32());
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): BufferedRange {
return {
formatId: isSet(object.formatId) ? FormatId.fromJSON(object.formatId) : undefined,
startTimeMs: isSet(object.startTimeMs) ? globalThis.Number(object.startTimeMs) : 0,
durationMs: isSet(object.durationMs) ? globalThis.Number(object.durationMs) : 0,
startSegmentIndex: isSet(object.startSegmentIndex) ? globalThis.Number(object.startSegmentIndex) : 0,
endSegmentIndex: isSet(object.endSegmentIndex) ? globalThis.Number(object.endSegmentIndex) : 0,
timeRange: isSet(object.timeRange) ? TimeRange.fromJSON(object.timeRange) : undefined,
field9: isSet(object.field9) ? Kob.fromJSON(object.field9) : undefined,
field11: isSet(object.field11) ? YPa.fromJSON(object.field11) : undefined,
field12: isSet(object.field12) ? YPa.fromJSON(object.field12) : undefined,
};
},
toJSON(message: BufferedRange): unknown {
const obj: any = {};
if (message.formatId !== undefined) {
obj.formatId = FormatId.toJSON(message.formatId);
}
if (message.startTimeMs !== 0) {
obj.startTimeMs = Math.round(message.startTimeMs);
}
if (message.durationMs !== 0) {
obj.durationMs = Math.round(message.durationMs);
}
if (message.startSegmentIndex !== 0) {
obj.startSegmentIndex = Math.round(message.startSegmentIndex);
}
if (message.endSegmentIndex !== 0) {
obj.endSegmentIndex = Math.round(message.endSegmentIndex);
}
if (message.timeRange !== undefined) {
obj.timeRange = TimeRange.toJSON(message.timeRange);
}
if (message.field9 !== undefined) {
obj.field9 = Kob.toJSON(message.field9);
}
if (message.field11 !== undefined) {
obj.field11 = YPa.toJSON(message.field11);
}
if (message.field12 !== undefined) {
obj.field12 = YPa.toJSON(message.field12);
}
return obj;
},
create<I extends Exact<DeepPartial<BufferedRange>, I>>(base?: I): BufferedRange {
return BufferedRange.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<BufferedRange>, I>>(object: I): BufferedRange {
const message = createBaseBufferedRange();
message.formatId = (object.formatId !== undefined && object.formatId !== null)
? FormatId.fromPartial(object.formatId)
: undefined;
message.startTimeMs = object.startTimeMs ?? 0;
message.durationMs = object.durationMs ?? 0;
message.startSegmentIndex = object.startSegmentIndex ?? 0;
message.endSegmentIndex = object.endSegmentIndex ?? 0;
message.timeRange = (object.timeRange !== undefined && object.timeRange !== null)
? TimeRange.fromPartial(object.timeRange)
: undefined;
message.field9 = (object.field9 !== undefined && object.field9 !== null)
? Kob.fromPartial(object.field9)
: undefined;
message.field11 = (object.field11 !== undefined && object.field11 !== null)
? YPa.fromPartial(object.field11)
: undefined;
message.field12 = (object.field12 !== undefined && object.field12 !== null)
? YPa.fromPartial(object.field12)
: undefined;
return message;
},
};
function createBaseKob(): Kob {
return { EW: [] };
}
export const Kob: MessageFns<Kob> = {
encode(message: Kob, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
for (const v of message.EW) {
Kob_Pa.encode(v!, writer.uint32(10).fork()).join();
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): Kob {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseKob();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.EW.push(Kob_Pa.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): Kob {
return { EW: globalThis.Array.isArray(object?.EW) ? object.EW.map((e: any) => Kob_Pa.fromJSON(e)) : [] };
},
toJSON(message: Kob): unknown {
const obj: any = {};
if (message.EW?.length) {
obj.EW = message.EW.map((e) => Kob_Pa.toJSON(e));
}
return obj;
},
create<I extends Exact<DeepPartial<Kob>, I>>(base?: I): Kob {
return Kob.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<Kob>, I>>(object: I): Kob {
const message = createBaseKob();
message.EW = object.EW?.map((e) => Kob_Pa.fromPartial(e)) || [];
return message;
},
};
function createBaseKob_Pa(): Kob_Pa {
return { videoId: "", lmt: 0 };
}
export const Kob_Pa: MessageFns<Kob_Pa> = {
encode(message: Kob_Pa, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.videoId !== undefined && message.videoId !== "") {
writer.uint32(10).string(message.videoId);
}
if (message.lmt !== undefined && message.lmt !== 0) {
writer.uint32(16).uint64(message.lmt);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): Kob_Pa {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseKob_Pa();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.videoId = reader.string();
continue;
case 2:
if (tag !== 16) {
break;
}
message.lmt = longToNumber(reader.uint64());
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): Kob_Pa {
return {
videoId: isSet(object.videoId) ? globalThis.String(object.videoId) : "",
lmt: isSet(object.lmt) ? globalThis.Number(object.lmt) : 0,
};
},
toJSON(message: Kob_Pa): unknown {
const obj: any = {};
if (message.videoId !== undefined && message.videoId !== "") {
obj.videoId = message.videoId;
}
if (message.lmt !== undefined && message.lmt !== 0) {
obj.lmt = Math.round(message.lmt);
}
return obj;
},
create<I extends Exact<DeepPartial<Kob_Pa>, I>>(base?: I): Kob_Pa {
return Kob_Pa.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<Kob_Pa>, I>>(object: I): Kob_Pa {
const message = createBaseKob_Pa();
message.videoId = object.videoId ?? "";
message.lmt = object.lmt ?? 0;
return message;
},
};
function createBaseYPa(): YPa {
return { field1: 0, field2: 0, field3: 0 };
}
export const YPa: MessageFns<YPa> = {
encode(message: YPa, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.field1 !== undefined && message.field1 !== 0) {
writer.uint32(8).int32(message.field1);
}
if (message.field2 !== undefined && message.field2 !== 0) {
writer.uint32(16).int32(message.field2);
}
if (message.field3 !== undefined && message.field3 !== 0) {
writer.uint32(24).int32(message.field3);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): YPa {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseYPa();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 8) {
break;
}
message.field1 = reader.int32();
continue;
case 2:
if (tag !== 16) {
break;
}
message.field2 = reader.int32();
continue;
case 3:
if (tag !== 24) {
break;
}
message.field3 = reader.int32();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): YPa {
return {
field1: isSet(object.field1) ? globalThis.Number(object.field1) : 0,
field2: isSet(object.field2) ? globalThis.Number(object.field2) : 0,
field3: isSet(object.field3) ? globalThis.Number(object.field3) : 0,
};
},
toJSON(message: YPa): unknown {
const obj: any = {};
if (message.field1 !== undefined && message.field1 !== 0) {
obj.field1 = Math.round(message.field1);
}
if (message.field2 !== undefined && message.field2 !== 0) {
obj.field2 = Math.round(message.field2);
}
if (message.field3 !== undefined && message.field3 !== 0) {
obj.field3 = Math.round(message.field3);
}
return obj;
},
create<I extends Exact<DeepPartial<YPa>, I>>(base?: I): YPa {
return YPa.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<YPa>, I>>(object: I): YPa {
const message = createBaseYPa();
message.field1 = object.field1 ?? 0;
message.field2 = object.field2 ?? 0;
message.field3 = object.field3 ?? 0;
return message;
},
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
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 {} ? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
function longToNumber(int64: { toString(): string }): number {
const num = globalThis.Number(int64.toString());
if (num > globalThis.Number.MAX_SAFE_INTEGER) {
throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
}
if (num < globalThis.Number.MIN_SAFE_INTEGER) {
throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
}
return num;
}
function isSet(value: any): boolean {
return value !== null && value !== undefined;
}
export interface MessageFns<T> {
encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T;
toJSON(message: T): unknown;
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}

View File

@@ -2,30 +2,35 @@
// versions:
// protoc-gen-ts_proto v2.2.0
// protoc v5.28.0
// source: video_streaming/encrypted_request.proto
// source: video_streaming/encrypted_player_request.proto
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
export const protobufPackage = "video_streaming";
export interface EncryptedRequest {
encryptedOnesieRequest?: Uint8Array | undefined;
export interface EncryptedPlayerRequest {
/** InnerTubeContext proto? */
context?: Uint8Array | undefined;
encryptedOnesiePlayerRequest?: Uint8Array | undefined;
encryptedClientKey?: Uint8Array | undefined;
iv?: Uint8Array | undefined;
hmac?: Uint8Array | undefined;
reverseProxyConfig?: string | undefined;
YP?: boolean | undefined;
pM?: boolean | undefined;
enableCompression?: boolean | undefined;
TQ?: boolean | undefined;
}
function createBaseEncryptedRequest(): EncryptedRequest {
function createBaseEncryptedPlayerRequest(): EncryptedPlayerRequest {
return {
encryptedOnesieRequest: new Uint8Array(0),
context: new Uint8Array(0),
encryptedOnesiePlayerRequest: new Uint8Array(0),
encryptedClientKey: new Uint8Array(0),
iv: new Uint8Array(0),
hmac: new Uint8Array(0),
reverseProxyConfig: "",
YP: false,
pM: false,
enableCompression: false,
@@ -33,10 +38,13 @@ function createBaseEncryptedRequest(): EncryptedRequest {
};
}
export const EncryptedRequest: MessageFns<EncryptedRequest> = {
encode(message: EncryptedRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.encryptedOnesieRequest !== undefined && message.encryptedOnesieRequest.length !== 0) {
writer.uint32(18).bytes(message.encryptedOnesieRequest);
export const EncryptedPlayerRequest: MessageFns<EncryptedPlayerRequest> = {
encode(message: EncryptedPlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.context !== undefined && message.context.length !== 0) {
writer.uint32(10).bytes(message.context);
}
if (message.encryptedOnesiePlayerRequest !== undefined && message.encryptedOnesiePlayerRequest.length !== 0) {
writer.uint32(18).bytes(message.encryptedOnesiePlayerRequest);
}
if (message.encryptedClientKey !== undefined && message.encryptedClientKey.length !== 0) {
writer.uint32(42).bytes(message.encryptedClientKey);
@@ -47,6 +55,9 @@ export const EncryptedRequest: MessageFns<EncryptedRequest> = {
if (message.hmac !== undefined && message.hmac.length !== 0) {
writer.uint32(58).bytes(message.hmac);
}
if (message.reverseProxyConfig !== undefined && message.reverseProxyConfig !== "") {
writer.uint32(74).string(message.reverseProxyConfig);
}
if (message.YP !== undefined && message.YP !== false) {
writer.uint32(80).bool(message.YP);
}
@@ -62,19 +73,26 @@ export const EncryptedRequest: MessageFns<EncryptedRequest> = {
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): EncryptedRequest {
decode(input: BinaryReader | Uint8Array, length?: number): EncryptedPlayerRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseEncryptedRequest();
const message = createBaseEncryptedPlayerRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.context = reader.bytes();
continue;
case 2:
if (tag !== 18) {
break;
}
message.encryptedOnesieRequest = reader.bytes();
message.encryptedOnesiePlayerRequest = reader.bytes();
continue;
case 5:
if (tag !== 42) {
@@ -97,6 +115,13 @@ export const EncryptedRequest: MessageFns<EncryptedRequest> = {
message.hmac = reader.bytes();
continue;
case 9:
if (tag !== 74) {
break;
}
message.reverseProxyConfig = reader.string();
continue;
case 10:
if (tag !== 80) {
break;
@@ -134,16 +159,18 @@ export const EncryptedRequest: MessageFns<EncryptedRequest> = {
return message;
},
fromJSON(object: any): EncryptedRequest {
fromJSON(object: any): EncryptedPlayerRequest {
return {
encryptedOnesieRequest: isSet(object.encryptedOnesieRequest)
? bytesFromBase64(object.encryptedOnesieRequest)
context: isSet(object.context) ? bytesFromBase64(object.context) : new Uint8Array(0),
encryptedOnesiePlayerRequest: isSet(object.encryptedOnesiePlayerRequest)
? bytesFromBase64(object.encryptedOnesiePlayerRequest)
: new Uint8Array(0),
encryptedClientKey: isSet(object.encryptedClientKey)
? bytesFromBase64(object.encryptedClientKey)
: new Uint8Array(0),
iv: isSet(object.iv) ? bytesFromBase64(object.iv) : new Uint8Array(0),
hmac: isSet(object.hmac) ? bytesFromBase64(object.hmac) : new Uint8Array(0),
reverseProxyConfig: isSet(object.reverseProxyConfig) ? globalThis.String(object.reverseProxyConfig) : "",
YP: isSet(object.YP) ? globalThis.Boolean(object.YP) : false,
pM: isSet(object.pM) ? globalThis.Boolean(object.pM) : false,
enableCompression: isSet(object.enableCompression) ? globalThis.Boolean(object.enableCompression) : false,
@@ -151,10 +178,13 @@ export const EncryptedRequest: MessageFns<EncryptedRequest> = {
};
},
toJSON(message: EncryptedRequest): unknown {
toJSON(message: EncryptedPlayerRequest): unknown {
const obj: any = {};
if (message.encryptedOnesieRequest !== undefined && message.encryptedOnesieRequest.length !== 0) {
obj.encryptedOnesieRequest = base64FromBytes(message.encryptedOnesieRequest);
if (message.context !== undefined && message.context.length !== 0) {
obj.context = base64FromBytes(message.context);
}
if (message.encryptedOnesiePlayerRequest !== undefined && message.encryptedOnesiePlayerRequest.length !== 0) {
obj.encryptedOnesiePlayerRequest = base64FromBytes(message.encryptedOnesiePlayerRequest);
}
if (message.encryptedClientKey !== undefined && message.encryptedClientKey.length !== 0) {
obj.encryptedClientKey = base64FromBytes(message.encryptedClientKey);
@@ -165,6 +195,9 @@ export const EncryptedRequest: MessageFns<EncryptedRequest> = {
if (message.hmac !== undefined && message.hmac.length !== 0) {
obj.hmac = base64FromBytes(message.hmac);
}
if (message.reverseProxyConfig !== undefined && message.reverseProxyConfig !== "") {
obj.reverseProxyConfig = message.reverseProxyConfig;
}
if (message.YP !== undefined && message.YP !== false) {
obj.YP = message.YP;
}
@@ -180,15 +213,17 @@ export const EncryptedRequest: MessageFns<EncryptedRequest> = {
return obj;
},
create<I extends Exact<DeepPartial<EncryptedRequest>, I>>(base?: I): EncryptedRequest {
return EncryptedRequest.fromPartial(base ?? ({} as any));
create<I extends Exact<DeepPartial<EncryptedPlayerRequest>, I>>(base?: I): EncryptedPlayerRequest {
return EncryptedPlayerRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<EncryptedRequest>, I>>(object: I): EncryptedRequest {
const message = createBaseEncryptedRequest();
message.encryptedOnesieRequest = object.encryptedOnesieRequest ?? new Uint8Array(0);
fromPartial<I extends Exact<DeepPartial<EncryptedPlayerRequest>, I>>(object: I): EncryptedPlayerRequest {
const message = createBaseEncryptedPlayerRequest();
message.context = object.context ?? new Uint8Array(0);
message.encryptedOnesiePlayerRequest = object.encryptedOnesiePlayerRequest ?? new Uint8Array(0);
message.encryptedClientKey = object.encryptedClientKey ?? new Uint8Array(0);
message.iv = object.iv ?? new Uint8Array(0);
message.hmac = object.hmac ?? new Uint8Array(0);
message.reverseProxyConfig = object.reverseProxyConfig ?? "";
message.YP = object.YP ?? false;
message.pM = object.pM ?? false;
message.enableCompression = object.enableCompression ?? false;

View File

@@ -1,179 +0,0 @@
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
// protoc-gen-ts_proto v2.2.0
// protoc v5.28.0
// source: video_streaming/onesie_innertube_request.proto
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { ClientAbrState } from "./client_abr_state.js";
import { EncryptedRequest } from "./encrypted_request.js";
import { StreamerContext } from "./streamer_context.js";
export const protobufPackage = "video_streaming";
export interface OnesieInnertubeRequest {
clientAbrState?: ClientAbrState | undefined;
encryptedRequest?: EncryptedRequest | undefined;
onesieUstreamerConfig?: Uint8Array | undefined;
streamerContext?: StreamerContext | undefined;
}
function createBaseOnesieInnertubeRequest(): OnesieInnertubeRequest {
return {
clientAbrState: undefined,
encryptedRequest: undefined,
onesieUstreamerConfig: new Uint8Array(0),
streamerContext: undefined,
};
}
export const OnesieInnertubeRequest: MessageFns<OnesieInnertubeRequest> = {
encode(message: OnesieInnertubeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.clientAbrState !== undefined) {
ClientAbrState.encode(message.clientAbrState, writer.uint32(18).fork()).join();
}
if (message.encryptedRequest !== undefined) {
EncryptedRequest.encode(message.encryptedRequest, writer.uint32(26).fork()).join();
}
if (message.onesieUstreamerConfig !== undefined && message.onesieUstreamerConfig.length !== 0) {
writer.uint32(34).bytes(message.onesieUstreamerConfig);
}
if (message.streamerContext !== undefined) {
StreamerContext.encode(message.streamerContext, writer.uint32(82).fork()).join();
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): OnesieInnertubeRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseOnesieInnertubeRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 2:
if (tag !== 18) {
break;
}
message.clientAbrState = ClientAbrState.decode(reader, reader.uint32());
continue;
case 3:
if (tag !== 26) {
break;
}
message.encryptedRequest = EncryptedRequest.decode(reader, reader.uint32());
continue;
case 4:
if (tag !== 34) {
break;
}
message.onesieUstreamerConfig = reader.bytes();
continue;
case 10:
if (tag !== 82) {
break;
}
message.streamerContext = StreamerContext.decode(reader, reader.uint32());
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): OnesieInnertubeRequest {
return {
clientAbrState: isSet(object.clientAbrState) ? ClientAbrState.fromJSON(object.clientAbrState) : undefined,
encryptedRequest: isSet(object.encryptedRequest) ? EncryptedRequest.fromJSON(object.encryptedRequest) : undefined,
onesieUstreamerConfig: isSet(object.onesieUstreamerConfig)
? bytesFromBase64(object.onesieUstreamerConfig)
: new Uint8Array(0),
streamerContext: isSet(object.streamerContext) ? StreamerContext.fromJSON(object.streamerContext) : undefined,
};
},
toJSON(message: OnesieInnertubeRequest): unknown {
const obj: any = {};
if (message.clientAbrState !== undefined) {
obj.clientAbrState = ClientAbrState.toJSON(message.clientAbrState);
}
if (message.encryptedRequest !== undefined) {
obj.encryptedRequest = EncryptedRequest.toJSON(message.encryptedRequest);
}
if (message.onesieUstreamerConfig !== undefined && message.onesieUstreamerConfig.length !== 0) {
obj.onesieUstreamerConfig = base64FromBytes(message.onesieUstreamerConfig);
}
if (message.streamerContext !== undefined) {
obj.streamerContext = StreamerContext.toJSON(message.streamerContext);
}
return obj;
},
create<I extends Exact<DeepPartial<OnesieInnertubeRequest>, I>>(base?: I): OnesieInnertubeRequest {
return OnesieInnertubeRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<OnesieInnertubeRequest>, I>>(object: I): OnesieInnertubeRequest {
const message = createBaseOnesieInnertubeRequest();
message.clientAbrState = (object.clientAbrState !== undefined && object.clientAbrState !== null)
? ClientAbrState.fromPartial(object.clientAbrState)
: undefined;
message.encryptedRequest = (object.encryptedRequest !== undefined && object.encryptedRequest !== null)
? EncryptedRequest.fromPartial(object.encryptedRequest)
: undefined;
message.onesieUstreamerConfig = object.onesieUstreamerConfig ?? new Uint8Array(0);
message.streamerContext = (object.streamerContext !== undefined && object.streamerContext !== null)
? StreamerContext.fromPartial(object.streamerContext)
: undefined;
return message;
},
};
function bytesFromBase64(b64: string): Uint8Array {
const bin = globalThis.atob(b64);
const arr = new Uint8Array(bin.length);
for (let i = 0; i < bin.length; ++i) {
arr[i] = bin.charCodeAt(i);
}
return arr;
}
function base64FromBytes(arr: Uint8Array): string {
const bin: string[] = [];
arr.forEach((byte) => {
bin.push(globalThis.String.fromCharCode(byte));
});
return globalThis.btoa(bin.join(""));
}
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
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 {} ? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
function isSet(value: any): boolean {
return value !== null && value !== undefined;
}
export interface MessageFns<T> {
encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T;
toJSON(message: T): unknown;
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}

View File

@@ -0,0 +1,168 @@
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
// protoc-gen-ts_proto v2.2.0
// protoc v5.28.0
// source: video_streaming/onesie_player_request.proto
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { HttpHeader } from "../misc/common.js";
export const protobufPackage = "video_streaming";
export interface OnesiePlayerRequest {
url?: string | undefined;
headers: HttpHeader[];
body?: string | undefined;
proxiedByTrustedBandaid?:
| boolean
| undefined;
/** Seen this on youtube.com and the YTMusic protos. Not sure what it is yet. */
field6?: boolean | undefined;
}
function createBaseOnesiePlayerRequest(): OnesiePlayerRequest {
return { url: "", headers: [], body: "", proxiedByTrustedBandaid: false, field6: false };
}
export const OnesiePlayerRequest: MessageFns<OnesiePlayerRequest> = {
encode(message: OnesiePlayerRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.url !== undefined && message.url !== "") {
writer.uint32(10).string(message.url);
}
for (const v of message.headers) {
HttpHeader.encode(v!, writer.uint32(18).fork()).join();
}
if (message.body !== undefined && message.body !== "") {
writer.uint32(26).string(message.body);
}
if (message.proxiedByTrustedBandaid !== undefined && message.proxiedByTrustedBandaid !== false) {
writer.uint32(32).bool(message.proxiedByTrustedBandaid);
}
if (message.field6 !== undefined && message.field6 !== false) {
writer.uint32(48).bool(message.field6);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): OnesiePlayerRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseOnesiePlayerRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.url = reader.string();
continue;
case 2:
if (tag !== 18) {
break;
}
message.headers.push(HttpHeader.decode(reader, reader.uint32()));
continue;
case 3:
if (tag !== 26) {
break;
}
message.body = reader.string();
continue;
case 4:
if (tag !== 32) {
break;
}
message.proxiedByTrustedBandaid = reader.bool();
continue;
case 6:
if (tag !== 48) {
break;
}
message.field6 = reader.bool();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): OnesiePlayerRequest {
return {
url: isSet(object.url) ? globalThis.String(object.url) : "",
headers: globalThis.Array.isArray(object?.headers) ? object.headers.map((e: any) => HttpHeader.fromJSON(e)) : [],
body: isSet(object.body) ? globalThis.String(object.body) : "",
proxiedByTrustedBandaid: isSet(object.proxiedByTrustedBandaid)
? globalThis.Boolean(object.proxiedByTrustedBandaid)
: false,
field6: isSet(object.field6) ? globalThis.Boolean(object.field6) : false,
};
},
toJSON(message: OnesiePlayerRequest): unknown {
const obj: any = {};
if (message.url !== undefined && message.url !== "") {
obj.url = message.url;
}
if (message.headers?.length) {
obj.headers = message.headers.map((e) => HttpHeader.toJSON(e));
}
if (message.body !== undefined && message.body !== "") {
obj.body = message.body;
}
if (message.proxiedByTrustedBandaid !== undefined && message.proxiedByTrustedBandaid !== false) {
obj.proxiedByTrustedBandaid = message.proxiedByTrustedBandaid;
}
if (message.field6 !== undefined && message.field6 !== false) {
obj.field6 = message.field6;
}
return obj;
},
create<I extends Exact<DeepPartial<OnesiePlayerRequest>, I>>(base?: I): OnesiePlayerRequest {
return OnesiePlayerRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<OnesiePlayerRequest>, I>>(object: I): OnesiePlayerRequest {
const message = createBaseOnesiePlayerRequest();
message.url = object.url ?? "";
message.headers = object.headers?.map((e) => HttpHeader.fromPartial(e)) || [];
message.body = object.body ?? "";
message.proxiedByTrustedBandaid = object.proxiedByTrustedBandaid ?? false;
message.field6 = object.field6 ?? false;
return message;
},
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
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 {} ? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
function isSet(value: any): boolean {
return value !== null && value !== undefined;
}
export interface MessageFns<T> {
encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T;
toJSON(message: T): unknown;
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}

View File

@@ -2,33 +2,32 @@
// versions:
// protoc-gen-ts_proto v2.2.0
// protoc v5.28.0
// source: video_streaming/onesie_innertube_response.proto
// source: video_streaming/onesie_player_response.proto
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { HttpHeader } from "../misc/common.js";
import { ProxyStatus, proxyStatusFromJSON, proxyStatusToJSON } from "./proxy_status.js";
export const protobufPackage = "video_streaming";
export interface OnesieInnertubeResponse {
proxyStatus?: ProxyStatus | undefined;
status?: number | undefined;
export interface OnesiePlayerResponse {
onesieProxyStatus?: number | undefined;
httpStatus?: number | undefined;
headers: HttpHeader[];
body?: Uint8Array | undefined;
}
function createBaseOnesieInnertubeResponse(): OnesieInnertubeResponse {
return { proxyStatus: 0, status: 0, headers: [], body: new Uint8Array(0) };
function createBaseOnesiePlayerResponse(): OnesiePlayerResponse {
return { onesieProxyStatus: 0, httpStatus: 0, headers: [], body: new Uint8Array(0) };
}
export const OnesieInnertubeResponse: MessageFns<OnesieInnertubeResponse> = {
encode(message: OnesieInnertubeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.proxyStatus !== undefined && message.proxyStatus !== 0) {
writer.uint32(8).int32(message.proxyStatus);
export const OnesiePlayerResponse: MessageFns<OnesiePlayerResponse> = {
encode(message: OnesiePlayerResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.onesieProxyStatus !== undefined && message.onesieProxyStatus !== 0) {
writer.uint32(8).int32(message.onesieProxyStatus);
}
if (message.status !== undefined && message.status !== 0) {
writer.uint32(16).int32(message.status);
if (message.httpStatus !== undefined && message.httpStatus !== 0) {
writer.uint32(16).int32(message.httpStatus);
}
for (const v of message.headers) {
HttpHeader.encode(v!, writer.uint32(26).fork()).join();
@@ -39,10 +38,10 @@ export const OnesieInnertubeResponse: MessageFns<OnesieInnertubeResponse> = {
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): OnesieInnertubeResponse {
decode(input: BinaryReader | Uint8Array, length?: number): OnesiePlayerResponse {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseOnesieInnertubeResponse();
const message = createBaseOnesiePlayerResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
@@ -51,14 +50,14 @@ export const OnesieInnertubeResponse: MessageFns<OnesieInnertubeResponse> = {
break;
}
message.proxyStatus = reader.int32() as any;
message.onesieProxyStatus = reader.int32();
continue;
case 2:
if (tag !== 16) {
break;
}
message.status = reader.int32();
message.httpStatus = reader.int32();
continue;
case 3:
if (tag !== 26) {
@@ -83,22 +82,22 @@ export const OnesieInnertubeResponse: MessageFns<OnesieInnertubeResponse> = {
return message;
},
fromJSON(object: any): OnesieInnertubeResponse {
fromJSON(object: any): OnesiePlayerResponse {
return {
proxyStatus: isSet(object.proxyStatus) ? proxyStatusFromJSON(object.proxyStatus) : 0,
status: isSet(object.status) ? globalThis.Number(object.status) : 0,
onesieProxyStatus: isSet(object.onesieProxyStatus) ? globalThis.Number(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),
};
},
toJSON(message: OnesieInnertubeResponse): unknown {
toJSON(message: OnesiePlayerResponse): unknown {
const obj: any = {};
if (message.proxyStatus !== undefined && message.proxyStatus !== 0) {
obj.proxyStatus = proxyStatusToJSON(message.proxyStatus);
if (message.onesieProxyStatus !== undefined && message.onesieProxyStatus !== 0) {
obj.onesieProxyStatus = Math.round(message.onesieProxyStatus);
}
if (message.status !== undefined && message.status !== 0) {
obj.status = Math.round(message.status);
if (message.httpStatus !== undefined && message.httpStatus !== 0) {
obj.httpStatus = Math.round(message.httpStatus);
}
if (message.headers?.length) {
obj.headers = message.headers.map((e) => HttpHeader.toJSON(e));
@@ -109,13 +108,13 @@ export const OnesieInnertubeResponse: MessageFns<OnesieInnertubeResponse> = {
return obj;
},
create<I extends Exact<DeepPartial<OnesieInnertubeResponse>, I>>(base?: I): OnesieInnertubeResponse {
return OnesieInnertubeResponse.fromPartial(base ?? ({} as any));
create<I extends Exact<DeepPartial<OnesiePlayerResponse>, I>>(base?: I): OnesiePlayerResponse {
return OnesiePlayerResponse.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<OnesieInnertubeResponse>, I>>(object: I): OnesieInnertubeResponse {
const message = createBaseOnesieInnertubeResponse();
message.proxyStatus = object.proxyStatus ?? 0;
message.status = object.status ?? 0;
fromPartial<I extends Exact<DeepPartial<OnesiePlayerResponse>, I>>(object: I): OnesiePlayerResponse {
const message = createBaseOnesiePlayerResponse();
message.onesieProxyStatus = object.onesieProxyStatus ?? 0;
message.httpStatus = object.httpStatus ?? 0;
message.headers = object.headers?.map((e) => HttpHeader.fromPartial(e)) || [];
message.body = object.body ?? new Uint8Array(0);
return message;

View File

@@ -6,38 +6,62 @@
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { HttpHeader } from "../misc/common.js";
import { BufferedRange } from "./buffered_range.js";
import { ClientAbrState } from "./client_abr_state.js";
import { EncryptedPlayerRequest } from "./encrypted_player_request.js";
import { StreamerContext } from "./streamer_context.js";
export const protobufPackage = "video_streaming";
export interface OnesieRequest {
url?: string | undefined;
headers: HttpHeader[];
body?: string | undefined;
field4?: boolean | undefined;
field6?: boolean | undefined;
urls: string[];
clientAbrState?: ClientAbrState | undefined;
playerRequest?: EncryptedPlayerRequest | undefined;
onesieUstreamerConfig?: Uint8Array | undefined;
maxVp9Height?: number | undefined;
clientDisplayHeight?: number | undefined;
streamerContext?: StreamerContext | undefined;
bufferedRanges: BufferedRange[];
}
function createBaseOnesieRequest(): OnesieRequest {
return { url: "", headers: [], body: "", field4: false, field6: false };
return {
urls: [],
clientAbrState: undefined,
playerRequest: undefined,
onesieUstreamerConfig: new Uint8Array(0),
maxVp9Height: 0,
clientDisplayHeight: 0,
streamerContext: undefined,
bufferedRanges: [],
};
}
export const OnesieRequest: MessageFns<OnesieRequest> = {
encode(message: OnesieRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.url !== undefined && message.url !== "") {
writer.uint32(10).string(message.url);
for (const v of message.urls) {
writer.uint32(10).string(v!);
}
for (const v of message.headers) {
HttpHeader.encode(v!, writer.uint32(18).fork()).join();
if (message.clientAbrState !== undefined) {
ClientAbrState.encode(message.clientAbrState, writer.uint32(18).fork()).join();
}
if (message.body !== undefined && message.body !== "") {
writer.uint32(26).string(message.body);
if (message.playerRequest !== undefined) {
EncryptedPlayerRequest.encode(message.playerRequest, writer.uint32(26).fork()).join();
}
if (message.field4 !== undefined && message.field4 !== false) {
writer.uint32(32).bool(message.field4);
if (message.onesieUstreamerConfig !== undefined && message.onesieUstreamerConfig.length !== 0) {
writer.uint32(34).bytes(message.onesieUstreamerConfig);
}
if (message.field6 !== undefined && message.field6 !== false) {
writer.uint32(48).bool(message.field6);
if (message.maxVp9Height !== undefined && message.maxVp9Height !== 0) {
writer.uint32(40).int32(message.maxVp9Height);
}
if (message.clientDisplayHeight !== undefined && message.clientDisplayHeight !== 0) {
writer.uint32(48).int32(message.clientDisplayHeight);
}
if (message.streamerContext !== undefined) {
StreamerContext.encode(message.streamerContext, writer.uint32(82).fork()).join();
}
for (const v of message.bufferedRanges) {
BufferedRange.encode(v!, writer.uint32(114).fork()).join();
}
return writer;
},
@@ -54,35 +78,56 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
break;
}
message.url = reader.string();
message.urls.push(reader.string());
continue;
case 2:
if (tag !== 18) {
break;
}
message.headers.push(HttpHeader.decode(reader, reader.uint32()));
message.clientAbrState = ClientAbrState.decode(reader, reader.uint32());
continue;
case 3:
if (tag !== 26) {
break;
}
message.body = reader.string();
message.playerRequest = EncryptedPlayerRequest.decode(reader, reader.uint32());
continue;
case 4:
if (tag !== 32) {
if (tag !== 34) {
break;
}
message.field4 = reader.bool();
message.onesieUstreamerConfig = reader.bytes();
continue;
case 5:
if (tag !== 40) {
break;
}
message.maxVp9Height = reader.int32();
continue;
case 6:
if (tag !== 48) {
break;
}
message.field6 = reader.bool();
message.clientDisplayHeight = reader.int32();
continue;
case 10:
if (tag !== 82) {
break;
}
message.streamerContext = StreamerContext.decode(reader, reader.uint32());
continue;
case 14:
if (tag !== 114) {
break;
}
message.bufferedRanges.push(BufferedRange.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
@@ -95,30 +140,46 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
fromJSON(object: any): OnesieRequest {
return {
url: isSet(object.url) ? globalThis.String(object.url) : "",
headers: globalThis.Array.isArray(object?.headers) ? object.headers.map((e: any) => HttpHeader.fromJSON(e)) : [],
body: isSet(object.body) ? globalThis.String(object.body) : "",
field4: isSet(object.field4) ? globalThis.Boolean(object.field4) : false,
field6: isSet(object.field6) ? globalThis.Boolean(object.field6) : false,
urls: globalThis.Array.isArray(object?.urls) ? object.urls.map((e: any) => globalThis.String(e)) : [],
clientAbrState: isSet(object.clientAbrState) ? ClientAbrState.fromJSON(object.clientAbrState) : undefined,
playerRequest: isSet(object.playerRequest) ? EncryptedPlayerRequest.fromJSON(object.playerRequest) : undefined,
onesieUstreamerConfig: isSet(object.onesieUstreamerConfig)
? bytesFromBase64(object.onesieUstreamerConfig)
: new Uint8Array(0),
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,
bufferedRanges: globalThis.Array.isArray(object?.bufferedRanges)
? object.bufferedRanges.map((e: any) => BufferedRange.fromJSON(e))
: [],
};
},
toJSON(message: OnesieRequest): unknown {
const obj: any = {};
if (message.url !== undefined && message.url !== "") {
obj.url = message.url;
if (message.urls?.length) {
obj.urls = message.urls;
}
if (message.headers?.length) {
obj.headers = message.headers.map((e) => HttpHeader.toJSON(e));
if (message.clientAbrState !== undefined) {
obj.clientAbrState = ClientAbrState.toJSON(message.clientAbrState);
}
if (message.body !== undefined && message.body !== "") {
obj.body = message.body;
if (message.playerRequest !== undefined) {
obj.playerRequest = EncryptedPlayerRequest.toJSON(message.playerRequest);
}
if (message.field4 !== undefined && message.field4 !== false) {
obj.field4 = message.field4;
if (message.onesieUstreamerConfig !== undefined && message.onesieUstreamerConfig.length !== 0) {
obj.onesieUstreamerConfig = base64FromBytes(message.onesieUstreamerConfig);
}
if (message.field6 !== undefined && message.field6 !== false) {
obj.field6 = message.field6;
if (message.maxVp9Height !== undefined && message.maxVp9Height !== 0) {
obj.maxVp9Height = Math.round(message.maxVp9Height);
}
if (message.clientDisplayHeight !== undefined && message.clientDisplayHeight !== 0) {
obj.clientDisplayHeight = Math.round(message.clientDisplayHeight);
}
if (message.streamerContext !== undefined) {
obj.streamerContext = StreamerContext.toJSON(message.streamerContext);
}
if (message.bufferedRanges?.length) {
obj.bufferedRanges = message.bufferedRanges.map((e) => BufferedRange.toJSON(e));
}
return obj;
},
@@ -128,15 +189,41 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
},
fromPartial<I extends Exact<DeepPartial<OnesieRequest>, I>>(object: I): OnesieRequest {
const message = createBaseOnesieRequest();
message.url = object.url ?? "";
message.headers = object.headers?.map((e) => HttpHeader.fromPartial(e)) || [];
message.body = object.body ?? "";
message.field4 = object.field4 ?? false;
message.field6 = object.field6 ?? false;
message.urls = object.urls?.map((e) => e) || [];
message.clientAbrState = (object.clientAbrState !== undefined && object.clientAbrState !== null)
? ClientAbrState.fromPartial(object.clientAbrState)
: undefined;
message.playerRequest = (object.playerRequest !== undefined && object.playerRequest !== null)
? EncryptedPlayerRequest.fromPartial(object.playerRequest)
: undefined;
message.onesieUstreamerConfig = object.onesieUstreamerConfig ?? new Uint8Array(0);
message.maxVp9Height = object.maxVp9Height ?? 0;
message.clientDisplayHeight = object.clientDisplayHeight ?? 0;
message.streamerContext = (object.streamerContext !== undefined && object.streamerContext !== null)
? StreamerContext.fromPartial(object.streamerContext)
: undefined;
message.bufferedRanges = object.bufferedRanges?.map((e) => BufferedRange.fromPartial(e)) || [];
return message;
},
};
function bytesFromBase64(b64: string): Uint8Array {
const bin = globalThis.atob(b64);
const arr = new Uint8Array(bin.length);
for (let i = 0; i < bin.length; ++i) {
arr[i] = bin.charCodeAt(i);
}
return arr;
}
function base64FromBytes(arr: Uint8Array): string {
const bin: string[] = [];
arr.forEach((byte) => {
bin.push(globalThis.String.fromCharCode(byte));
});
return globalThis.btoa(bin.join(""));
}
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T

View File

@@ -7,20 +7,20 @@
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { FormatId } from "../misc/common.js";
import { BufferedRange } from "./buffered_range.js";
import { ClientAbrState } from "./client_abr_state.js";
import { StreamerContext } from "./streamer_context.js";
import { TimeRange } from "./time_range.js";
export const protobufPackage = "video_streaming";
export interface VideoPlaybackAbrRequest {
clientAbrState?: ClientAbrState | undefined;
selectedFormats: FormatId[];
bufferedRange: BufferedRange[];
selectedFormatIds: FormatId[];
bufferedRanges: BufferedRange[];
videoPlaybackUstreamerConfig?: Uint8Array | undefined;
lo?: Lo | undefined;
audioFormats: FormatId[];
videoFormats: FormatId[];
selectedAudioFormatIds: FormatId[];
selectedVideoFormatIds: FormatId[];
streamerContext?: StreamerContext | undefined;
field21?: OQa | undefined;
field22?: number | undefined;
@@ -42,33 +42,6 @@ export interface Lo_Field4 {
field3?: number | undefined;
}
export interface Kob {
EW: Kob_Pa[];
}
export interface Kob_Pa {
videoId?: string | undefined;
lmt?: number | undefined;
}
export interface YPa {
field1?: number | undefined;
field2?: number | undefined;
field3?: number | undefined;
}
export interface BufferedRange {
formatId: FormatId | undefined;
startTimeMs: number;
durationMs: number;
startSegmentIndex: number;
endSegmentIndex: number;
timeRange?: TimeRange | undefined;
field9?: Kob | undefined;
field11?: YPa | undefined;
field12?: YPa | undefined;
}
export interface OQa {
field1: string[];
field2?: Uint8Array | undefined;
@@ -87,12 +60,12 @@ export interface Pqa {
function createBaseVideoPlaybackAbrRequest(): VideoPlaybackAbrRequest {
return {
clientAbrState: undefined,
selectedFormats: [],
bufferedRange: [],
selectedFormatIds: [],
bufferedRanges: [],
videoPlaybackUstreamerConfig: new Uint8Array(0),
lo: undefined,
audioFormats: [],
videoFormats: [],
selectedAudioFormatIds: [],
selectedVideoFormatIds: [],
streamerContext: undefined,
field21: undefined,
field22: 0,
@@ -106,10 +79,10 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
if (message.clientAbrState !== undefined) {
ClientAbrState.encode(message.clientAbrState, writer.uint32(10).fork()).join();
}
for (const v of message.selectedFormats) {
for (const v of message.selectedFormatIds) {
FormatId.encode(v!, writer.uint32(18).fork()).join();
}
for (const v of message.bufferedRange) {
for (const v of message.bufferedRanges) {
BufferedRange.encode(v!, writer.uint32(26).fork()).join();
}
if (message.videoPlaybackUstreamerConfig !== undefined && message.videoPlaybackUstreamerConfig.length !== 0) {
@@ -118,10 +91,10 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
if (message.lo !== undefined) {
Lo.encode(message.lo, writer.uint32(50).fork()).join();
}
for (const v of message.audioFormats) {
for (const v of message.selectedAudioFormatIds) {
FormatId.encode(v!, writer.uint32(130).fork()).join();
}
for (const v of message.videoFormats) {
for (const v of message.selectedVideoFormatIds) {
FormatId.encode(v!, writer.uint32(138).fork()).join();
}
if (message.streamerContext !== undefined) {
@@ -161,14 +134,14 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
break;
}
message.selectedFormats.push(FormatId.decode(reader, reader.uint32()));
message.selectedFormatIds.push(FormatId.decode(reader, reader.uint32()));
continue;
case 3:
if (tag !== 26) {
break;
}
message.bufferedRange.push(BufferedRange.decode(reader, reader.uint32()));
message.bufferedRanges.push(BufferedRange.decode(reader, reader.uint32()));
continue;
case 5:
if (tag !== 42) {
@@ -189,14 +162,14 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
break;
}
message.audioFormats.push(FormatId.decode(reader, reader.uint32()));
message.selectedAudioFormatIds.push(FormatId.decode(reader, reader.uint32()));
continue;
case 17:
if (tag !== 138) {
break;
}
message.videoFormats.push(FormatId.decode(reader, reader.uint32()));
message.selectedVideoFormatIds.push(FormatId.decode(reader, reader.uint32()));
continue;
case 19:
if (tag !== 154) {
@@ -245,21 +218,21 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
fromJSON(object: any): VideoPlaybackAbrRequest {
return {
clientAbrState: isSet(object.clientAbrState) ? ClientAbrState.fromJSON(object.clientAbrState) : undefined,
selectedFormats: globalThis.Array.isArray(object?.selectedFormats)
? object.selectedFormats.map((e: any) => FormatId.fromJSON(e))
selectedFormatIds: globalThis.Array.isArray(object?.selectedFormatIds)
? object.selectedFormatIds.map((e: any) => FormatId.fromJSON(e))
: [],
bufferedRange: globalThis.Array.isArray(object?.bufferedRange)
? object.bufferedRange.map((e: any) => BufferedRange.fromJSON(e))
bufferedRanges: globalThis.Array.isArray(object?.bufferedRanges)
? object.bufferedRanges.map((e: any) => BufferedRange.fromJSON(e))
: [],
videoPlaybackUstreamerConfig: isSet(object.videoPlaybackUstreamerConfig)
? bytesFromBase64(object.videoPlaybackUstreamerConfig)
: new Uint8Array(0),
lo: isSet(object.lo) ? Lo.fromJSON(object.lo) : undefined,
audioFormats: globalThis.Array.isArray(object?.audioFormats)
? object.audioFormats.map((e: any) => FormatId.fromJSON(e))
selectedAudioFormatIds: globalThis.Array.isArray(object?.selectedAudioFormatIds)
? object.selectedAudioFormatIds.map((e: any) => FormatId.fromJSON(e))
: [],
videoFormats: globalThis.Array.isArray(object?.videoFormats)
? object.videoFormats.map((e: any) => FormatId.fromJSON(e))
selectedVideoFormatIds: globalThis.Array.isArray(object?.selectedVideoFormatIds)
? object.selectedVideoFormatIds.map((e: any) => FormatId.fromJSON(e))
: [],
streamerContext: isSet(object.streamerContext) ? StreamerContext.fromJSON(object.streamerContext) : undefined,
field21: isSet(object.field21) ? OQa.fromJSON(object.field21) : undefined,
@@ -274,11 +247,11 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
if (message.clientAbrState !== undefined) {
obj.clientAbrState = ClientAbrState.toJSON(message.clientAbrState);
}
if (message.selectedFormats?.length) {
obj.selectedFormats = message.selectedFormats.map((e) => FormatId.toJSON(e));
if (message.selectedFormatIds?.length) {
obj.selectedFormatIds = message.selectedFormatIds.map((e) => FormatId.toJSON(e));
}
if (message.bufferedRange?.length) {
obj.bufferedRange = message.bufferedRange.map((e) => BufferedRange.toJSON(e));
if (message.bufferedRanges?.length) {
obj.bufferedRanges = message.bufferedRanges.map((e) => BufferedRange.toJSON(e));
}
if (message.videoPlaybackUstreamerConfig !== undefined && message.videoPlaybackUstreamerConfig.length !== 0) {
obj.videoPlaybackUstreamerConfig = base64FromBytes(message.videoPlaybackUstreamerConfig);
@@ -286,11 +259,11 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
if (message.lo !== undefined) {
obj.lo = Lo.toJSON(message.lo);
}
if (message.audioFormats?.length) {
obj.audioFormats = message.audioFormats.map((e) => FormatId.toJSON(e));
if (message.selectedAudioFormatIds?.length) {
obj.selectedAudioFormatIds = message.selectedAudioFormatIds.map((e) => FormatId.toJSON(e));
}
if (message.videoFormats?.length) {
obj.videoFormats = message.videoFormats.map((e) => FormatId.toJSON(e));
if (message.selectedVideoFormatIds?.length) {
obj.selectedVideoFormatIds = message.selectedVideoFormatIds.map((e) => FormatId.toJSON(e));
}
if (message.streamerContext !== undefined) {
obj.streamerContext = StreamerContext.toJSON(message.streamerContext);
@@ -318,12 +291,12 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
message.clientAbrState = (object.clientAbrState !== undefined && object.clientAbrState !== null)
? ClientAbrState.fromPartial(object.clientAbrState)
: undefined;
message.selectedFormats = object.selectedFormats?.map((e) => FormatId.fromPartial(e)) || [];
message.bufferedRange = object.bufferedRange?.map((e) => BufferedRange.fromPartial(e)) || [];
message.selectedFormatIds = object.selectedFormatIds?.map((e) => FormatId.fromPartial(e)) || [];
message.bufferedRanges = object.bufferedRanges?.map((e) => BufferedRange.fromPartial(e)) || [];
message.videoPlaybackUstreamerConfig = object.videoPlaybackUstreamerConfig ?? new Uint8Array(0);
message.lo = (object.lo !== undefined && object.lo !== null) ? Lo.fromPartial(object.lo) : undefined;
message.audioFormats = object.audioFormats?.map((e) => FormatId.fromPartial(e)) || [];
message.videoFormats = object.videoFormats?.map((e) => FormatId.fromPartial(e)) || [];
message.selectedAudioFormatIds = object.selectedAudioFormatIds?.map((e) => FormatId.fromPartial(e)) || [];
message.selectedVideoFormatIds = object.selectedVideoFormatIds?.map((e) => FormatId.fromPartial(e)) || [];
message.streamerContext = (object.streamerContext !== undefined && object.streamerContext !== null)
? StreamerContext.fromPartial(object.streamerContext)
: undefined;
@@ -549,425 +522,6 @@ export const Lo_Field4: MessageFns<Lo_Field4> = {
},
};
function createBaseKob(): Kob {
return { EW: [] };
}
export const Kob: MessageFns<Kob> = {
encode(message: Kob, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
for (const v of message.EW) {
Kob_Pa.encode(v!, writer.uint32(10).fork()).join();
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): Kob {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseKob();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.EW.push(Kob_Pa.decode(reader, reader.uint32()));
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): Kob {
return { EW: globalThis.Array.isArray(object?.EW) ? object.EW.map((e: any) => Kob_Pa.fromJSON(e)) : [] };
},
toJSON(message: Kob): unknown {
const obj: any = {};
if (message.EW?.length) {
obj.EW = message.EW.map((e) => Kob_Pa.toJSON(e));
}
return obj;
},
create<I extends Exact<DeepPartial<Kob>, I>>(base?: I): Kob {
return Kob.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<Kob>, I>>(object: I): Kob {
const message = createBaseKob();
message.EW = object.EW?.map((e) => Kob_Pa.fromPartial(e)) || [];
return message;
},
};
function createBaseKob_Pa(): Kob_Pa {
return { videoId: "", lmt: 0 };
}
export const Kob_Pa: MessageFns<Kob_Pa> = {
encode(message: Kob_Pa, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.videoId !== undefined && message.videoId !== "") {
writer.uint32(10).string(message.videoId);
}
if (message.lmt !== undefined && message.lmt !== 0) {
writer.uint32(16).uint64(message.lmt);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): Kob_Pa {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseKob_Pa();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.videoId = reader.string();
continue;
case 2:
if (tag !== 16) {
break;
}
message.lmt = longToNumber(reader.uint64());
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): Kob_Pa {
return {
videoId: isSet(object.videoId) ? globalThis.String(object.videoId) : "",
lmt: isSet(object.lmt) ? globalThis.Number(object.lmt) : 0,
};
},
toJSON(message: Kob_Pa): unknown {
const obj: any = {};
if (message.videoId !== undefined && message.videoId !== "") {
obj.videoId = message.videoId;
}
if (message.lmt !== undefined && message.lmt !== 0) {
obj.lmt = Math.round(message.lmt);
}
return obj;
},
create<I extends Exact<DeepPartial<Kob_Pa>, I>>(base?: I): Kob_Pa {
return Kob_Pa.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<Kob_Pa>, I>>(object: I): Kob_Pa {
const message = createBaseKob_Pa();
message.videoId = object.videoId ?? "";
message.lmt = object.lmt ?? 0;
return message;
},
};
function createBaseYPa(): YPa {
return { field1: 0, field2: 0, field3: 0 };
}
export const YPa: MessageFns<YPa> = {
encode(message: YPa, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.field1 !== undefined && message.field1 !== 0) {
writer.uint32(8).int32(message.field1);
}
if (message.field2 !== undefined && message.field2 !== 0) {
writer.uint32(16).int32(message.field2);
}
if (message.field3 !== undefined && message.field3 !== 0) {
writer.uint32(24).int32(message.field3);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): YPa {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseYPa();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 8) {
break;
}
message.field1 = reader.int32();
continue;
case 2:
if (tag !== 16) {
break;
}
message.field2 = reader.int32();
continue;
case 3:
if (tag !== 24) {
break;
}
message.field3 = reader.int32();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): YPa {
return {
field1: isSet(object.field1) ? globalThis.Number(object.field1) : 0,
field2: isSet(object.field2) ? globalThis.Number(object.field2) : 0,
field3: isSet(object.field3) ? globalThis.Number(object.field3) : 0,
};
},
toJSON(message: YPa): unknown {
const obj: any = {};
if (message.field1 !== undefined && message.field1 !== 0) {
obj.field1 = Math.round(message.field1);
}
if (message.field2 !== undefined && message.field2 !== 0) {
obj.field2 = Math.round(message.field2);
}
if (message.field3 !== undefined && message.field3 !== 0) {
obj.field3 = Math.round(message.field3);
}
return obj;
},
create<I extends Exact<DeepPartial<YPa>, I>>(base?: I): YPa {
return YPa.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<YPa>, I>>(object: I): YPa {
const message = createBaseYPa();
message.field1 = object.field1 ?? 0;
message.field2 = object.field2 ?? 0;
message.field3 = object.field3 ?? 0;
return message;
},
};
function createBaseBufferedRange(): BufferedRange {
return {
formatId: undefined,
startTimeMs: 0,
durationMs: 0,
startSegmentIndex: 0,
endSegmentIndex: 0,
timeRange: undefined,
field9: undefined,
field11: undefined,
field12: undefined,
};
}
export const BufferedRange: MessageFns<BufferedRange> = {
encode(message: BufferedRange, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.formatId !== undefined) {
FormatId.encode(message.formatId, writer.uint32(10).fork()).join();
}
if (message.startTimeMs !== 0) {
writer.uint32(16).int64(message.startTimeMs);
}
if (message.durationMs !== 0) {
writer.uint32(24).int64(message.durationMs);
}
if (message.startSegmentIndex !== 0) {
writer.uint32(32).int32(message.startSegmentIndex);
}
if (message.endSegmentIndex !== 0) {
writer.uint32(40).int32(message.endSegmentIndex);
}
if (message.timeRange !== undefined) {
TimeRange.encode(message.timeRange, writer.uint32(50).fork()).join();
}
if (message.field9 !== undefined) {
Kob.encode(message.field9, writer.uint32(74).fork()).join();
}
if (message.field11 !== undefined) {
YPa.encode(message.field11, writer.uint32(90).fork()).join();
}
if (message.field12 !== undefined) {
YPa.encode(message.field12, writer.uint32(98).fork()).join();
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): BufferedRange {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseBufferedRange();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.formatId = FormatId.decode(reader, reader.uint32());
continue;
case 2:
if (tag !== 16) {
break;
}
message.startTimeMs = longToNumber(reader.int64());
continue;
case 3:
if (tag !== 24) {
break;
}
message.durationMs = longToNumber(reader.int64());
continue;
case 4:
if (tag !== 32) {
break;
}
message.startSegmentIndex = reader.int32();
continue;
case 5:
if (tag !== 40) {
break;
}
message.endSegmentIndex = reader.int32();
continue;
case 6:
if (tag !== 50) {
break;
}
message.timeRange = TimeRange.decode(reader, reader.uint32());
continue;
case 9:
if (tag !== 74) {
break;
}
message.field9 = Kob.decode(reader, reader.uint32());
continue;
case 11:
if (tag !== 90) {
break;
}
message.field11 = YPa.decode(reader, reader.uint32());
continue;
case 12:
if (tag !== 98) {
break;
}
message.field12 = YPa.decode(reader, reader.uint32());
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): BufferedRange {
return {
formatId: isSet(object.formatId) ? FormatId.fromJSON(object.formatId) : undefined,
startTimeMs: isSet(object.startTimeMs) ? globalThis.Number(object.startTimeMs) : 0,
durationMs: isSet(object.durationMs) ? globalThis.Number(object.durationMs) : 0,
startSegmentIndex: isSet(object.startSegmentIndex) ? globalThis.Number(object.startSegmentIndex) : 0,
endSegmentIndex: isSet(object.endSegmentIndex) ? globalThis.Number(object.endSegmentIndex) : 0,
timeRange: isSet(object.timeRange) ? TimeRange.fromJSON(object.timeRange) : undefined,
field9: isSet(object.field9) ? Kob.fromJSON(object.field9) : undefined,
field11: isSet(object.field11) ? YPa.fromJSON(object.field11) : undefined,
field12: isSet(object.field12) ? YPa.fromJSON(object.field12) : undefined,
};
},
toJSON(message: BufferedRange): unknown {
const obj: any = {};
if (message.formatId !== undefined) {
obj.formatId = FormatId.toJSON(message.formatId);
}
if (message.startTimeMs !== 0) {
obj.startTimeMs = Math.round(message.startTimeMs);
}
if (message.durationMs !== 0) {
obj.durationMs = Math.round(message.durationMs);
}
if (message.startSegmentIndex !== 0) {
obj.startSegmentIndex = Math.round(message.startSegmentIndex);
}
if (message.endSegmentIndex !== 0) {
obj.endSegmentIndex = Math.round(message.endSegmentIndex);
}
if (message.timeRange !== undefined) {
obj.timeRange = TimeRange.toJSON(message.timeRange);
}
if (message.field9 !== undefined) {
obj.field9 = Kob.toJSON(message.field9);
}
if (message.field11 !== undefined) {
obj.field11 = YPa.toJSON(message.field11);
}
if (message.field12 !== undefined) {
obj.field12 = YPa.toJSON(message.field12);
}
return obj;
},
create<I extends Exact<DeepPartial<BufferedRange>, I>>(base?: I): BufferedRange {
return BufferedRange.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<BufferedRange>, I>>(object: I): BufferedRange {
const message = createBaseBufferedRange();
message.formatId = (object.formatId !== undefined && object.formatId !== null)
? FormatId.fromPartial(object.formatId)
: undefined;
message.startTimeMs = object.startTimeMs ?? 0;
message.durationMs = object.durationMs ?? 0;
message.startSegmentIndex = object.startSegmentIndex ?? 0;
message.endSegmentIndex = object.endSegmentIndex ?? 0;
message.timeRange = (object.timeRange !== undefined && object.timeRange !== null)
? TimeRange.fromPartial(object.timeRange)
: undefined;
message.field9 = (object.field9 !== undefined && object.field9 !== null)
? Kob.fromPartial(object.field9)
: undefined;
message.field11 = (object.field11 !== undefined && object.field11 !== null)
? YPa.fromPartial(object.field11)
: undefined;
message.field12 = (object.field12 !== undefined && object.field12 !== null)
? YPa.fromPartial(object.field12)
: undefined;
return message;
},
};
function createBaseOQa(): OQa {
return { field1: [], field2: new Uint8Array(0), field3: "", field4: 0, field5: 0, field6: "" };
}
@@ -1220,17 +774,6 @@ type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
function longToNumber(int64: { toString(): string }): number {
const num = globalThis.Number(int64.toString());
if (num > globalThis.Number.MAX_SAFE_INTEGER) {
throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
}
if (num < globalThis.Number.MIN_SAFE_INTEGER) {
throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
}
return num;
}
function isSet(value: any): boolean {
return value !== null && value !== undefined;
}

View File

@@ -0,0 +1,32 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
import "video_streaming/time_range.proto";
message BufferedRange {
required .misc.FormatId format_id = 1;
required int64 start_time_ms = 2;
required int64 duration_ms = 3;
required int32 start_segment_index = 4;
required int32 end_segment_index = 5;
optional TimeRange time_range = 6;
optional Kob field9 = 9;
optional YPa field11 = 11;
optional YPa field12 = 12;
}
message Kob {
message Pa {
optional string video_id = 1;
optional uint64 lmt = 2;
}
repeated Pa EW = 1;
}
message YPa {
optional int32 field1 = 1;
optional int32 field2 = 2;
optional int32 field3 = 3;
}

View File

@@ -1,11 +1,13 @@
syntax = "proto2";
package video_streaming;
message EncryptedRequest {
optional bytes encrypted_onesie_request = 2;
message EncryptedPlayerRequest {
optional bytes context = 1; // InnerTubeContext proto?
optional bytes encrypted_onesie_player_request = 2;
optional bytes encrypted_client_key = 5;
optional bytes iv = 6;
optional bytes hmac = 7;
optional string reverse_proxy_config = 9;
optional bool YP = 10;
optional bool pM = 13;
optional bool enable_compression = 14;

View File

@@ -1,13 +0,0 @@
syntax = "proto2";
package video_streaming;
import "video_streaming/client_abr_state.proto";
import "video_streaming/encrypted_request.proto";
import "video_streaming/streamer_context.proto";
message OnesieInnertubeRequest {
optional ClientAbrState client_abr_state = 2;
optional EncryptedRequest encrypted_request = 3;
optional bytes onesie_ustreamer_config = 4;
optional StreamerContext streamer_context = 10;
}

View File

@@ -1,12 +0,0 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
import "video_streaming/proxy_status.proto";
message OnesieInnertubeResponse {
optional ProxyStatus proxy_status = 1;
optional int32 status = 2;
repeated .misc.HttpHeader headers = 3;
optional bytes body = 4;
}

View File

@@ -0,0 +1,12 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
message OnesiePlayerRequest {
optional string url = 1;
repeated misc.HttpHeader headers = 2;
optional string body = 3;
optional bool proxied_by_trusted_bandaid = 4;
optional bool field6 = 6; // Seen this on youtube.com and the YTMusic protos. Not sure what it is yet.
}

View File

@@ -0,0 +1,11 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
message OnesiePlayerResponse {
optional int32 onesie_proxy_status = 1;
optional int32 http_status = 2;
repeated .misc.HttpHeader headers = 3;
optional bytes body = 4;
}

View File

@@ -1,12 +1,18 @@
syntax = "proto2";
package video_streaming;
import "misc/common.proto";
import "video_streaming/client_abr_state.proto";
import "video_streaming/encrypted_player_request.proto";
import "video_streaming/streamer_context.proto";
import "video_streaming/buffered_range.proto";
message OnesieRequest {
optional string url = 1;
repeated misc.HttpHeader headers = 2;
optional string body = 3;
optional bool field4 = 4;
optional bool field6 = 6;
repeated string urls = 1;
optional ClientAbrState client_abr_state = 2;
optional EncryptedPlayerRequest player_request = 3;
optional bytes onesie_ustreamer_config = 4;
optional int32 max_vp9_height = 5;
optional int32 client_display_height = 6;
optional StreamerContext streamer_context = 10;
repeated BufferedRange buffered_ranges = 14;
}

View File

@@ -3,17 +3,17 @@ package video_streaming;
import "misc/common.proto";
import "video_streaming/client_abr_state.proto";
import "video_streaming/time_range.proto";
import "video_streaming/streamer_context.proto";
import "video_streaming/buffered_range.proto";
message VideoPlaybackAbrRequest {
optional ClientAbrState client_abr_state = 1;
repeated .misc.FormatId selected_formats = 2;
repeated BufferedRange buffered_range = 3;
repeated .misc.FormatId selected_format_ids = 2;
repeated BufferedRange buffered_ranges = 3;
optional bytes video_playback_ustreamer_config = 5;
optional Lo lo = 6;
repeated .misc.FormatId audio_formats = 16;
repeated .misc.FormatId video_formats = 17;
repeated .misc.FormatId selected_audio_format_ids = 16;
repeated .misc.FormatId selected_video_format_ids = 17;
optional StreamerContext streamer_context = 19;
optional OQa field21 = 21;
optional int32 field22 = 22;
@@ -34,32 +34,6 @@ message Lo {
optional int32 MZ = 5;
}
message Kob {
message Pa {
optional string video_id = 1;
optional uint64 lmt = 2;
}
repeated Pa EW = 1;
}
message YPa {
optional int32 field1 = 1;
optional int32 field2 = 2;
optional int32 field3 = 3;
}
message BufferedRange {
required .misc.FormatId format_id = 1;
required int64 start_time_ms = 2;
required int64 duration_ms = 3;
required int32 start_segment_index = 4;
required int32 end_segment_index = 5;
optional TimeRange time_range = 6;
optional Kob field9 = 9;
optional YPa field11 = 11;
optional YPa field12 = 12;
}
message OQa {
repeated string field1 = 1;
optional bytes field2 = 2;