handle channel name redirect in UrlListParser, #276

This commit is contained in:
simon
2022-08-12 11:53:31 +07:00
parent 257f7a0287
commit 474ab22792

View File

@@ -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: