Mercurial > codedump
annotate dlfilesinchannel.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 | eac6dae753ca |
| children |
| rev | line source |
|---|---|
|
101
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
1 import math |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
2 import requests |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
3 import shutil |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
4 import os |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
5 import time |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
6 import urllib.parse |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
7 import re |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
8 ID = "ID" |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
9 CHN_ID = "CHN_ID" |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
10 |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
11 def find_urls(s): |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
12 urllist = [] |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
13 for findall in re.findall(r"""http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+""", s): |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
14 urllist.append(findall.split("<")[0].split(">")[-1]) |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
15 return urllist |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
16 |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
17 def download_file(url, local_filename): |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
18 with requests.get(url, stream=True) as r: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
19 with open(local_filename, 'wb') as f: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
20 shutil.copyfileobj(r.raw, f) |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
21 return |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
22 |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
23 |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
24 session = requests.Session() |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
25 |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
26 session.headers = { |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
27 'authority': 'discord.com', |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
28 'x-super-properties': 'eyJvcyI6IldpbmRvd3MiLCJicm93c2VyIjoiRGlzY29yZCBDbGllbnQiLCJyZWxlYXNlX2NoYW5uZWwiOiJzdGFibGUiLCJjbGllbnRfdmVyc2lvbiI6IjEuMC45MDAyIiwib3NfdmVyc2lvbiI6IjEwLjAuMTkwNDMiLCJvc19hcmNoIjoieDY0Iiwic3lzdGVtX2xvY2FsZSI6ImVuLVVTIiwiY2xpZW50X2J1aWxkX251bWJlciI6OTQyOTQsImNsaWVudF9ldmVudF9zb3VyY2UiOm51bGx9', |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
29 'authorization': 'TOKEN', |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
30 'x-debug-options': 'bugReporterEnabled', |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
31 'accept-language': 'en-US', |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
32 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) discord/1.0.9002 Chrome/83.0.4103.122 Electron/9.3.5 Safari/537.36', |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
33 'accept': '*/*', |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
34 'sec-fetch-site': 'same-origin', |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
35 'sec-fetch-mode': 'cors', |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
36 'sec-fetch-dest': 'empty', |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
37 } |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
38 |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
39 response = session.get("https://discord.com/api/v9/guilds/%s/messages/search?has=link&channel_id=%s&include_nsfw=true" % (ID, CHN_ID)).json() |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
40 |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
41 for done in range(math.ceil(int(response["total_results"])/25)): |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
42 currentresponse = session.get("https://discord.com/api/v9/guilds/%s/messages/search?has=link&channel_id=%s&include_nsfw=true&offset=%d" % (ID, CHN_ID, done*25)).json() |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
43 for i in currentresponse["messages"]: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
44 for x in find_urls(i[0]["content"]): |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
45 if urllib.parse.urlparse(x).netloc.find("tenor.com") != -1: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
46 continue |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
47 try: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
48 headresponse = session.head(x) |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
49 except Exception as e: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
50 print("failed to download " + x.split("/")[-1] + " " + type(e).__name__) |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
51 time.sleep(1) |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
52 continue |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
53 if headresponse.headers["Content-Type"] == "video/mp4": |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
54 if os.path.exists(x.split("/")[-1]): |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
55 if not os.path.getsize(x.split("/")[-1]) < int(headresponse.headers["Content-Length"]): |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
56 print(x.split("/")[-1] + " already downloaded!") |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
57 continue |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
58 try: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
59 download_file(x, x.split("/")[-1]) |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
60 print(x.split("/")[-1] + " downloaded!") |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
61 except Exception as e: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
62 print("failed to download " + x.split("/")[-1] + " " + type(e).__name__) |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
63 continue |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
64 time.sleep(1) |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
65 for x in i[0]["attachments"]: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
66 if os.path.exists(x["filename"]): |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
67 if not os.path.getsize(x["filename"]) < x["size"]: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
68 print(x["filename"] + " already downloaded!") |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
69 continue |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
70 try: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
71 download_file(x["url"], x["filename"]) |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
72 print(x["filename"] + " downloaded!") |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
73 except Exception as e: |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
74 print(e) |
|
a7d2fb3751a0
Create from.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
75 time.sleep(1) |
