]>
jfr.im git - yt-dlp.git/blob - yt_dlp/extractor/hypergryph.py
1 from .common
import InfoExtractor
2 from ..utils
import js_to_json
, traverse_obj
5 class MonsterSirenHypergryphMusicIE(InfoExtractor
):
6 _VALID_URL
= r
'https?://monster-siren\.hypergryph\.com/music/(?P<id>\d+)'
8 'url': 'https://monster-siren.hypergryph.com/music/514562',
12 'artist': ['塞壬唱片-MSR'],
13 'album': 'Flame Shadow',
14 'title': 'Flame Shadow',
18 def _real_extract(self
, url
):
19 audio_id
= self
._match
_id
(url
)
20 webpage
= self
._download
_webpage
(url
, audio_id
)
21 json_data
= self
._search
_json
(
22 r
'window\.g_initialProps\s*=', webpage
, 'data', audio_id
, transform_source
=js_to_json
)
26 'title': traverse_obj(json_data
, ('player', 'songDetail', 'name')),
27 'url': traverse_obj(json_data
, ('player', 'songDetail', 'sourceUrl')),
30 'artist': traverse_obj(json_data
, ('player', 'songDetail', 'artists')),
31 'album': traverse_obj(json_data
, ('musicPlay', 'albumDetail', 'name'))