2 from __future__
import unicode_literals
4 from .common
import InfoExtractor
7 class MuseScoreIE(InfoExtractor
):
8 _VALID_URL
= r
'(?:https?://)(?:www\.)?musescore\.com/(?:user/\d+|[^/]+)(?:/scores)?/(?P<id>[^#&?]+)'
10 'url': 'https://musescore.com/user/73797/scores/142975',
14 'title': 'WA Mozart Marche Turque (Turkish March fingered)',
15 'description': 'md5:7ede08230e4eaabd67a4a98bb54d07be',
16 'thumbnail': r
're:(?:https?://)(?:www\.)?musescore\.com/.*\.png[^$]+',
17 'uploader': 'PapyPiano',
18 'creator': 'Wolfgang Amadeus Mozart',
21 'url': 'https://musescore.com/user/36164500/scores/6837638',
25 'title': 'Sweet Child O\' Mine – Guns N\' Roses sweet child',
26 'description': 'md5:4dca71191c14abc312a0a4192492eace',
27 'thumbnail': r
're:(?:https?://)(?:www\.)?musescore\.com/.*\.png[^$]+',
28 'uploader': 'roxbelviolin',
29 'creator': 'Guns N´Roses Arr. Roxbel Violin',
32 'url': 'https://musescore.com/classicman/fur-elise',
36 'title': 'Für Elise – Beethoven',
37 'description': 'md5:49515a3556d5ecaf9fa4b2514064ac34',
38 'thumbnail': r
're:(?:https?://)(?:www\.)?musescore\.com/.*\.png[^$]+',
39 'uploader': 'ClassicMan',
40 'creator': 'Ludwig van Beethoven (1770–1827)',
43 'url': 'https://musescore.com/minh_cuteee/scores/6555384',
44 'only_matching': True,
47 def _real_extract(self
, url
):
48 webpage
= self
._download
_webpage
(url
, None)
49 url
= self
._og
_search
_url
(webpage
) or url
50 id = self
._match
_id
(url
)
51 mp3_url
= self
._download
_json
(f
'https://musescore.com/api/jmuse?id={id}&index=0&type=mp3&v2=1', id,
52 headers
={'authorization': '63794e5461e4cfa046edfbdddfccc1ac16daffd2'}
)['info']['url']
62 'title': self
._og
_search
_title
(webpage
),
63 'description': self
._og
_search
_description
(webpage
),
64 'thumbnail': self
._og
_search
_thumbnail
(webpage
),
65 'uploader': self
._html
_search
_meta
('musescore:author', webpage
, 'uploader'),
66 'creator': self
._html
_search
_meta
('musescore:composer', webpage
, 'composer'),