From 9a6b3d9dac63d7fea68949658e16db2786125499 Mon Sep 17 00:00:00 2001 From: Martin Vician Date: Wed, 16 Mar 2022 17:44:10 +0000 Subject: [PATCH 1/6] Added mujrozhlas.cz extractor --- youtube_dl/extractor/extractors.py | 1 + youtube_dl/extractor/mujrozhlas.py | 53 ++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 youtube_dl/extractor/mujrozhlas.py diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 535080d0a..daad99892 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -718,6 +718,7 @@ from .mtv import ( MTVJapanIE, ) from .muenchentv import MuenchenTVIE +from .mujrozhlas import MujRozhlasIE from .mwave import MwaveIE, MwaveMeetGreetIE from .mychannels import MyChannelsIE from .myspace import MySpaceIE, MySpaceAlbumIE diff --git a/youtube_dl/extractor/mujrozhlas.py b/youtube_dl/extractor/mujrozhlas.py new file mode 100644 index 000000000..ba2f1eea4 --- /dev/null +++ b/youtube_dl/extractor/mujrozhlas.py @@ -0,0 +1,53 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import ( + int_or_none, + remove_start, + clean_html, +) + + +class MujRozhlasIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?mujrozhlas\.cz/(?P[a-zA-Z0-9\-\/]+)' + _TESTS = [{ + 'url': 'https://www.mujrozhlas.cz/meteor/meteor-o-nejvetsim-matematikovi-nekonecnem-vesmiru-skakajicim-pavoukovi-hrani-surikat', + 'info_dict': { + 'id': 'meteor/meteor-o-nejvetsim-matematikovi-nekonecnem-vesmiru-skakajicim-pavoukovi-hrani-surikat', + 'ext': 'mp3', + 'title': 'Meteor o největším matematikovi, nekonečném vesmíru, skákajícím pavoukovi a hraní surikat', + 'description': 'Poslechněte si:01:00 Vymírající pták roku07:57 Největší experimentátor všech dob14:06 Největší matematik 20. století27:40 Jak si představit nekonečný vesmír?35:12 Pavouk, který skáče bunjee jumping41:34 Jak si hrají surikaty?Hovoří ornitolog Zdeněk Vermouzek, matematik Václav Chvátal nebo astronom Norbert Werner. Rubriku Stalo se tento den připravil ing. František Houdek.\xa0Z knihy\xa0Pozoruhodné objevy ze světa zvířat čte Zuzana Slavíková.\nPetr Sobotka' + } + },{ + 'url': 'https://www.mujrozhlas.cz/podcast-vinohradska-12/its-humanitarian-disaster-mariupol-we-want-help-says-msfs-alex-wade', + 'info_dict': { + 'id': 'podcast-vinohradska-12/its-humanitarian-disaster-mariupol-we-want-help-says-msfs-alex-wade', + 'ext': 'mp3', + 'title': 'Meteor o největším matematikovi, nekonečném vesmíru, skákajícím pavoukovi a hraní surikat', + 'description': 'Poslechněte si:01:00 Vymírající pták roku07:57 Největší experimentátor všech dob14:06 Největší matematik 20. století27:40 Jak si představit nekonečný vesmír?35:12 Pavouk, který skáče bunjee jumping41:34 Jak si hrají surikaty?Hovoří ornitolog Zdeněk Vermouzek, matematik Václav Chvátal nebo astronom Norbert Werner. Rubriku Stalo se tento den připravil ing. František Houdek.\xa0Z knihy\xa0Pozoruhodné objevy ze světa zvířat čte Zuzana Slavíková.\nPetr Sobotka' + } + }] + + def _real_extract(self, url): + audio_id = self._match_id(url) + + webpage = self._download_webpage(url, audio_id) + + content_id = self._html_search_regex(r'\"contentId\":\"(.+?)\"',webpage,'content_id',default=None) + content_url = 'https://api.mujrozhlas.cz/episodes/' + content_id + + content = self._download_json(content_url, content_id) + audio_url = content['data']['attributes']['audioLinks'][0]['url'] + duration = content['data']['attributes']['audioLinks'][0]['duration'] + title = content['data']['attributes']['title'] + description = clean_html(content['data']['attributes']['description']) + + return { + 'id': audio_id, + 'url': audio_url, + 'title': title, + 'description': description, + 'duration': int(duration), + 'vcodec': 'none', + } From fb13bb6598921e5bfa31d933960d70afbd2b4014 Mon Sep 17 00:00:00 2001 From: Martin Vician Date: Wed, 16 Mar 2022 17:51:50 +0000 Subject: [PATCH 2/6] Updated to flake8 --- youtube_dl/extractor/mujrozhlas.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/youtube_dl/extractor/mujrozhlas.py b/youtube_dl/extractor/mujrozhlas.py index ba2f1eea4..2e494566b 100644 --- a/youtube_dl/extractor/mujrozhlas.py +++ b/youtube_dl/extractor/mujrozhlas.py @@ -4,7 +4,6 @@ from __future__ import unicode_literals from .common import InfoExtractor from ..utils import ( int_or_none, - remove_start, clean_html, ) @@ -19,7 +18,7 @@ class MujRozhlasIE(InfoExtractor): 'title': 'Meteor o největším matematikovi, nekonečném vesmíru, skákajícím pavoukovi a hraní surikat', 'description': 'Poslechněte si:01:00 Vymírající pták roku07:57 Největší experimentátor všech dob14:06 Největší matematik 20. století27:40 Jak si představit nekonečný vesmír?35:12 Pavouk, který skáče bunjee jumping41:34 Jak si hrají surikaty?Hovoří ornitolog Zdeněk Vermouzek, matematik Václav Chvátal nebo astronom Norbert Werner. Rubriku Stalo se tento den připravil ing. František Houdek.\xa0Z knihy\xa0Pozoruhodné objevy ze světa zvířat čte Zuzana Slavíková.\nPetr Sobotka' } - },{ + }, { 'url': 'https://www.mujrozhlas.cz/podcast-vinohradska-12/its-humanitarian-disaster-mariupol-we-want-help-says-msfs-alex-wade', 'info_dict': { 'id': 'podcast-vinohradska-12/its-humanitarian-disaster-mariupol-we-want-help-says-msfs-alex-wade', @@ -34,7 +33,7 @@ class MujRozhlasIE(InfoExtractor): webpage = self._download_webpage(url, audio_id) - content_id = self._html_search_regex(r'\"contentId\":\"(.+?)\"',webpage,'content_id',default=None) + content_id = self._html_search_regex(r'\"contentId\":\"(.+?)\"', webpage, 'content_id', default=None) content_url = 'https://api.mujrozhlas.cz/episodes/' + content_id content = self._download_json(content_url, content_id) @@ -48,6 +47,6 @@ class MujRozhlasIE(InfoExtractor): 'url': audio_url, 'title': title, 'description': description, - 'duration': int(duration), + 'duration': int_or_none(duration), 'vcodec': 'none', } From d4ac3ac47f25248fa463783dccc30f12c529cd04 Mon Sep 17 00:00:00 2001 From: Martin Vician Date: Fri, 25 Mar 2022 16:18:21 +0000 Subject: [PATCH 3/6] No default for content_id, better content parsing --- youtube_dl/extractor/mujrozhlas.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/youtube_dl/extractor/mujrozhlas.py b/youtube_dl/extractor/mujrozhlas.py index 2e494566b..a28559d4a 100644 --- a/youtube_dl/extractor/mujrozhlas.py +++ b/youtube_dl/extractor/mujrozhlas.py @@ -9,7 +9,7 @@ from ..utils import ( class MujRozhlasIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?mujrozhlas\.cz/(?P[a-zA-Z0-9\-\/]+)' + _VALID_URL = r'https?://(?:www\.)?mujrozhlas\.cz/(?P[a-zA-Z0-9/-]+)' _TESTS = [{ 'url': 'https://www.mujrozhlas.cz/meteor/meteor-o-nejvetsim-matematikovi-nekonecnem-vesmiru-skakajicim-pavoukovi-hrani-surikat', 'info_dict': { @@ -33,14 +33,16 @@ class MujRozhlasIE(InfoExtractor): webpage = self._download_webpage(url, audio_id) - content_id = self._html_search_regex(r'\"contentId\":\"(.+?)\"', webpage, 'content_id', default=None) + content_id = self._html_search_regex(r'\"contentId\":\"(.+?)\"', webpage, 'content_id') content_url = 'https://api.mujrozhlas.cz/episodes/' + content_id content = self._download_json(content_url, content_id) - audio_url = content['data']['attributes']['audioLinks'][0]['url'] - duration = content['data']['attributes']['audioLinks'][0]['duration'] - title = content['data']['attributes']['title'] - description = clean_html(content['data']['attributes']['description']) + attrs = content['data']['attributes'] + title = attrs['title'] + audio_info = content['data']['attributes']['audioLinks'][0] + duration = audio_info.get('duration') + description = clean_html(attrs.get('description')) + audio_url = audio_info.get('url') return { 'id': audio_id, From f935e0585bb190015dd8eec05e5ee1d6a0580fca Mon Sep 17 00:00:00 2001 From: Martin Vician Date: Sun, 8 May 2022 19:11:20 +0100 Subject: [PATCH 4/6] Added thumbnail and timestamp --- youtube_dl/extractor/mujrozhlas.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/youtube_dl/extractor/mujrozhlas.py b/youtube_dl/extractor/mujrozhlas.py index a28559d4a..53cc5a631 100644 --- a/youtube_dl/extractor/mujrozhlas.py +++ b/youtube_dl/extractor/mujrozhlas.py @@ -5,6 +5,7 @@ from .common import InfoExtractor from ..utils import ( int_or_none, clean_html, + parse_iso8601 ) @@ -16,15 +17,19 @@ class MujRozhlasIE(InfoExtractor): 'id': 'meteor/meteor-o-nejvetsim-matematikovi-nekonecnem-vesmiru-skakajicim-pavoukovi-hrani-surikat', 'ext': 'mp3', 'title': 'Meteor o největším matematikovi, nekonečném vesmíru, skákajícím pavoukovi a hraní surikat', - 'description': 'Poslechněte si:01:00 Vymírající pták roku07:57 Největší experimentátor všech dob14:06 Největší matematik 20. století27:40 Jak si představit nekonečný vesmír?35:12 Pavouk, který skáče bunjee jumping41:34 Jak si hrají surikaty?Hovoří ornitolog Zdeněk Vermouzek, matematik Václav Chvátal nebo astronom Norbert Werner. Rubriku Stalo se tento den připravil ing. František Houdek.\xa0Z knihy\xa0Pozoruhodné objevy ze světa zvířat čte Zuzana Slavíková.\nPetr Sobotka' + 'description': 'Poslechněte si:01:00 Vymírající pták roku07:57 Největší experimentátor všech dob14:06 Největší matematik 20. století27:40 Jak si představit nekonečný vesmír?35:12 Pavouk, který skáče bunjee jumping41:34 Jak si hrají surikaty?Hovoří ornitolog Zdeněk Vermouzek, matematik Václav Chvátal nebo astronom Norbert Werner. Rubriku Stalo se tento den připravil ing. František Houdek.\xa0Z knihy\xa0Pozoruhodné objevy ze světa zvířat čte Zuzana Slavíková.\nPetr Sobotka', + 'timestamp': 1647272701, + 'upload_date': '20220314', } }, { 'url': 'https://www.mujrozhlas.cz/podcast-vinohradska-12/its-humanitarian-disaster-mariupol-we-want-help-says-msfs-alex-wade', 'info_dict': { 'id': 'podcast-vinohradska-12/its-humanitarian-disaster-mariupol-we-want-help-says-msfs-alex-wade', 'ext': 'mp3', - 'title': 'Meteor o největším matematikovi, nekonečném vesmíru, skákajícím pavoukovi a hraní surikat', - 'description': 'Poslechněte si:01:00 Vymírající pták roku07:57 Největší experimentátor všech dob14:06 Největší matematik 20. století27:40 Jak si představit nekonečný vesmír?35:12 Pavouk, který skáče bunjee jumping41:34 Jak si hrají surikaty?Hovoří ornitolog Zdeněk Vermouzek, matematik Václav Chvátal nebo astronom Norbert Werner. Rubriku Stalo se tento den připravil ing. František Houdek.\xa0Z knihy\xa0Pozoruhodné objevy ze světa zvířat čte Zuzana Slavíková.\nPetr Sobotka' + 'title': 'It\'s a humanitarian disaster in Mariupol. We want to help, says MSF‘s Alex Wade', + 'description': 'It is a humanitarian catastrophe. People in the southeast of Ukraine are dying in the streets and their neighbors have to bury them in the gardens. Those who are still alive, dont have food, water or medicine. I spoke to Alex Wade, an emergency coordinator for Doctors without Borders, who is in Dnipro. He is doing his best to help Ukrainians who are fleeing the war or staying to fight back.\nMatěj Skalický\n\nEdited by: Kateřina Pospíšilová\nSound design: Tomáš Černý\nResearched by:\xa0Alžběta Jurčová\nMusic:\xa0Martin Hůla', + 'timestamp': 1647442501, + 'upload_date': '20220316', } }] @@ -43,6 +48,8 @@ class MujRozhlasIE(InfoExtractor): duration = audio_info.get('duration') description = clean_html(attrs.get('description')) audio_url = audio_info.get('url') + thumbnail = self._og_search_thumbnail(webpage) + timestamp = parse_iso8601(self._og_search_property('updated_time', webpage, fatal=False)) return { 'id': audio_id, @@ -51,4 +58,6 @@ class MujRozhlasIE(InfoExtractor): 'description': description, 'duration': int_or_none(duration), 'vcodec': 'none', + 'thumbnail': thumbnail, + 'timestamp': timestamp, } From 5fd5b4737f881db489e9796f63056dae941e631b Mon Sep 17 00:00:00 2001 From: Martin Vician Date: Sat, 6 Aug 2022 21:31:56 +0100 Subject: [PATCH 5/6] Update youtube_dl/extractor/mujrozhlas.py Co-authored-by: dirkf --- youtube_dl/extractor/mujrozhlas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/mujrozhlas.py b/youtube_dl/extractor/mujrozhlas.py index 53cc5a631..508e2370e 100644 --- a/youtube_dl/extractor/mujrozhlas.py +++ b/youtube_dl/extractor/mujrozhlas.py @@ -38,7 +38,7 @@ class MujRozhlasIE(InfoExtractor): webpage = self._download_webpage(url, audio_id) - content_id = self._html_search_regex(r'\"contentId\":\"(.+?)\"', webpage, 'content_id') + content_id = self._html_search_regex(r'"contentId":"(.+?)"', webpage, 'content_id') content_url = 'https://api.mujrozhlas.cz/episodes/' + content_id content = self._download_json(content_url, content_id) From e4759fdffe7e0cfa204fb83324552ab31503d597 Mon Sep 17 00:00:00 2001 From: Martin Vician Date: Sat, 6 Aug 2022 21:32:01 +0100 Subject: [PATCH 6/6] Update youtube_dl/extractor/mujrozhlas.py Co-authored-by: dirkf --- youtube_dl/extractor/mujrozhlas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/mujrozhlas.py b/youtube_dl/extractor/mujrozhlas.py index 508e2370e..e810b3e70 100644 --- a/youtube_dl/extractor/mujrozhlas.py +++ b/youtube_dl/extractor/mujrozhlas.py @@ -44,10 +44,10 @@ class MujRozhlasIE(InfoExtractor): content = self._download_json(content_url, content_id) attrs = content['data']['attributes'] title = attrs['title'] + audio_url = content['data']['attributes']['audioLinks'][0]['url'] audio_info = content['data']['attributes']['audioLinks'][0] duration = audio_info.get('duration') description = clean_html(attrs.get('description')) - audio_url = audio_info.get('url') thumbnail = self._og_search_thumbnail(webpage) timestamp = parse_iso8601(self._og_search_property('updated_time', webpage, fatal=False))