Change video downloader to use the highest quality available while staying under a specified file size

This commit is contained in:
lluni 2024-01-08 15:10:05 +01:00
parent eb34c4cd8a
commit 221c8f6c44
Signed by: lluni
GPG key ID: ACEEB468BC325D35

View file

@ -56,20 +56,21 @@ for submission in reddit.subreddit(str(getenv("REDDIT_SUBREDDIT"))).top(time_fil
mastodon.status_post(status_text, visibility="unlisted") mastodon.status_post(status_text, visibility="unlisted")
# check if reddit video # check if reddit video
elif "v.redd.it" in submission.url: elif "v.redd.it" in submission.url:
# download video with highest possible resolution while not exceeding 10MB
print("Downloading video post: https://www.reddit.com" + submission.permalink) print("Downloading video post: https://www.reddit.com" + submission.permalink)
downloader = Downloader(url="https://www.reddit.com"+submission.permalink, filename="video.mp4", max_q=True) downloader = Downloader(url="https://www.reddit.com"+submission.permalink, filename="video.mp4", max_s=10_000_000, auto_max=True)
downloader.download() return_val = downloader.download()
print("\nUploading video") print("\nUploading video")
# check if video file is small enough for the server (10MB) # check if video was downloaded successfully (digit return value if unsuccessful, otherwise string value containing the path to the video)
if getsize(filename) < 10_000_000: if str(return_val).isdigit():
status_text = submission.title + "\n\nDas gepostete Video ist leider zu groß für diesen Server. Das Video bzw. der Post kann über den untenstehenden Link aufgerufen werden. " + "\n\ngeposted von u/" + submission.author.name + "\nhttps://www.reddit.com" + submission.permalink
mastodon.status_post(status_text, visibility="unlisted")
else:
media = mastodon.media_post(filename) media = mastodon.media_post(filename)
status_text = submission.title + "\n\ngeposted von u/" + submission.author.name + "\nhttps://www.reddit.com" + submission.permalink status_text = submission.title + "\n\ngeposted von u/" + submission.author.name + "\nhttps://www.reddit.com" + submission.permalink
mastodon.status_post(status_text, media_ids=media["id"], visibility="unlisted") mastodon.status_post(status_text, media_ids=media["id"], visibility="unlisted")
else:
status_text = submission.title + "\n\nDas gepostete Video ist leider zu lang für diesen Server. Das Video bzw. der Post kann über den untenstehenden Link aufgerufen werden. " + "\n\ngeposted von u/" + submission.author.name + "\nhttps://www.reddit.com" + submission.permalink
mastodon.status_post(status_text, visibility="unlisted")
remove(filename) remove(filename)
else: else: