You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RedditVideoMakerBot/main.py

65 lines
3.8 KiB

3 years ago
from utils.console import print_markdown
from reddit.subreddit import get_subreddit_threads
3 years ago
from video_creation.background import download_background, chop_background_video
from video_creation.voices import save_text_to_mp3
from video_creation.screenshot_downloader import download_screenshots_of_reddit_posts
from video_creation.final_video import make_final_video
3 years ago
from dotenv import load_dotenv
import os, time, shutil
3 years ago
REQUIRED_VALUES = ["REDDIT_CLIENT_ID","REDDIT_CLIENT_SECRET","REDDIT_USERNAME","REDDIT_PASSWORD", "OPACITY"]
banner = '''
'''
print(banner)
time.sleep(1.5)
3 years ago
print_markdown(
3 years ago
"### Thanks for using this tool! [Feel free to contribute to this project on GitHub!](https://lewismenelaws.com) If you have any questions, feel free to reach out to me on Twitter or submit a GitHub issue."
3 years ago
)
time.sleep(1)
3 years ago
load_dotenv()
3 years ago
configured = True
3 years ago
if not os.path.exists(".env"):
shutil.copy(".env.template", ".env")
configured = False
3 years ago
for val in REQUIRED_VALUES:
if val not in os.environ or not os.getenv(val):
print(f"Please set the variable \"{val}\" in your .env file.")
configured = False
try:
float(os.getenv("OPACITY"))
except:
print(f"Please ensure that OPACITY is set between 0 and 1 in your .env file")
configured = False
if configured:
reddit_object = get_subreddit_threads()
length, number_of_comments = save_text_to_mp3(reddit_object)
download_screenshots_of_reddit_posts(reddit_object, number_of_comments, os.getenv("THEME", "light"))
download_background()
chop_background_video(length)
final_video = make_final_video(number_of_comments)