Config reference
Most settings are edited in the app’s Settings tab, but everything is stored in a plain JSON file at:
- macOS:
~/Library/Application Support/MusicVideoGenerator/config.json - Windows:
%APPDATA%\MusicVideoGenerator\config.json
You can edit the file directly if you prefer.
Full example
{ "channel_name": "Outlaw AI Labs", "channel_logo": "assets/logo.png", "logo_height": 200, "review_backgrounds": false, "create": ["youtube", "tiktok", "instagram"], "style": { "font": "Helvetica Neue", "sizes": [42, 50, 58, 66], "title_font": "Futura", "title_size": 80, "brand_font": "Helvetica Neue", "lyric_mode": "karaoke" }, "youtube": { "category": "10", "privacy": "private", "tags": [], "description_template": "{title}\n\nGenerated by {channel}" }, "tiktok": { "clip_duration": 30, "endcard_text": "Full video on YouTube", "privacy": "public", "post_mode": "inbox", "caption_template": "{title} - Full video on YouTube #music #newmusic #ai", "disable_duet": false, "disable_stitch": false, "disable_comment": false }, "instagram": { "clip_duration": 60, "endcard_text": "Full video on YouTube", "caption_template": "{title} - Full video on YouTube #music #newmusic", "share_to_feed": true, "app_id": "", "app_secret": "" }, "lyrics": { "enabled": false }}Channel
| Field | Default | Description |
|---|---|---|
channel_name | — | Shown on the title card and bottom-left of every video |
channel_logo | — | Path to your logo image, overlaid top-right of every video |
logo_height | 200 | Logo display height in pixels |
Output
| Field | Default | Description |
|---|---|---|
create | ["youtube"] | Which formats to render. Any combination of "youtube", "tiktok", "instagram" |
review_backgrounds | false | When true, pauses after fetching backgrounds so you can approve them |
Style
See Style & fonts.
YouTube
| Field | Default | Description |
|---|---|---|
youtube.category | "10" | YouTube category ID (10 = Music) |
youtube.privacy | "private" | private, unlisted, or public |
youtube.tags | [] | Tags applied to every upload |
youtube.description_template | "{title}\n\nGenerated by {channel}" | Fallback description. Supports {title} and {channel} |
TikTok
| Field | Default | Description |
|---|---|---|
tiktok.clip_duration | 30 | Length in seconds for the TikTok clip |
tiktok.endcard_text | "Full video on YouTube" | Text overlaid on the last few seconds |
tiktok.privacy | "public" | public, friends, or private |
tiktok.post_mode | "inbox" | "inbox" = review in app. "direct" = goes live immediately |
tiktok.caption_template | see example | Caption template. Supports {title} and {channel} |
tiktok.disable_duet | false | Disable duet on uploaded videos |
tiktok.disable_stitch | false | Disable stitch on uploaded videos |
tiktok.disable_comment | false | Disable comments on uploaded videos |
| Field | Default | Description |
|---|---|---|
instagram.clip_duration | 60 | Length in seconds for the Reel clip (Meta’s limit is 90s) |
instagram.endcard_text | "Full video on YouTube" | Text overlaid on the last few seconds |
instagram.caption_template | "" | Caption template. Supports {title} and {channel} |
instagram.share_to_feed | true | When true, the Reel also appears on your main Instagram grid |
instagram.app_id | "" | Your Meta app’s App ID (see Instagram setup). Also readable from the META_APP_ID environment variable |
instagram.app_secret | "" | Your Meta app’s App Secret. Also readable from META_APP_SECRET. Treat like a password |
Lyrics
| Field | Default | Description |
|---|---|---|
lyrics.enabled | false | Master toggle for the AI Lyric Generator. When on, the Lyrics panel in Settings exposes model and brand configuration (see Lyrics) |
Where renders live
Finished videos are written to renders/{render_id}/ inside the app data directory — one folder per render. See Where your files live for the full directory tree and per-render folder contents.