Add Supertonic as the default TTS provider, introduce browser backend plumbing, make the Settings UI template-driven, and tighten Threads discovery/auth behavior with regression coverage.
zoom={optional=true,default=1,example=1.1,explanation="Sets the browser zoom level. Useful if you want the text larger.",type="float",nmin=0.1,nmax=2,oob_error="The text is really difficult to read at a zoom level higher than 2"}
zoom={optional=true,default=1,example=1.1,explanation="Sets the browser zoom level. Useful if you want the text larger.",type="float",nmin=0.1,nmax=2,oob_error="The text is really difficult to read at a zoom level higher than 2"}
channel_name={optional=true,default="Reddit Tales",example="Reddit Stories",explanation="Sets the channel name for the video"}
channel_name={optional=true,default="Reddit Tales",example="Reddit Stories",explanation="Sets the channel name for the video"}
[settings.browser]
backend={optional=true,default="playwright",options=["playwright","cloakbrowser"],type="str",explanation="Browser backend for Threads scraping/screenshots. Defaults to Playwright; CloakBrowser is opt-in."}
[settings.background]
[settings.background]
background_video={optional=true,default="minecraft",example="rocket-league",options=["minecraft","gta","rocket-league","motor-gta","csgo-surf","cluster-truck","minecraft-2","multiversus","fall-guys","steep","black",""],explanation="Sets the background for the video based on game name"}
background_video={optional=true,default="minecraft",example="rocket-league",options=["minecraft","gta","rocket-league","motor-gta","csgo-surf","cluster-truck","minecraft-2","multiversus","fall-guys","steep","black",""],explanation="Sets the background for the video based on game name"}
background_audio={optional=true,default="lofi",example="chill-summer",options=["lofi","lofi-2","chill-summer",""],explanation="Sets the background audio for the video"}
background_audio={optional=true,default="lofi",example="chill-summer",options=["lofi","lofi-2","chill-summer",""],explanation="Sets the background audio for the video"}
background_thumbnail_font_color={optional=true,default="255,255,255",example="255,255,255",explanation="Font color in RGB format for the thumbnail text"}
background_thumbnail_font_color={optional=true,default="255,255,255",example="255,255,255",explanation="Font color in RGB format for the thumbnail text"}
[settings.tts]
[settings.tts]
voice_choice={optional=false,default="tiktok",options=["elevenlabs","streamlabspolly","tiktok","googletranslate","awspolly","pyttsx","OpenAI"],example="tiktok",explanation="The voice platform used for TTS generation. "}
voice_choice={optional=false,default="Supertonic",options=["elevenlabs","streamlabspolly","tiktok","googletranslate","awspolly","pyttsx","OpenAI", "Supertonic"],example="Supertonic",explanation="The voice platform used for TTS generation. "}
random_voice={optional=false,type="bool",default=true,example=true,options=[true,false,],explanation="Randomizes the voice used for each comment"}
random_voice={optional=false,type="bool",default=true,example=true,options=[true,false,],explanation="Randomizes the voice used for each comment"}
elevenlabs_voice_name={optional=false,default="Bella",example="Bella",explanation="The voice used for elevenlabs",options=["Adam","Antoni","Arnold","Bella","Domi","Elli","Josh","Rachel","Sam",]}
elevenlabs_voice_name={optional=false,default="Bella",example="Bella",explanation="The voice used for elevenlabs",options=["Adam","Antoni","Arnold","Bella","Domi","Elli","Josh","Rachel","Sam",]}
elevenlabs_api_key={optional=true,example="21f13f91f54d741e2ae27d2ab1b99d59",explanation="Elevenlabs API key"}
elevenlabs_api_key={optional=true,example="21f13f91f54d741e2ae27d2ab1b99d59",explanation="Elevenlabs API key"}
openai_api_key={optional=true,example="sk-abc123def456...",explanation="Your OpenAI API key for TTS generation"}
openai_api_key={optional=true,example="sk-abc123def456...",explanation="Your OpenAI API key for TTS generation"}
openai_voice_name={optional=false,default="alloy",example="alloy",explanation="The voice used for OpenAI TTS generation",options=["alloy","ash","coral","echo","fable","onyx","nova","sage","shimmer","af_heart"]}
openai_voice_name={optional=false,default="alloy",example="alloy",explanation="The voice used for OpenAI TTS generation",options=["alloy","ash","coral","echo","fable","onyx","nova","sage","shimmer","af_heart"]}
openai_model={optional=false,default="tts-1",example="tts-1",explanation="The model variant used for OpenAI TTS generation",options=["tts-1","tts-1-hd","gpt-4o-mini-tts"]}
openai_model={optional=false,default="tts-1",example="tts-1",explanation="The model variant used for OpenAI TTS generation",options=["tts-1","tts-1-hd","gpt-4o-mini-tts"]}