Hana Celeste commited on
Rename app/youtube_dns.py to app/utils.py
Browse files- app/utils.py +15 -0
- app/youtube_dns.py +0 -20
app/utils.py
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import re
|
| 2 |
+
|
| 3 |
+
def extract_video_id(url: str) -> str:
|
| 4 |
+
patterns = [
|
| 5 |
+
r"v=([a-zA-Z0-9_-]{11})",
|
| 6 |
+
r"youtu\.be/([a-zA-Z0-9_-]{11})",
|
| 7 |
+
r"shorts/([a-zA-Z0-9_-]{11})"
|
| 8 |
+
]
|
| 9 |
+
|
| 10 |
+
for p in patterns:
|
| 11 |
+
m = re.search(p, url)
|
| 12 |
+
if m:
|
| 13 |
+
return m.group(1)
|
| 14 |
+
|
| 15 |
+
raise ValueError("Invalid YouTube URL")
|
app/youtube_dns.py
DELETED
|
@@ -1,20 +0,0 @@
|
|
| 1 |
-
import socket
|
| 2 |
-
import dns.resolver
|
| 3 |
-
|
| 4 |
-
_original_getaddrinfo = socket.getaddrinfo
|
| 5 |
-
|
| 6 |
-
def force_ipv4_dns():
|
| 7 |
-
def patched_getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
|
| 8 |
-
try:
|
| 9 |
-
if any(x in host for x in ("youtube.com", "googlevideo.com", "youtu.be")):
|
| 10 |
-
resolver = dns.resolver.Resolver()
|
| 11 |
-
resolver.nameservers = ["8.8.8.8", "1.1.1.1"]
|
| 12 |
-
answer = resolver.resolve(host, "A")
|
| 13 |
-
return [
|
| 14 |
-
(socket.AF_INET, socket.SOCK_STREAM, proto, "", (str(answer[0]), port))
|
| 15 |
-
]
|
| 16 |
-
except Exception:
|
| 17 |
-
pass
|
| 18 |
-
return _original_getaddrinfo(host, port, family, type, proto, flags)
|
| 19 |
-
|
| 20 |
-
socket.getaddrinfo = patched_getaddrinfo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|