api: add local processing response type & param

`local-processing` type returns needed info for on-device processing and creates basic proxy tunnels
This commit is contained in:
wukko
2025-01-29 15:00:50 +06:00
parent 75cda47633
commit c7c9cf2f0f
5 changed files with 77 additions and 8 deletions

View File

@@ -5,7 +5,22 @@ import { audioIgnore } from "./service-config.js";
import { createStream } from "../stream/manage.js";
import { splitFilenameExtension } from "../misc/utils.js";
export default function({ r, host, audioFormat, isAudioOnly, isAudioMuted, disableMetadata, filenameStyle, twitterGif, requestIP, audioBitrate, alwaysProxy }) {
const extraProcessingTypes = ["merge", "remux", "mute", "audio", "gif"];
export default function({
r,
host,
audioFormat,
isAudioOnly,
isAudioMuted,
disableMetadata,
filenameStyle,
twitterGif,
requestIP,
audioBitrate,
alwaysProxy,
localProcessing
}) {
let action,
responseType = "tunnel",
defaultParams = {
@@ -216,5 +231,14 @@ export default function({ r, host, audioFormat, isAudioOnly, isAudioMuted, disab
params.type = "proxy";
}
return createResponse(responseType, {...defaultParams, ...params})
// TODO: add support for HLS
// (very painful)
if (localProcessing && !params.isHLS && extraProcessingTypes.includes(params.type)) {
responseType = "local-processing";
}
return createResponse(
responseType,
{ ...defaultParams, ...params }
);
}