Fixed some bugs and upped background resolution

Fixed the 2 most common errors that I encountered:
 - The "SoX error" (That's what it's called in JasonLovesDoggo's repo)
 - AttributeError: 'dict' object has no attribute 'title'

Fixed the ending being glitchy and freezing

Upped the resolution of the background cause it looked bad
pull/418/head
PatatjeMC 3 years ago
parent d962990419
commit f67aefabfd

@ -20,10 +20,8 @@ def main():
def get_obj():
reddit_obj = get_subreddit_threads()
for comment in (reddit_obj["comments"]):
if len(comment) > 250:
print(comment)
if len(comment["comment_body"]) > 250:
reddit_obj["comments"].remove(comment)
print(reddit_obj["comments"])
return reddit_obj
reddit_object = get_obj()
@ -31,7 +29,7 @@ def main():
download_screenshots_of_reddit_posts(reddit_object, number_of_comments)
download_background()
chop_background_video(length)
final_video = make_final_video(number_of_comments)
final_video = make_final_video(number_of_comments, length)
if __name__ == '__main__':

@ -43,6 +43,8 @@ def get_subreddit_threads():
threads = subreddit.hot(limit=25)
submission = list(threads)[random.randrange(0, 25)]
submission = check_done(submission)
if submission == None:
return get_subreddit_threads()
print_substep(
f'subreddit thread is: {submission.title}\n(if you dont like this, you can change it by exiting and rerunning the program)')

@ -17,6 +17,5 @@ def check_done(redditobj): # don't set this to be run anyplace that isn't subre
for video in done_videos:
if video['id'] == str(redditobj):
print_step('Getting new post as the current one has already been done')
from reddit.subreddit import get_subreddit_threads
return get_subreddit_threads() # recursive func
return None
return redditobj

@ -36,7 +36,7 @@ def download_background():
for uri, filename, credit in background_options:
print_substep(f"Downloading {filename} from {uri}")
YouTube(uri).streams.filter(res="720p").first().download("assets/backgrounds",
YouTube(uri).streams.filter(res="1080p").first().download("assets/backgrounds",
filename=f"{credit}-{filename}")
progress.update(download_task, advance=1)

@ -1 +1,9 @@
[]
[
{
"id": "v581n3",
"time": "1654440078",
"background_credit": "Orbital Gameplay",
"reddit_title": "Who is the most evil person alive today",
"filename": "Who is the most evil person al....mp4"
}
]

@ -3,8 +3,8 @@ import os
import time
from os.path import exists
from moviepy.editor import (VideoFileClip, AudioFileClip, ImageClip, concatenate_videoclips, concatenate_audioclips,
CompositeAudioClip, CompositeVideoClip)
from moviepy.editor import VideoFileClip, AudioFileClip, ImageClip, concatenate_videoclips, concatenate_audioclips, CompositeAudioClip, CompositeVideoClip
from moviepy.video import io
from utils.cleanup import cleanup
from utils.console import print_step, print_substep
@ -12,7 +12,7 @@ from utils.console import print_step, print_substep
W, H = 1080, 1920
def make_final_video(number_of_clips):
def make_final_video(number_of_clips, length):
print_step("Creating the final video 🎥")
VideoFileClip.reW = lambda clip: clip.resize(width=W)
VideoFileClip.reH = lambda clip: clip.resize(width=H)
@ -65,7 +65,11 @@ def make_final_video(number_of_clips):
if not exists('./results'):
print_substep('the results folder didn\'t exist so I made it')
os.mkdir("./results")
final.write_videofile(f"results/{filename}", fps=30, audio_codec="aac", audio_bitrate="192k")
final.write_videofile("temp.mp4", fps=30, audio_codec="aac", audio_bitrate="192k")
io.ffmpeg_tools.ffmpeg_extract_subclip("temp.mp4", 0, length, targetname=f"results/{filename}")
os.remove("temp.mp4")
print_step("Removing temporary files 🗑")
cleanups = cleanup()
print_substep(f"Removed {cleanups} temporary files 🗑")

Loading…
Cancel
Save