mirror of
https://git.vectorsigma.ru/public/tubearchivist.git
synced 2026-08-04 23:39:18 +00:00
handle channel name redirect in UrlListParser, #276
This commit is contained in:
@@ -158,12 +158,12 @@ class UrlListParser:
|
|||||||
if parsed.query:
|
if parsed.query:
|
||||||
# detect from query string
|
# detect from query string
|
||||||
query_parsed = parse_qs(parsed.query)
|
query_parsed = parse_qs(parsed.query)
|
||||||
if "v" in query_parsed.keys():
|
if "v" in query_parsed:
|
||||||
youtube_id = query_parsed["v"][0]
|
youtube_id = query_parsed["v"][0]
|
||||||
_ = self.find_valid_id(youtube_id)
|
_ = self.find_valid_id(youtube_id)
|
||||||
return youtube_id, "video"
|
return youtube_id, "video"
|
||||||
|
|
||||||
if "list" in query_parsed.keys():
|
if "list" in query_parsed:
|
||||||
youtube_id = query_parsed["list"][0]
|
youtube_id = query_parsed["list"][0]
|
||||||
return youtube_id, "playlist"
|
return youtube_id, "playlist"
|
||||||
|
|
||||||
@@ -202,13 +202,19 @@ class UrlListParser:
|
|||||||
"playlistend": 0,
|
"playlistend": 0,
|
||||||
}
|
}
|
||||||
url_info = YtWrap(obs_request).extract(url)
|
url_info = YtWrap(obs_request).extract(url)
|
||||||
try:
|
channel_id = url_info.get("channel_id", False)
|
||||||
channel_id = url_info["channel_id"]
|
if channel_id:
|
||||||
except KeyError as error:
|
return channel_id
|
||||||
print(f"failed to extract channel id from {url}")
|
|
||||||
raise ValueError from error
|
|
||||||
|
|
||||||
return channel_id
|
url = url_info.get("url", False)
|
||||||
|
if url:
|
||||||
|
# handle old channel name redirect with url path split
|
||||||
|
channel_id = urlparse(url).path.strip("/").split("/")[1]
|
||||||
|
|
||||||
|
return channel_id
|
||||||
|
|
||||||
|
print(f"failed to extract channel id from {url}")
|
||||||
|
raise ValueError
|
||||||
|
|
||||||
|
|
||||||
class DurationConverter:
|
class DurationConverter:
|
||||||
|
|||||||
Reference in New Issue
Block a user