All your configurations will be in a file in the root directory, called config.json, which is a copy of config.example.json. You can change the values in config.json to your liking.
verbose:boolean- Iftrue, the application will print out more information.firefox_profile:string- The path to your Firefox profile. This is used to use your Social Media Accounts without having to log in every time you run the application.headless:boolean- Iftrue, the application will run in headless mode. This means that the browser will not be visible.ollama_base_url:string- Base URL of your local Ollama server (default:http://127.0.0.1:11434).ollama_model:string- Ollama model to use for text generation (e.g.llama3.2:3b). If empty, the app queries Ollama at startup and lets you pick from the available models interactively.twitter_language:string- The language that will be used to generate & post tweets.nanobanana2_api_base_url:string- Nano Banana 2 API base URL (default:https://generativelanguage.googleapis.com/v1beta).nanobanana2_api_key:string- API key for Nano Banana 2 (Gemini image API). If empty, MPV2 falls back to environment variableGEMINI_API_KEY.nanobanana2_model:string- Nano Banana 2 model name (default:gemini-3.1-flash-image-preview).nanobanana2_aspect_ratio:string- Aspect ratio for generated images (default:9:16).threads:number- The amount of threads that will be used to execute operations, e.g. writing to a file using MoviePy.is_for_kids:boolean- Iftrue, the application will upload the video to YouTube Shorts as a video for kids.google_maps_scraper:string- The URL to the Google Maps scraper. This will be used to scrape Google Maps for local businesses. It is recommended to use the default value.zip_url:string- The URL to the ZIP file that contains the to be used Songs for the YouTube Shorts Automater.email:object:smtp_server:string- Your SMTP server.smtp_port:number- The port of your SMTP server.username:string- Your email address.password:string- Your email password.
google_maps_scraper_niche:string- The niche you want to scrape Google Maps for.scraper_timeout:number- The timeout for the Google Maps scraper.outreach_message_subject:string- The subject of your outreach message.{{COMPANY_NAME}}will be replaced with the company name.outreach_message_body_file:string- The file that contains the body of your outreach message, should be HTML.{{COMPANY_NAME}}will be replaced with the company name.stt_provider:string- Provider for subtitle transcription. Default islocal_whisper. Options:local_whisperthird_party_assemblyai
whisper_model:string- Whisper model for local transcription (for examplebase,small,medium,large-v3).whisper_device:string- Device for local Whisper (auto,cpu,cuda).whisper_compute_type:string- Compute type for local Whisper (int8,float16, etc.).assembly_ai_api_key:string- Your Assembly AI API key. Get yours from here.tts_voice:string- Voice for KittenTTS text-to-speech. Default isJasper. Options:Bella,Jasper,Luna,Bruno,Rosie,Hugo,Kiki,Leo.font:string- The font that will be used to generate images. This should be a.ttffile in thefonts/directory.imagemagick_path:string- The path to the ImageMagick binary. This is used by MoviePy to manipulate images. Install ImageMagick from here and set the path to themagick.exeon Windows, or on Linux/MacOS the path toconvert(usually /usr/bin/convert).script_sentence_length:number- The number of sentences in the generated video script (default:4).post_bridge:object:enabled:boolean- Enables Post Bridge cross-posting after successful YouTube uploads.api_key:string- Your Post Bridge API key. If empty, MPV2 falls back toPOST_BRIDGE_API_KEY.platforms:string[]- Platforms to target. Supported values in v1 aretiktokandinstagram.account_ids:number[]- Optional fixed Post Bridge account IDs to avoid account-selection prompts.auto_crosspost:boolean- Iftrue, cross-post automatically after a successful YouTube upload. Iffalse, interactive runs ask and cron runs skip.
{
"verbose": true,
"firefox_profile": "",
"headless": false,
"ollama_base_url": "http://127.0.0.1:11434",
"ollama_model": "",
"twitter_language": "English",
"nanobanana2_api_base_url": "https://generativelanguage.googleapis.com/v1beta",
"nanobanana2_api_key": "",
"nanobanana2_model": "gemini-3.1-flash-image-preview",
"nanobanana2_aspect_ratio": "9:16",
"threads": 2,
"zip_url": "",
"is_for_kids": false,
"google_maps_scraper": "https://github.com/gosom/google-maps-scraper/archive/refs/tags/v0.9.7.zip",
"email": {
"smtp_server": "smtp.gmail.com",
"smtp_port": 587,
"username": "",
"password": ""
},
"google_maps_scraper_niche": "",
"scraper_timeout": 300,
"outreach_message_subject": "I have a question...",
"outreach_message_body_file": "outreach_message.html",
"stt_provider": "local_whisper",
"whisper_model": "base",
"whisper_device": "auto",
"whisper_compute_type": "int8",
"assembly_ai_api_key": "",
"tts_voice": "Jasper",
"font": "bold_font.ttf",
"imagemagick_path": "Path to magick.exe or on linux/macOS just /usr/bin/convert",
"script_sentence_length": 4,
"post_bridge": {
"enabled": false,
"api_key": "",
"platforms": ["tiktok", "instagram"],
"account_ids": [],
"auto_crosspost": false
}
}GEMINI_API_KEY: used whennanobanana2_api_keyis empty.POST_BRIDGE_API_KEY: used whenpost_bridge.api_keyis empty.
Example:
export GEMINI_API_KEY="your_api_key_here"
export POST_BRIDGE_API_KEY="your_post_bridge_api_key_here"See PostBridge.md for the full Post Bridge setup and behavior details.