import os
import time
from dotenv import load_dotenv
from reddit . subreddit import get_subreddit_threads
from utils . cleanup import cleanup
from utils . console import print_markdown , print_step
from video_creation . background import download_background , chop_background_video
from video_creation . final_video import make_final_video
from video_creation . screenshot_downloader import download_screenshots_of_reddit_posts
from video_creation . voices import save_text_to_mp3
load_dotenv ( )
# base code by elebumm
print_markdown (
" ### Thanks for using this tool! 😊 Feel free to contribute to this project on GitHub! (JasonLovesDoggo/RedditVideoMakerBot). If you have any questions, feel free to reach out to me on Twitter @JasonLovesDoggo or submit a GitHub issue. " )
time . sleep ( 2 )
def main ( ) :
cleanup ( )
def get_obj ( ) :
reddit_obj = get_subreddit_threads ( )
return reddit_obj
reddit_object = get_obj ( )
length , number_of_comments = save_text_to_mp3 ( reddit_object )
download_screenshots_of_reddit_posts ( reddit_object , number_of_comments )
download_background ( )
chop_background_video ( length )
final_video = make_final_video ( number_of_comments , length )
def run_many ( times ) :
for x in range ( times ) :
print_step (
f ' on the { x } { ( " st " if x == 1 else ( " nd " if x == 2 else ( " rd " if x == 3 else " th " ) ) ) } iteration ' ) # correct 1st 2nd 3rd 4th 5th....
os . system ( ' cls ' if os . name == ' nt ' else ' clear ' ) # clear terminal
main ( )
if __name__ == ' __main__ ' :
try :
if os . getenv ( ' TIMES_TO_RUN ' ) :
run_many ( int ( os . getenv ( ' TIMES_TO_RUN ' ) ) )
else :
main ( )
except KeyboardInterrupt :
print_markdown ( " ## Clearing temp files " )
cleanup ( )
exit ( )