short-video-maker
Version:
Creates short videos for TikTok, Instagram Reels, and YouTube Shorts using the Model Context Protocol (MCP) and a REST API.
205 lines (204 loc) • 6.54 kB
TypeScript
import z from "zod";
export declare enum MusicMoodEnum {
sad = "sad",
melancholic = "melancholic",
happy = "happy",
euphoric = "euphoric/high",
excited = "excited",
chill = "chill",
uneasy = "uneasy",
angry = "angry",
dark = "dark",
hopeful = "hopeful",
contemplative = "contemplative",
funny = "funny/quirky"
}
export declare enum CaptionPositionEnum {
top = "top",
center = "center",
bottom = "bottom"
}
export type Scene = {
captions: Caption[];
video: string;
audio: {
url: string;
duration: number;
};
};
export declare const sceneInput: z.ZodObject<{
text: z.ZodString;
searchTerms: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
text: string;
searchTerms: string[];
}, {
text: string;
searchTerms: string[];
}>;
export type SceneInput = z.infer<typeof sceneInput>;
export declare enum VoiceEnum {
af_heart = "af_heart",
af_alloy = "af_alloy",
af_aoede = "af_aoede",
af_bella = "af_bella",
af_jessica = "af_jessica",
af_kore = "af_kore",
af_nicole = "af_nicole",
af_nova = "af_nova",
af_river = "af_river",
af_sarah = "af_sarah",
af_sky = "af_sky",
am_adam = "am_adam",
am_echo = "am_echo",
am_eric = "am_eric",
am_fenrir = "am_fenrir",
am_liam = "am_liam",
am_michael = "am_michael",
am_onyx = "am_onyx",
am_puck = "am_puck",
am_santa = "am_santa",
bf_emma = "bf_emma",
bf_isabella = "bf_isabella",
bm_george = "bm_george",
bm_lewis = "bm_lewis",
bf_alice = "bf_alice",
bf_lily = "bf_lily",
bm_daniel = "bm_daniel",
bm_fable = "bm_fable"
}
export declare enum OrientationEnum {
landscape = "landscape",
portrait = "portrait"
}
export declare enum MusicVolumeEnum {
muted = "muted",
low = "low",
medium = "medium",
high = "high"
}
export declare const renderConfig: z.ZodObject<{
paddingBack: z.ZodOptional<z.ZodNumber>;
music: z.ZodOptional<z.ZodNativeEnum<typeof MusicMoodEnum>>;
captionPosition: z.ZodOptional<z.ZodNativeEnum<typeof CaptionPositionEnum>>;
captionBackgroundColor: z.ZodOptional<z.ZodString>;
voice: z.ZodOptional<z.ZodNativeEnum<typeof VoiceEnum>>;
orientation: z.ZodOptional<z.ZodNativeEnum<typeof OrientationEnum>>;
musicVolume: z.ZodOptional<z.ZodNativeEnum<typeof MusicVolumeEnum>>;
}, "strip", z.ZodTypeAny, {
paddingBack?: number | undefined;
music?: MusicMoodEnum | undefined;
captionPosition?: CaptionPositionEnum | undefined;
captionBackgroundColor?: string | undefined;
voice?: VoiceEnum | undefined;
orientation?: OrientationEnum | undefined;
musicVolume?: MusicVolumeEnum | undefined;
}, {
paddingBack?: number | undefined;
music?: MusicMoodEnum | undefined;
captionPosition?: CaptionPositionEnum | undefined;
captionBackgroundColor?: string | undefined;
voice?: VoiceEnum | undefined;
orientation?: OrientationEnum | undefined;
musicVolume?: MusicVolumeEnum | undefined;
}>;
export type RenderConfig = z.infer<typeof renderConfig>;
export type Voices = `${VoiceEnum}`;
export type Video = {
id: string;
url: string;
width: number;
height: number;
};
export type Caption = {
text: string;
startMs: number;
endMs: number;
};
export type CaptionLine = {
texts: Caption[];
};
export type CaptionPage = {
startMs: number;
endMs: number;
lines: CaptionLine[];
};
export declare const createShortInput: z.ZodObject<{
scenes: z.ZodArray<z.ZodObject<{
text: z.ZodString;
searchTerms: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
text: string;
searchTerms: string[];
}, {
text: string;
searchTerms: string[];
}>, "many">;
config: z.ZodObject<{
paddingBack: z.ZodOptional<z.ZodNumber>;
music: z.ZodOptional<z.ZodNativeEnum<typeof MusicMoodEnum>>;
captionPosition: z.ZodOptional<z.ZodNativeEnum<typeof CaptionPositionEnum>>;
captionBackgroundColor: z.ZodOptional<z.ZodString>;
voice: z.ZodOptional<z.ZodNativeEnum<typeof VoiceEnum>>;
orientation: z.ZodOptional<z.ZodNativeEnum<typeof OrientationEnum>>;
musicVolume: z.ZodOptional<z.ZodNativeEnum<typeof MusicVolumeEnum>>;
}, "strip", z.ZodTypeAny, {
paddingBack?: number | undefined;
music?: MusicMoodEnum | undefined;
captionPosition?: CaptionPositionEnum | undefined;
captionBackgroundColor?: string | undefined;
voice?: VoiceEnum | undefined;
orientation?: OrientationEnum | undefined;
musicVolume?: MusicVolumeEnum | undefined;
}, {
paddingBack?: number | undefined;
music?: MusicMoodEnum | undefined;
captionPosition?: CaptionPositionEnum | undefined;
captionBackgroundColor?: string | undefined;
voice?: VoiceEnum | undefined;
orientation?: OrientationEnum | undefined;
musicVolume?: MusicVolumeEnum | undefined;
}>;
}, "strip", z.ZodTypeAny, {
scenes: {
text: string;
searchTerms: string[];
}[];
config: {
paddingBack?: number | undefined;
music?: MusicMoodEnum | undefined;
captionPosition?: CaptionPositionEnum | undefined;
captionBackgroundColor?: string | undefined;
voice?: VoiceEnum | undefined;
orientation?: OrientationEnum | undefined;
musicVolume?: MusicVolumeEnum | undefined;
};
}, {
scenes: {
text: string;
searchTerms: string[];
}[];
config: {
paddingBack?: number | undefined;
music?: MusicMoodEnum | undefined;
captionPosition?: CaptionPositionEnum | undefined;
captionBackgroundColor?: string | undefined;
voice?: VoiceEnum | undefined;
orientation?: OrientationEnum | undefined;
musicVolume?: MusicVolumeEnum | undefined;
};
}>;
export type CreateShortInput = z.infer<typeof createShortInput>;
export type VideoStatus = "processing" | "ready" | "failed";
export type Music = {
file: string;
start: number;
end: number;
mood: string;
};
export type MusicForVideo = Music & {
url: string;
};
export type MusicTag = `${MusicMoodEnum}`;
export type kokoroModelPrecision = "fp32" | "fp16" | "q8" | "q4" | "q4f16";
export type whisperModels = "tiny" | "tiny.en" | "base" | "base.en" | "small" | "small.en" | "medium" | "medium.en" | "large-v1" | "large-v2" | "large-v3" | "large-v3-turbo";