annotate kmbscreens/kmbscreens.py @ 133:0d8eabdd12ab default tip

create: write H:MM:SS timestamps, add option to fill with gaussian-blur instead of black many albums are longer than one hour so writing H:MM:SS is a necessity. if anything there will just be verbose info that isn't important for my use-case. however the gaussian-blur is simply broken. It works, and it plays locally just fine, but YouTube in particular elongates the video to fit the full width. I'm not entirely sure why it does this, but it makes it useless and ugly.
author Paper <paper@tflc.us>
date Sat, 03 Jan 2026 20:25:38 -0500
parents a0f8c92d46db
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
116
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
1 import os
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
2 import tweepy
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
3 import json
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
4 import glob
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
5 import subprocess
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
6 import random
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
7 API_KEY = "API_KEY"
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
8 API_KEY_SECRET = "API_KEY_SECRET"
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
9 access_tokens = []
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
10 if os.path.exists("./credentials.json"):
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
11 with open("credentials.json", "r") as f:
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
12 access_tokens = json.load(f)
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
13
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
14 oauth1_user_handler = None
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
15 try:
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
16 oauth1_user_handler = tweepy.OAuth1UserHandler(
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
17 API_KEY, API_KEY_SECRET,
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
18 access_tokens[0], access_tokens[1],
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
19 callback="oob"
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
20 )
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
21 except IndexError:
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
22 oauth1_user_handler = tweepy.OAuth1UserHandler(
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
23 API_KEY, API_KEY_SECRET,
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
24 callback="oob"
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
25 )
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
26
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
27 if not access_tokens:
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
28 print(oauth1_user_handler.get_authorization_url())
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
29 pin = input("Input PIN: ")
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
30 access_tokens.extend(oauth1_user_handler.get_access_token(pin))
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
31 with open("credentials.json", "w") as f:
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
32 json.dump(access_tokens, f)
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
33
122
a0f8c92d46db Update kmbscreens.py for LINUCKS
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 116
diff changeset
34 episode = random.choice(list(glob.glob("/mnt/2TBMEDIA/Movies/Anime/Kill Me Baby/*.mkv")))
a0f8c92d46db Update kmbscreens.py for LINUCKS
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 116
diff changeset
35 result = subprocess.run(["ffprobe", "-v", "quiet", "-of", "csv=p=0",
116
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
36 "-show_entries", "format=duration", episode],
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
37 capture_output=True, text=True)
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
38 test = random.randint(0, round(float(result.stdout.strip())))
122
a0f8c92d46db Update kmbscreens.py for LINUCKS
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 116
diff changeset
39 result = subprocess.run(["ffmpeg", "-hide_banner", "-loglevel",
116
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
40 "warning", "-i", episode, "-y", "-frames:v", "1",
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
41 "-ss", str(test), "screencap.jpg"])
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
42
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
43 api = tweepy.API(oauth1_user_handler)
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
44 with open("screencap.jpg", "rb") as f:
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
45 media = api.media_upload(None, file=f)
205fc01d5eb4 kmbscreens: replace bat+c with py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
46 api.update_status("", media_ids=[media.media_id_string])