@vot.js/core
Version:
core package
82 lines (81 loc) • 2.99 kB
JavaScript
import { StreamPingRequest, StreamTranslationRequest, StreamTranslationResponse, SubtitlesRequest, SubtitlesResponse, VideoTranslationAudioRequest, VideoTranslationAudioResponse, VideoTranslationRequest, VideoTranslationResponse, YandexSessionRequest, YandexSessionResponse, } from "@vot.js/shared/protos";
export class YandexVOTProtobuf {
static encodeTranslationRequest(url, duration, requestLang, responseLang, translationHelp, { forceSourceLang = false, wasStream = false, videoTitle = "", bypassCache = false, useNewModel = true, } = {}) {
return VideoTranslationRequest.encode({
url,
firstRequest: true,
duration,
unknown0: 1,
language: requestLang,
forceSourceLang,
unknown1: 0,
translationHelp: translationHelp ?? [],
responseLanguage: responseLang,
wasStream,
unknown2: 0,
unknown3: 1,
bypassCache,
useNewModel,
videoTitle,
}).finish();
}
static decodeTranslationResponse(response) {
return VideoTranslationResponse.decode(new Uint8Array(response));
}
static encodeTranslationAudioRequest(url, translationId, audioBuffer, partialAudio) {
return VideoTranslationAudioRequest.encode({
url,
translationId,
...(partialAudio
? {
partialAudioInfo: {
...partialAudio,
audioBuffer,
},
}
: {
audioInfo: audioBuffer,
}),
}).finish();
}
static decodeTranslationAudioResponse(response) {
return VideoTranslationAudioResponse.decode(new Uint8Array(response));
}
static encodeSubtitlesRequest(url, requestLang) {
return SubtitlesRequest.encode({
url,
language: requestLang,
}).finish();
}
static decodeSubtitlesResponse(response) {
return SubtitlesResponse.decode(new Uint8Array(response));
}
static encodeStreamPingRequest(pingId) {
return StreamPingRequest.encode({
pingId,
}).finish();
}
static encodeStreamRequest(url, requestLang, responseLang) {
return StreamTranslationRequest.encode({
url,
language: requestLang,
responseLanguage: responseLang,
unknown0: 1,
unknown1: 0,
}).finish();
}
static decodeStreamResponse(response) {
return StreamTranslationResponse.decode(new Uint8Array(response));
}
}
export class YandexSessionProtobuf {
static encodeSessionRequest(uuid, module) {
return YandexSessionRequest.encode({
uuid,
module,
}).finish();
}
static decodeSessionResponse(response) {
return YandexSessionResponse.decode(new Uint8Array(response));
}
}