diff --git a/yt_dlp/extractor/_extractors.py b/yt_dlp/extractor/_extractors.py
index 3aba459fe6..3a71ec625c 100644
--- a/yt_dlp/extractor/_extractors.py
+++ b/yt_dlp/extractor/_extractors.py
@@ -585,8 +585,8 @@ from .egghead import (
EggheadLessonIE,
)
from .eggs import (
- EggsIE,
EggsArtistIE,
+ EggsIE,
)
from .eighttracks import EightTracksIE
from .eitb import EitbIE
diff --git a/yt_dlp/extractor/eggs.py b/yt_dlp/extractor/eggs.py
index df5dedc531..966afcc95c 100644
--- a/yt_dlp/extractor/eggs.py
+++ b/yt_dlp/extractor/eggs.py
@@ -3,8 +3,8 @@ import re
from .common import InfoExtractor
from ..utils import (
ExtractorError,
- url_or_none,
unescapeHTML,
+ url_or_none,
)
@@ -12,8 +12,7 @@ class EggsBaseIE(InfoExtractor):
def _parse_artist_name(self, webpage):
artist = self._search_regex(
r'
]+class=(["\'])artist_name\1[^>]*>([^<]+)
',
- webpage, 'artist name', fatal=False, default=None, group=2
- )
+ webpage, 'artist name', fatal=False, default=None, group=2)
if artist:
return artist.strip()
@@ -28,19 +27,16 @@ class EggsBaseIE(InfoExtractor):
def _parse_single_song(self, url, webpage, default_artist='Unknown Artist'):
song_id = self._search_regex(
r'/song/(?P[^/?#&]+)',
- url, 'song id', fatal=False, default=None, group='id'
- )
+ url, 'song id', fatal=False, default=None, group='id')
track_title = self._search_regex(
r']+class=(["\'])product_name\1[^>]*>\s*
([^<]+)
',
- webpage, 'track title', fatal=False, default=None, group=2
- )
+ webpage, 'track title', fatal=False, default=None, group=2)
if not track_title:
page_title = self._search_regex(
r'
(?P[^<]+)',
- webpage, 'page title', fatal=False, default=None, group='title'
- )
+ webpage, 'page title', fatal=False, default=None, group='title')
if page_title:
inner_match = re.search(r'「(?P[^」]+)」', page_title)
if inner_match:
@@ -54,15 +50,13 @@ class EggsBaseIE(InfoExtractor):
artist_regex = r']+class=(["\'])artist_name\1[^>]*>\s*]*>([^<]+)'
fallback_artist = self._search_regex(
artist_regex, webpage, 'artist name',
- fatal=False, default=None, group=2
- )
+ fatal=False, default=None, group=2)
if fallback_artist:
artist = fallback_artist.strip()
audio_url = self._search_regex(
r']+class=(["\'])[^"\']*player[^"\']*\1[^>]+data-src=(["\'])(?P
[^"\']+)\2',
- webpage, 'audio url', fatal=True, group='audio_url'
- )
+ webpage, 'audio url', fatal=True, group='audio_url')
audio_url = url_or_none(unescapeHTML(audio_url))
if not audio_url:
raise ExtractorError('Invalid audio URL.', expected=True)
@@ -71,8 +65,7 @@ class EggsBaseIE(InfoExtractor):
self._html_search_meta(['og:image'], webpage, 'thumbnail', default=None)
or self._search_regex(
r']*>\s*
]+src=(["\'])(?P[^"\']+)\1',
- webpage, 'thumbnail', fatal=False, default=None, group='thumb'
- )
+ webpage, 'thumbnail', fatal=False, default=None, group='thumb')
)
return {
@@ -91,30 +84,26 @@ class EggsBaseIE(InfoExtractor):
for block in song_blocks:
audio_url = self._search_regex(
r'data-src=(["\'])(?Phttps?://.*?\.(?:mp3|m4a).*?)\1',
- block, 'audio url', fatal=False, default=None, group='url'
- )
+ block, 'audio url', fatal=False, default=None, group='url')
audio_url = url_or_none(unescapeHTML(audio_url))
if not audio_url:
continue
track_id = self._search_regex(
r'data-srcid=(["\'])(?P[^"\'<>]+)\1',
- block, 'track id', fatal=False, default=None, group='id'
- )
+ block, 'track id', fatal=False, default=None, group='id')
if not track_id:
continue
title = self._search_regex(
r'data-srcname=(["\'])(?P[^"\']+)\1',
- block, 'track title', fatal=False, default=None, group='title'
- )
+ block, 'track title', fatal=False, default=None, group='title')
if not title:
title = 'Unknown Title'
thumbnail = self._search_regex(
r'
]+src=(["\'])(?P[^"\']+)\1',
- block, 'thumbnail', fatal=False, default=None, group='th'
- )
+ block, 'thumbnail', fatal=False, default=None, group='th')
entries.append({
'id': track_id,
@@ -127,6 +116,7 @@ class EggsBaseIE(InfoExtractor):
return entries
+
class EggsIE(EggsBaseIE):
IE_NAME = 'eggs:single'
_VALID_URL = (
@@ -148,13 +138,13 @@ class EggsIE(EggsBaseIE):
song_id = mobj.group('song_id')
webpage = self._download_webpage(url, song_id)
artist_name = self._parse_artist_name(webpage)
- info = self._parse_single_song(url, webpage, artist_name)
- return info
+ return self._parse_single_song(url, webpage, artist_name)
+
class EggsArtistIE(EggsBaseIE):
IE_NAME = 'eggs:artist'
_VALID_URL = (
- r'https?://(?:www\.)?eggs\.mu/artist/(?P[^/]+)'
+ r'https?://(?:www\.)?eggs\.mu/artist/(?P[^/]+)$'
)
_TESTS = [{
'url': 'https://eggs.mu/artist/32_sunny_girl',
@@ -173,5 +163,5 @@ class EggsArtistIE(EggsBaseIE):
return self.playlist_result(
entries,
playlist_id=artist_id,
- playlist_title=artist_name
- )
\ No newline at end of file
+ playlist_title=artist_name,
+ )
|