aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAshish Gupta <39122144+Ashish0804@users.noreply.github.com>2021-09-11 18:51:11 +0530
committerGitHub <noreply@github.com>2021-09-11 18:51:11 +0530
commitffecd3034b00671dc9438ff70474dcc57220e558 (patch)
treec0f0360e6abb1bd77b894afba5520bef026961ca
parent1c5ce74c045530eb3d085e96c1d5f2b3ce88a57c (diff)
downloadhypervideo-pre-ffecd3034b00671dc9438ff70474dcc57220e558.tar.lz
hypervideo-pre-ffecd3034b00671dc9438ff70474dcc57220e558.tar.xz
hypervideo-pre-ffecd3034b00671dc9438ff70474dcc57220e558.zip
[MuseScore] Add Extractor (#918)
Closes #911 Authored by: Ashish0804
-rw-r--r--.gitignore2
-rw-r--r--yt_dlp/extractor/extractors.py1
-rw-r--r--yt_dlp/extractor/musescore.py67
3 files changed, 69 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 619d6ba98..443e637ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,7 @@
*.conf
*.spec
cookies
-cookies.txt
+*cookies.txt
# Downloaded
*.srt
diff --git a/yt_dlp/extractor/extractors.py b/yt_dlp/extractor/extractors.py
index ee368b7b1..c56bf5b2b 100644
--- a/yt_dlp/extractor/extractors.py
+++ b/yt_dlp/extractor/extractors.py
@@ -802,6 +802,7 @@ from .mtv import (
MTVItaliaProgrammaIE,
)
from .muenchentv import MuenchenTVIE
+from .musescore import MuseScoreIE
from .mwave import MwaveIE, MwaveMeetGreetIE
from .mxplayer import (
MxplayerIE,
diff --git a/yt_dlp/extractor/musescore.py b/yt_dlp/extractor/musescore.py
new file mode 100644
index 000000000..dcd26388a
--- /dev/null
+++ b/yt_dlp/extractor/musescore.py
@@ -0,0 +1,67 @@
+# coding: utf-8
+from __future__ import unicode_literals
+
+from .common import InfoExtractor
+
+
+class MuseScoreIE(InfoExtractor):
+ _VALID_URL = r'(?:https?://)(?:www\.)?musescore\.com/(?:user/\d+|[^/]+)(?:/scores)?/(?P<id>[^#&?]+)'
+ _TESTS = [{
+ 'url': 'https://musescore.com/user/73797/scores/142975',
+ 'info_dict': {
+ 'id': '142975',
+ 'ext': 'mp3',
+ 'title': 'WA Mozart Marche Turque (Turkish March fingered)',
+ 'description': 'md5:7ede08230e4eaabd67a4a98bb54d07be',
+ 'thumbnail': r're:(?:https?://)(?:www\.)?musescore\.com/.*\.png[^$]+',
+ 'uploader': 'PapyPiano',
+ 'creator': 'Wolfgang Amadeus Mozart',
+ }
+ }, {
+ 'url': 'https://musescore.com/user/36164500/scores/6837638',
+ 'info_dict': {
+ 'id': '6837638',
+ 'ext': 'mp3',
+ 'title': 'Sweet Child O\' Mine – Guns N\' Roses sweet child',
+ 'description': 'md5:4dca71191c14abc312a0a4192492eace',
+ 'thumbnail': r're:(?:https?://)(?:www\.)?musescore\.com/.*\.png[^$]+',
+ 'uploader': 'roxbelviolin',
+ 'creator': 'Guns N´Roses Arr. Roxbel Violin',
+ }
+ }, {
+ 'url': 'https://musescore.com/classicman/fur-elise',
+ 'info_dict': {
+ 'id': '33816',
+ 'ext': 'mp3',
+ 'title': 'Für Elise – Beethoven',
+ 'description': 'md5:49515a3556d5ecaf9fa4b2514064ac34',
+ 'thumbnail': r're:(?:https?://)(?:www\.)?musescore\.com/.*\.png[^$]+',
+ 'uploader': 'ClassicMan',
+ 'creator': 'Ludwig van Beethoven (1770–1827)',
+ }
+ }, {
+ 'url': 'https://musescore.com/minh_cuteee/scores/6555384',
+ 'only_matching': True,
+ }]
+
+ def _real_extract(self, url):
+ webpage = self._download_webpage(url, None)
+ url = self._og_search_url(webpage) or url
+ id = self._match_id(url)
+ mp3_url = self._download_json(f'https://musescore.com/api/jmuse?id={id}&index=0&type=mp3&v2=1', id,
+ headers={'authorization': '63794e5461e4cfa046edfbdddfccc1ac16daffd2'})['info']['url']
+ formats = [{
+ 'url': mp3_url,
+ 'ext': 'mp3',
+ 'vcodec': 'none',
+ }]
+
+ return {
+ 'id': id,
+ 'formats': formats,
+ 'title': self._og_search_title(webpage),
+ 'description': self._og_search_description(webpage),
+ 'thumbnail': self._og_search_thumbnail(webpage),
+ 'uploader': self._html_search_meta('musescore:author', webpage, 'uploader'),
+ 'creator': self._html_search_meta('musescore:composer', webpage, 'composer'),
+ }