From 92ae267c88520d95cc56198eb8f6f389778c32a0 Mon Sep 17 00:00:00 2001 From: ealgase Date: Tue, 20 Nov 2018 22:16:41 -0500 Subject: [PATCH] [narando] seperate [narando:player] extractor, improve code readability --- youtube_dl/extractor/extractors.py | 2 +- youtube_dl/extractor/narando.py | 48 ++++++++++++++++++++++-------- 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index ee54ea1b3..b7cca0c25 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -1482,4 +1482,4 @@ from .zingmp3 import ZingMp3IE from .zype import ZypeIE -from .narando import NarandoIE +from .narando import NarandoIE, NarandoPlayerIE diff --git a/youtube_dl/extractor/narando.py b/youtube_dl/extractor/narando.py index 78282e1b8..6673b8007 100644 --- a/youtube_dl/extractor/narando.py +++ b/youtube_dl/extractor/narando.py @@ -5,6 +5,7 @@ from .common import InfoExtractor class NarandoIE(InfoExtractor): + IE_NAME = "narando" _VALID_URL = r'https?://(?:www\.)?narando\.com/articles/(?P([a-zA-Z]|-)+)' _TEST = { 'url': 'https://narando.com/articles/an-ihrem-selbstlob-erkennt-man-sie', @@ -15,31 +16,52 @@ class NarandoIE(InfoExtractor): 'title': 'An ihrem Selbstlob erkennt man sie', 'url': 'https://static.narando.com/sounds/10492/original.mp3', 'description': u'omnisophie.com: Kaum eine Woche vergeht, dass nicht jemand mir gegenüber seine Mathematik-Unkenntnisse tränenlos beweint. „In Mathe war ich niemals gut.“ Diese Leute sagen mir das wohl, weil ich Mathematiker bin, und da gehört so ein fröhliches „Understatement“ zum Small Talk. So wie wenn ich selbst bedauernd-entschuldigend auf meine grauen Haare zeige. Ich kann eben auch nicht alles bieten... „Mathe kann ich nicht“, „Ich habe kein Internet“ oder „Ich will auch bewusst nicht alles können“ wird fast wie Eigenlob vorgetragen.', - # TODO more properties, either as: - # * A value - # * MD5 checksum; start the string with md5: - # * A regular expression; start the string with re: - # * Any Python type (for example int or float) } } def _real_extract(self, url): video_id = self._match_id(url) -# webpage = self._download_webpage(url,"?") -# print(url) -# print('https://narando.com/articles/'+video_id) + webpage = self._download_webpage('https://narando.com/articles/' + video_id, video_id) - # TODO more code goes here, for example ... + title = self._html_search_regex(r'

(.+?)

', webpage, 'title') -# print(title) + player_id = self._html_search_regex(r'[\n\r].*https:\/\/narando.com\/r\/\s*([^"]*)', webpage, 'player_id') - player_page = self._download_webpage('https://narando.com/widget?r=' + player_id, player_id) - download_url = self._html_search_regex(r'.
\s*([^?]*)', player_page, 'download_url') + mobj = NarandoPlayerIE() + download_url = mobj._real_extract("https://narando.com/widget?r=" + player_id)['url'] description = self._html_search_regex(r'', webpage, 'description') return { 'id': video_id, 'title': title, 'url': download_url, 'description': description, - # TODO more properties (see youtube_dl/extractor/common.py) + } + + +class NarandoPlayerIE(InfoExtractor): + IE_NAME = "narando:player" + _VALID_URL = r'https://narando.com/widget\?r=(?P\w+)' + _TEST = { + 'url': 'https://narando.com/widget?r=b2t4t789kxgy9g7ms4rwjvvw', + 'md5': 'd20f671f0395bab8f8285d1f6e8f965e', + 'info_dict': { + 'id': 'b2t4t789kxgy9g7ms4rwjvvw', + 'ext': 'mp3', + 'title': 'An ihrem Selbstlob erkennt man sie', + 'url': 'https://static.narando.com/sounds/10492/original.mp3', + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + print(video_id) + webpage = self._download_webpage('https://narando.com/widget?r=' + video_id, video_id) + print(webpage) + title = self._html_search_regex(r'narando \| (.+?)', webpage, 'title') + + download_url = self._html_search_regex(r'.
\s*([^?]*)', webpage, 'download_url') + return { + 'id': video_id, + 'title': title, + 'url': download_url, }