diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 081b710df..33b93f3ca 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -2184,9 +2184,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor): video_alt_title = video_creator = None def extract_meta(field): - return re.search( + return self._search_regex( r']+class="title"[^>]*>\s*%s\s*\s*]*>\s*
  • (.+?)
  • \s*' % field, - video_webpage).group(1) + video_webpage, field, default=None) def extract_meta_url(list_elem_content:str): if list_elem_content.endswith(''): @@ -2194,8 +2194,18 @@ class YoutubeIE(YoutubeBaseInfoExtractor): else: return None, list_elem_content - music_relative_url, track = extract_meta_url(extract_meta('Song')) - artist_relative_url, artist = extract_meta_url(extract_meta('Artist')) + song_elem_content = extract_meta('Song') + if song_elem_content: + music_relative_url, track = extract_meta_url(song_elem_content) + else: + music_relative_url = track = None + + artist_elem_content = extract_meta('Artist') + if artist_elem_content: + artist_relative_url, artist = extract_meta_url(artist_elem_content) + else: + artist_relative_url = artist = None + album = extract_meta('Album') # Youtube Music Auto-generated description