POST /api/v1/videos
Generate a complete short video. The request is processed asynchronously — the response returns atask_id to poll for status.
Request parameters
The topic or keyword for the video. The LLM uses this to write the script and find footage search terms.
A custom script to use instead of AI generation. When provided, the LLM script generation step is skipped.
Custom search keywords for finding footage. If omitted, the LLM generates them from the subject and script.
Output video aspect ratio. Options:
"9:16" (portrait, 1080×1920), "16:9" (landscape, 1920×1080), "1:1" (square, 1080×1080).How footage clips are ordered.
"random" shuffles clips; "sequential" uses them in retrieval order.Transition effect between clips. Options:
null (none), "Shuffle", "FadeIn", "FadeOut", "SlideIn", "SlideOut".Duration in seconds of each footage clip before cutting to the next.
Number of video variants to generate. Each variant uses a different random selection of footage clips.
Where to source footage. Options:
"pexels", "pixabay", "local".List of specific local material objects. Each object has
provider (string), url (string), and duration (integer) fields. Used when video_source is "local".Path to a custom audio file on the server. When set, TTS is skipped and subtitles are disabled.
Language code (e.g.
"en", "zh", "fr"). Leave empty for auto-detection from the script.Name of the TTS voice to use. See Voice Synthesis for available voices.
Voice narration volume. Range:
0.0–1.0.Speech speed multiplier.
1.2 is 20% faster than normal.Background music selection mode.
"random" picks a random track; "" disables music.Specific MP3 filename from the
resource/songs/ directory to use as background music.Background music volume. Range:
0.0–1.0.Whether to generate and burn subtitles into the video.
Subtitle vertical position:
"bottom", "top", or "center".Subtitle font filename. The file must exist in
resource/fonts/.Subtitle text color as a hex string.
Subtitle background fill.
true for default, false to disable, or a hex color string.Subtitle font size in pixels.
Subtitle text outline color.
Subtitle text outline width in pixels.
Number of script paragraphs the LLM should generate when writing the script.
POST /api/v1/subtitle
Generate subtitle and audio files only, without compositing a full video. Useful for previewing or post-processing subtitles separately./api/v1/videos. Returns a task_id.
POST /api/v1/audio
Generate a voice narration audio file only, without video or subtitles.task_id. Poll /api/v1/tasks/{task_id} for the audio file URL.