From 221c8f6c44dcb37c8cba52a93008787e2bbaa3d6 Mon Sep 17 00:00:00 2001 From: lluni Date: Mon, 8 Jan 2024 15:10:05 +0100 Subject: [PATCH 1/2] Change video downloader to use the highest quality available while staying under a specified file size --- script.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/script.py b/script.py index ca27f41..c14ed66 100644 --- a/script.py +++ b/script.py @@ -56,20 +56,21 @@ for submission in reddit.subreddit(str(getenv("REDDIT_SUBREDDIT"))).top(time_fil mastodon.status_post(status_text, visibility="unlisted") # check if reddit video 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) - downloader = Downloader(url="https://www.reddit.com"+submission.permalink, filename="video.mp4", max_q=True) - downloader.download() + downloader = Downloader(url="https://www.reddit.com"+submission.permalink, filename="video.mp4", max_s=10_000_000, auto_max=True) + return_val = downloader.download() print("\nUploading video") - # check if video file is small enough for the server (10MB) - if getsize(filename) < 10_000_000: + # check if video was downloaded successfully (digit return value if unsuccessful, otherwise string value containing the path to the video) + 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) 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") - 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) else: From 83c87c310d37587636aafc3b6b9ea1e644063ac7 Mon Sep 17 00:00:00 2001 From: lluni Date: Mon, 8 Jan 2024 15:12:30 +0100 Subject: [PATCH 2/2] Fix video filename logic --- script.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/script.py b/script.py index c14ed66..a1b241f 100644 --- a/script.py +++ b/script.py @@ -56,9 +56,11 @@ for submission in reddit.subreddit(str(getenv("REDDIT_SUBREDDIT"))).top(time_fil mastodon.status_post(status_text, visibility="unlisted") # check if reddit video elif "v.redd.it" in submission.url: + filename = "video.mp4" + # download video with highest possible resolution while not exceeding 10MB print("Downloading video post: https://www.reddit.com" + submission.permalink) - downloader = Downloader(url="https://www.reddit.com"+submission.permalink, filename="video.mp4", max_s=10_000_000, auto_max=True) + downloader = Downloader(url="https://www.reddit.com"+submission.permalink, filename=filename, max_s=10_000_000, auto_max=True) return_val = downloader.download() print("\nUploading video")