adds new setting use_capcut (todo: make sure i have converted to that everywhere)
TODO: remove old my old attempts at better subtitles, and make capcut the default
TODO: make capcut.py close stuff that blocks clicks
TODO: make mememode shows memes for longer
TODO: make mememode require all the other settings and/or stuff
@ -3,57 +3,263 @@ client_id = { optional = false, nmin = 12, nmax = 30, explanation = "The ID of y
client_secret={optional=false,nmin=20,nmax=40,explanation="The SECRET of your Reddit app of SCRIPT type",example="fFAGRNJru1FTz70BzhT3Zg",regex="^[-a-zA-Z0-9._~+/]+=*$",input_error="The client ID can only contain printable characters.",oob_error="The secret should be over 20 and under 40 characters, double check your input."}
client_secret={optional=false,nmin=20,nmax=40,explanation="The SECRET of your Reddit app of SCRIPT type",example="fFAGRNJru1FTz70BzhT3Zg",regex="^[-a-zA-Z0-9._~+/]+=*$",input_error="The client ID can only contain printable characters.",oob_error="The secret should be over 20 and under 40 characters, double check your input."}
username={optional=false,nmin=3,nmax=20,explanation="The username of your reddit account",example="JasonLovesDoggo",regex="^[-_0-9a-zA-Z]+$",oob_error="A username HAS to be between 3 and 20 characters"}
username={optional=false,nmin=3,nmax=20,explanation="The username of your reddit account",example="JasonLovesDoggo",regex="^[-_0-9a-zA-Z]+$",oob_error="A username HAS to be between 3 and 20 characters"}
password={optional=false,nmin=8,explanation="The password of your reddit account",example="fFAGRNJru1FTz70BzhT3Zg",oob_error="Password too short"}
password={optional=false,nmin=8,explanation="The password of your reddit account",example="fFAGRNJru1FTz70BzhT3Zg",oob_error="Password too short"}
2fa={optional=true,type="bool",options=[true,false,],default=false,explanation="Whether you have Reddit 2FA enabled, Valid options are True and False",example=true}
2fa={optional=true,type="bool",options=[
true,
false,
],default=false,explanation="Whether you have Reddit 2FA enabled, Valid options are True and False",example=true}
[capcut]
[capcut]
email={optional=false,nmin=3,nmax=50,explanation="The email of your CapCut account",example=""}
email={optional=false,nmin=3,nmax=50,explanation="The email of your CapCut account",example=""}
password={optional=false,nmin=8,explanation="The password of your CapCut account",example=""}
password={optional=false,nmin=8,explanation="The password of your CapCut account",example=""}
cloud_id={optional=false,nmin=8,type="int",explanation="The cloud id of your CapCut account",example=""}
cloud_id={optional=false,nmin=8,type="int",explanation="The cloud id of your CapCut account",example=""}
preset_number={optional=true,default=18,type="int",explanation="The preset number of your CapCut account",example=1}
preset_number={optional=true,default=18,type="int",explanation="The preset number of your CapCut account",example=1}
[reddit.thread]
[reddit.thread]
random={optional=true,options=[true,false,],default=false,type="bool",explanation="If set to no, it will ask you a thread link to extract the thread, if yes it will randomize it. Default: 'False'",example="True"}
random={optional=true,options=[
true,
false,
],default=false,type="bool",explanation="If set to no, it will ask you a thread link to extract the thread, if yes it will randomize it. Default: 'False'",example="True"}
subreddit={optional=false,regex="[_0-9a-zA-Z\\+]+$",nmin=3,explanation="What subreddit to pull posts from, the name of the sub, not the URL. You can have multiple subreddits, add an + with no spaces.",example="AskReddit+Redditdev",oob_error="A subreddit name HAS to be between 3 and 20 characters"}
subreddit={optional=false,regex="[_0-9a-zA-Z\\+]+$",nmin=3,explanation="What subreddit to pull posts from, the name of the sub, not the URL. You can have multiple subreddits, add an + with no spaces.",example="AskReddit+Redditdev",oob_error="A subreddit name HAS to be between 3 and 20 characters"}
post_id={optional=true,default="",regex="^((?!://|://)[+a-zA-Z0-9])*$",explanation="Used if you want to use a specific post.",example="urdtfx"}
post_id={optional=true,default="",regex="^((?!://|://)[+a-zA-Z0-9])*$",explanation="Used if you want to use a specific post.",example="urdtfx"}
max_comment_length={default=500,optional=false,nmin=10,nmax=10000,type="int",explanation="max number of characters a comment can have. default is 500",example=500,oob_error="the max comment length should be between 10 and 10000"}
max_comment_length={default=500,optional=false,nmin=10,nmax=10000,type="int",explanation="max number of characters a comment can have. default is 500",example=500,oob_error="the max comment length should be between 10 and 10000"}
min_comment_length={default=1,optional=true,nmin=0,nmax=10000,type="int",explanation="min_comment_length number of characters a comment can have. default is 0",example=50,oob_error="the max comment length should be between 1 and 100"}
min_comment_length={default=1,optional=true,nmin=0,nmax=10000,type="int",explanation="min_comment_length number of characters a comment can have. default is 0",example=50,oob_error="the max comment length should be between 1 and 100"}
post_lang={default="",optional=true,explanation="The language you would like to translate to.",example="es-cr",options=['','af','ak','am','ar','as','ay','az','be','bg','bho','bm','bn','bs','ca','ceb','ckb','co','cs','cy','da','de','doi','dv','ee','el','en','en-US','eo','es','et','eu','fa','fi','fr','fy','ga','gd','gl','gn','gom','gu','ha','haw','hi','hmn','hr','ht','hu','hy','id','ig','ilo','is','it','iw','ja','jw','ka','kk','km','kn','ko','kri','ku','ky','la','lb','lg','ln','lo','lt','lus','lv','mai','mg','mi','mk','ml','mn','mni-Mtei','mr','ms','mt','my','ne','nl','no','nso','ny','om','or','pa','pl','ps','pt','qu','ro','ru','rw','sa','sd','si','sk','sl','sm','sn','so','sq','sr','st','su','sv','sw','ta','te','tg','th','ti','tk','tl','tr','ts','tt','ug','uk','ur','uz','vi','xh','yi','yo','zh-CN','zh-TW','zu']}
post_lang={default="",optional=true,explanation="The language you would like to translate to.",example="es-cr",options=[
'',
'af',
'ak',
'am',
'ar',
'as',
'ay',
'az',
'be',
'bg',
'bho',
'bm',
'bn',
'bs',
'ca',
'ceb',
'ckb',
'co',
'cs',
'cy',
'da',
'de',
'doi',
'dv',
'ee',
'el',
'en',
'en-US',
'eo',
'es',
'et',
'eu',
'fa',
'fi',
'fr',
'fy',
'ga',
'gd',
'gl',
'gn',
'gom',
'gu',
'ha',
'haw',
'hi',
'hmn',
'hr',
'ht',
'hu',
'hy',
'id',
'ig',
'ilo',
'is',
'it',
'iw',
'ja',
'jw',
'ka',
'kk',
'km',
'kn',
'ko',
'kri',
'ku',
'ky',
'la',
'lb',
'lg',
'ln',
'lo',
'lt',
'lus',
'lv',
'mai',
'mg',
'mi',
'mk',
'ml',
'mn',
'mni-Mtei',
'mr',
'ms',
'mt',
'my',
'ne',
'nl',
'no',
'nso',
'ny',
'om',
'or',
'pa',
'pl',
'ps',
'pt',
'qu',
'ro',
'ru',
'rw',
'sa',
'sd',
'si',
'sk',
'sl',
'sm',
'sn',
'so',
'sq',
'sr',
'st',
'su',
'sv',
'sw',
'ta',
'te',
'tg',
'th',
'ti',
'tk',
'tl',
'tr',
'ts',
'tt',
'ug',
'uk',
'ur',
'uz',
'vi',
'xh',
'yi',
'yo',
'zh-CN',
'zh-TW',
'zu',
]}
min_comments={default=20,optional=false,nmin=10,type="int",explanation="The minimum number of comments a post should have to be included. default is 20",example=29,oob_error="the minimum number of comments should be between 15 and 999999"}
min_comments={default=20,optional=false,nmin=10,type="int",explanation="The minimum number of comments a post should have to be included. default is 20",example=29,oob_error="the minimum number of comments should be between 15 and 999999"}
[ai]
[ai]
ai_similarity_enabled={optional=true,option=[true,false],default=false,type="bool",explanation="Threads read from Reddit are sorted based on their similarity to the keywords given below"}
ai_similarity_enabled={optional=true,option=[
ai_similarity_keywords={optional=true,type="str",example='Elon Musk, Twitter, Stocks',explanation="Every keyword or even sentence, seperated with comma, is used to sort the reddit threads based on similarity"}
true,
false,
],default=false,type="bool",explanation="Threads read from Reddit are sorted based on their similarity to the keywords given below"}
ai_similarity_keywords={optional=true,type="str",example='Elon Musk, Twitter, Stocks',explanation="Every keyword or even sentence, seperated with comma, is used to sort the reddit threads based on similarity"}
[settings]
[settings]
allow_nsfw={optional=false,type="bool",default=false,example=false,options=[true,false,],explanation="Whether to allow NSFW content, True or False"}
theme={optional=false,default="dark",example="light",options=["dark","light","transparent",],explanation="Sets the Reddit theme, either LIGHT or DARK. For story mode you can also use a transparent background."}
true,
false,
],explanation="Whether to allow NSFW content, True or False"}
],explanation="Sets the Reddit theme, either LIGHT or DARK. For story mode you can also use a transparent background."}
times_to_run={optional=false,default=1,example=2,explanation="Used if you want to run multiple times. Set to an int e.g. 4 or 29 or 1",type="int",nmin=1,oob_error="It's very hard to run something less than once."}
times_to_run={optional=false,default=1,example=2,explanation="Used if you want to run multiple times. Set to an int e.g. 4 or 29 or 1",type="int",nmin=1,oob_error="It's very hard to run something less than once."}
opacity={optional=false,default=0.9,example=0.8,explanation="Sets the opacity of the comments when overlayed over the background",type="float",nmin=0,nmax=1,oob_error="The opacity HAS to be between 0 and 1",input_error="The opacity HAS to be a decimal number between 0 and 1"}
opacity={optional=false,default=0.9,example=0.8,explanation="Sets the opacity of the comments when overlayed over the background",type="float",nmin=0,nmax=1,oob_error="The opacity HAS to be between 0 and 1",input_error="The opacity HAS to be a decimal number between 0 and 1"}
#transition = { optional = true, default = 0.2, example = 0.2, explanation = "Sets the transition time (in seconds) between the comments. Set to 0 if you want to disable it.", type = "float", nmin = 0, nmax = 2, oob_error = "The transition HAS to be between 0 and 2", input_error = "The opacity HAS to be a decimal number between 0 and 2" }
#transition = { optional = true, default = 0.2, example = 0.2, explanation = "Sets the transition time (in seconds) between the comments. Set to 0 if you want to disable it.", type = "float", nmin = 0, nmax = 2, oob_error = "The transition HAS to be between 0 and 2", input_error = "The opacity HAS to be a decimal number between 0 and 2" }
mememode={optional=true,type="bool",default=false,example=false,options=[true,false,],explanation="Only show post content, and multipile of them (no comments)"}
storymode={optional=true,type="bool",default=false,example=false,options=[true,false,],explanation="Only read out title and post content, great for subreddits with stories"}
true,
storymodemethod={optional=true,default=1,example=1,explanation="Style that's used for the storymode. Set to 0 for single picture display in whole video, set to 1 for fancy looking video ",type="int",nmin=0,oob_error="It's very hard to run something less than once.",options=[0,1]}
false,
],explanation="Only show post content, and multipile of them (no comments)"}
],explanation="Only read out title and post content, great for subreddits with stories"}
storymodemethod={optional=true,default=1,example=1,explanation="Style that's used for the storymode. Set to 0 for single picture display in whole video, set to 1 for fancy looking video ",type="int",nmin=0,oob_error="It's very hard to run something less than once.",options=[
0,
1,
]}
storymode_max_length={optional=true,default=1000,example=1000,explanation="Max length of the storymode video in characters. 200 characters are approximately 50 seconds.",type="int",nmin=1,oob_error="It's very hard to make a video under a second."}
storymode_max_length={optional=true,default=1000,example=1000,explanation="Max length of the storymode video in characters. 200 characters are approximately 50 seconds.",type="int",nmin=1,oob_error="It's very hard to make a video under a second."}
resolution_w={optional=false,default=1080,example=1440,explantation="Sets the width in pixels of the final video"}
resolution_w={optional=false,default=1080,example=1440,explantation="Sets the width in pixels of the final video"}
resolution_h={optional=false,default=1920,example=2560,explantation="Sets the height in pixels of the final video"}
resolution_h={optional=false,default=1920,example=2560,explantation="Sets the height in pixels of the final video"}
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 username that appaers in the fancy title screen"}
channel_name={optional=true,default="Reddit Tales",example="Reddit Stories",explanation="Sets the username that appaers in the fancy title screen"}
words_on_screen={optional=true,default=10,example=1,type="int",explanation="Sets how many words should be shown on screen"}
words_on_screen={optional=true,default=10,example=1,type="int",explanation="Sets how many words should be shown on screen"}
[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",""],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"}
"satisfying",
background_audio_volume={optional=true,type="float",nmin=0,nmax=1,default=0.15,example=0.05,explanation="Sets the volume of the background audio. If you don't want background audio, set it to 0.",oob_error="The volume HAS to be between 0 and 1",input_error="The volume HAS to be a float number between 0 and 1"}
"minecraft",
enable_extra_audio={optional=true,type="bool",default=false,example=false,explanation="Used if you want to render another video without background audio in a separate folder",input_error="The value HAS to be true or false"}
"gta",
background_thumbnail={optional=true,type="bool",default=false,example=false,options=[true,false,],explanation="Generate a thumbnail for the video (put a thumbnail.png file in the assets/backgrounds directory.)"}
"rocket-league",
"motor-gta",
"csgo-surf",
"cluster-truck",
"minecraft-2",
"multiversus",
"fall-guys",
"steep",
"",
],explanation="Sets the background for the video based on game name"}
],explanation="Sets the background audio for the video"}
background_audio_volume={optional=true,type="float",nmin=0,nmax=1,default=0.15,example=0.05,explanation="Sets the volume of the background audio. If you don't want background audio, set it to 0.",oob_error="The volume HAS to be between 0 and 1",input_error="The volume HAS to be a float number between 0 and 1"}
enable_extra_audio={optional=true,type="bool",default=false,example=false,explanation="Used if you want to render another video without background audio in a separate folder",input_error="The value HAS to be true or false"}
],explanation="Generate a thumbnail for the video (put a thumbnail.png file in the assets/backgrounds directory.)"}
background_thumbnail_font_family={optional=true,default="arial",example="arial",explanation="Font family for the thumbnail text"}
background_thumbnail_font_family={optional=true,default="arial",example="arial",explanation="Font family for the thumbnail text"}
background_thumbnail_font_size={optional=true,type="int",default=96,example=96,explanation="Font size in pixels for the thumbnail text"}
background_thumbnail_font_size={optional=true,type="int",default=96,example=96,explanation="Font size in pixels 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"}
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",],example="tiktok",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"}
"elevenlabs",
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",]}
"streamlabspolly",
"tiktok",
"googletranslate",
"awspolly",
"pyttsx",
],example="tiktok",explanation="The voice platform used for TTS generation. "}
python_voice={optional=false,default="1",example="1",explanation="The index of the system tts voices (can be downloaded externally, run ptt.py to find value, start from zero)"}
python_voice={optional=false,default="1",example="1",explanation="The index of the system tts voices (can be downloaded externally, run ptt.py to find value, start from zero)"}
py_voice_num={optional=false,default="2",example="2",explanation="The number of system voices (2 are pre-installed in Windows)"}
py_voice_num={optional=false,default="2",example="2",explanation="The number of system voices (2 are pre-installed in Windows)"}
silence_duration={optional=true,example="0.1",explanation="Time in seconds between TTS comments",default=0.3,type="float"}
silence_duration={optional=true,example="0.1",explanation="Time in seconds between TTS comments",default=0.3,type="float"}
no_emojis={optional=false,type="bool",default=false,example=false,options=[true,false,],explanation="Whether to remove emojis from the comments"}