mirror of
https://github.com/imputnet/cobalt.git
synced 2025-06-28 17:38:31 +00:00

h265 param is already used for more than tiktok, and gif param will be used for bluesky gifs in the future
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
import { z } from "zod";
|
|
import { normalizeURL } from "./url.js";
|
|
|
|
export const apiSchema = z.object({
|
|
url: z.string()
|
|
.min(1)
|
|
.transform(url => normalizeURL(url)),
|
|
|
|
audioBitrate: z.enum(
|
|
["320", "256", "128", "96", "64", "8"]
|
|
).default("128"),
|
|
|
|
audioFormat: z.enum(
|
|
["best", "mp3", "ogg", "wav", "opus"]
|
|
).default("mp3"),
|
|
|
|
downloadMode: z.enum(
|
|
["auto", "audio", "mute"]
|
|
).default("auto"),
|
|
|
|
filenameStyle: z.enum(
|
|
["classic", "pretty", "basic", "nerdy"]
|
|
).default("classic"),
|
|
|
|
youtubeVideoCodec: z.enum(
|
|
["h264", "av1", "vp9"]
|
|
).default("h264"),
|
|
|
|
videoQuality: z.enum(
|
|
["max", "4320", "2160", "1440", "1080", "720", "480", "360", "240", "144"]
|
|
).default("1080"),
|
|
|
|
youtubeDubLang: z.string()
|
|
.min(2)
|
|
.max(8)
|
|
.regex(/^[0-9a-zA-Z\-]+$/)
|
|
.optional(),
|
|
|
|
disableMetadata: z.boolean().default(false),
|
|
|
|
allowH265: z.boolean().default(false),
|
|
convertGif: z.boolean().default(true),
|
|
tiktokFullAudio: z.boolean().default(false),
|
|
|
|
alwaysProxy: z.boolean().default(false),
|
|
localProcessing: z.boolean().default(false),
|
|
|
|
youtubeHLS: z.boolean().default(false),
|
|
})
|
|
.strict();
|