annotate uploadafterdl.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 eacdf8cc0335
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
71
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
1 from tubeup.TubeUp import TubeUp
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
2 from yt_dlp.utils import sanitize_filename
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
3 import glob
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
4 import json
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
5 import os
102
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
6 import internetarchive
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
7
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
8 seen_ids = []
71
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
9
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
10 tu = TubeUp()
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
11
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
12 for basename in glob.glob('*.info.json'):
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
13 print(basename + " " + str(os.path.getsize(basename)))
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
14 if os.path.getsize(basename) != 0:
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
15 if not any(x in os.listdir(".") for x in [sanitize_filename(basename[:-10] + ".mp4", restricted=True),
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
16 sanitize_filename(basename[:-10] + ".mkv", restricted=True),
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
17 sanitize_filename(basename[:-10] + ".webm", restricted=True)]):
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
18 print("no video downloaded")
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
19 continue
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
20 with open(basename, "r", encoding="utf-8") as jf:
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
21 jsons = json.load(jf)
102
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
22 jsons["extractor"] = "youtube" if "extractor" not in jsons else jsons["extractor"]
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
23 jsons["display_id"] = basename[:-10].split("-")[:-11] if "extractor" not in jsons else jsons["id"]
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
24 jsons["title"] = jsons["fulltitle"] if "extractor" not in jsons else jsons["title"]
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
25 jsons["webpage_url"] = "https://youtube.com/watch?v=%s" % (jsons["display_id"])
71
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
26 jsons["extractor_key"] = "Youtube"
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
27 with open(basename, "w", encoding="utf-8") as jf:
a9776ed0538b Create uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
28 jf.write(json.dumps(jsons))
102
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
29 if not internetarchive.get_item("%s-%s" % (jsons["extractor"], jsons["display_id"])).exists:
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
30 identifier, meta = tu.upload_ia(sanitize_filename(basename[:-10]))
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
31 print("%s, %s" % (identifier, meta))
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
32 print("uploaded %s" % basename)
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
33 else:
eacdf8cc0335 Update uploadafterdl.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 71
diff changeset
34 print("skipped %s, item already exists" % basename)