diff options
author | Pawky Languish | 2025-04-19 19:07:38 +0000 |
---|---|---|
committer | Pawky Languish | 2025-04-19 19:07:38 +0000 |
commit | f4fb34dde6b03fdb49f71476d587c5c7f986b565 (patch) | |
tree | ef8cc174c413dcd766754bc51c52b9a2fc328e5c /youtube_scrape.py | |
parent | 12062621d6d67adb8abee962f4201e2d5196f55b (diff) |
Diffstat (limited to 'youtube_scrape.py')
-rwxr-xr-x | youtube_scrape.py | 37 |
1 files changed, 11 insertions, 26 deletions
diff --git a/youtube_scrape.py b/youtube_scrape.py index 82671a2..951af3b 100755 --- a/youtube_scrape.py +++ b/youtube_scrape.py @@ -21,6 +21,7 @@ class YouTube: self.util.mesg(msg, t) def match_urls(self, str): + str = str.replace("http://", "https://") r = [ i for i in str.split() @@ -54,14 +55,10 @@ class YouTube: return str.startswith("https://music.youtube.com/watch?v=") def is_ytshorts(self, str): - return str.startswith("https://youtube.com/shorts/") or str.startswith( - "https://www.youtube.com/shorts/" - ) + return str.startswith("https://youtube.com/shorts/") or str.startswith("https://www.youtube.com/shorts/") def is_clip(self, str): - return str.startswith("https://youtube.com/clip/") or str.startswith( - "https://www.youtube.com/clip/" - ) + return str.startswith("https://youtube.com/clip/") or str.startswith("https://www.youtube.com/clip/") class parseprop(HTMLParser): def __init__(self): @@ -84,10 +81,7 @@ class YouTube: if tag == "title": self.title = True if (tag != "meta" and tag != "link") or ( - ( - [i for i in attrs if "itemprop" in i] == [] - and ("name", "title") not in attrs - ) + ([i for i in attrs if "itemprop" in i] == [] and ("name", "title") not in attrs) or (tag == "meta" and ("itemprop", "name") in attrs) ): return @@ -129,7 +123,9 @@ class YouTube: return f"{m}m {s}s" def yt(self, url): - irc_string = "[\x0304Youtube\x03] \x0307ERROR:\x0308 got no data from server! \x0315(check your URL for typos!)\x03" + irc_string = ( + "[\x0304Youtube\x03] \x0307ERROR:\x0308 got no data from server! \x0315(check your URL for typos!)\x03" + ) ansi_string = "[\x1b[31mYoutube\x1b[0m] \x1b[33;2mERROR:\x1b[33;1m got no data from server! \x1b[37;2m(check your URL for typos!)\x1b[0m" # self.util.mesg("dbg hello") url = url.rstrip("\x01") @@ -139,11 +135,7 @@ class YouTube: else ( "shorts" if self.is_ytshorts(url) - else ( - "music" - if self.is_ytmusic(url) - else "embed" if self.is_embed(url) else "video" - ) + else ("music" if self.is_ytmusic(url) else "embed" if self.is_embed(url) else "video") ) ) video_type = self.video_type @@ -161,16 +153,11 @@ class YouTube: p = self.parseprop() data = b"" data = data.decode() # bytes to utf-8 - if ( - data.find('meta itemprop="duration"') == -1 - or data.find('meta itemprop="name"') == -1 - ): + if data.find('meta itemprop="duration"') == -1 or data.find('meta itemprop="name"') == -1: try: status, data = urlget(url) if status != 200: - irc_string = ( - f"[\x0304Youtube\x03] \x0307ERROR:\x0308 {status} \x0315\x03" - ) + irc_string = f"[\x0304Youtube\x03] \x0307ERROR:\x0308 {status} \x0315\x03" ansi_string = f"[\x1b[31mYoutube\x1b[0m] \x1b[33;2mERROR:\x1b[33;1m {status} \x1b[37;2m\x1b[0m" except URLgetException as e: irc_string = f"[\x0304Youtube\x03] \x0307ERROR:\x0308 {e} \x0315\x03" @@ -182,9 +169,7 @@ class YouTube: print(ansi_string) return irc_string, True elif p.h == {"html_title": "YouTube"}: - irc_string = ( - "[\x0304Youtube\x03] \x0307ERROR:\x0308 flagged as bot \x0315\x03" - ) + irc_string = "[\x0304Youtube\x03] \x0307ERROR:\x0308 flagged as bot \x0315\x03" ansi_string = "[\x1b[31mYoutube\x1b[0m] \x1b[33;2mERROR:\x1b[33;1m flagged as bot \x1b[37;2m\x1b[0m" print(ansi_string) return irc_string, True |