aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAurora <nyaurora@disroot.org>2021-11-24 10:47:53 +0000
committerGitHub <noreply@github.com>2021-11-24 16:17:53 +0530
commit17b454066224453b0adc795c5a990b35b97c9ffb (patch)
treee17591e303fac864bb89242a92fea60d70a55f4e
parentda27aeea5c4eb8e381b8cb34d3ead8c6487d1e67 (diff)
downloadhypervideo-pre-17b454066224453b0adc795c5a990b35b97c9ffb.tar.lz
hypervideo-pre-17b454066224453b0adc795c5a990b35b97c9ffb.tar.xz
hypervideo-pre-17b454066224453b0adc795c5a990b35b97c9ffb.zip
[radiozet] Add extractor (#1593)
Authored by: 0xA7404A (Aurora)
-rw-r--r--yt_dlp/extractor/extractors.py1
-rw-r--r--yt_dlp/extractor/radiozet.py51
2 files changed, 52 insertions, 0 deletions
diff --git a/yt_dlp/extractor/extractors.py b/yt_dlp/extractor/extractors.py
index a0f4908f0..4dda3705a 100644
--- a/yt_dlp/extractor/extractors.py
+++ b/yt_dlp/extractor/extractors.py
@@ -1168,6 +1168,7 @@ from .radiode import RadioDeIE
from .radiojavan import RadioJavanIE
from .radiobremen import RadioBremenIE
from .radiofrance import RadioFranceIE
+from .radiozet import RadioZetPodcastIE
from .radiokapital import (
RadioKapitalIE,
RadioKapitalShowIE,
diff --git a/yt_dlp/extractor/radiozet.py b/yt_dlp/extractor/radiozet.py
new file mode 100644
index 000000000..2e1ff36c2
--- /dev/null
+++ b/yt_dlp/extractor/radiozet.py
@@ -0,0 +1,51 @@
+# coding: utf-8
+from .common import InfoExtractor
+from ..utils import (
+ traverse_obj,
+ strip_or_none,
+)
+
+
+class RadioZetPodcastIE(InfoExtractor):
+ _VALID_URL = r'https?://player\.radiozet\.pl\/Podcasty/.*?/(?P<id>.+)'
+ _TEST = {
+ 'url': 'https://player.radiozet.pl/Podcasty/Nie-Ma-Za-Co/O-przedmiotach-szkolnych-ktore-przydaja-sie-w-zyciu',
+ 'md5': 'e03665c316b4fbc5f6a8f232948bbba3',
+ 'info_dict': {
+ 'id': '42154',
+ 'display_id': 'O-przedmiotach-szkolnych-ktore-przydaja-sie-w-zyciu',
+ 'title': 'O przedmiotach szkolnych, które przydają się w życiu',
+ 'description': 'md5:fa72bed49da334b09e5b2f79851f185c',
+ 'release_timestamp': 1592985480,
+ 'ext': 'mp3',
+ 'thumbnail': r're:^https?://.*\.png$',
+ 'duration': 83,
+ 'series': 'Nie Ma Za Co',
+ 'creator': 'Katarzyna Pakosińska',
+ }
+ }
+
+ def _call_api(self, podcast_id, display_id):
+ return self._download_json(
+ f'https://player.radiozet.pl/api/podcasts/getPodcast/(node)/{podcast_id}/(station)/radiozet',
+ display_id)
+
+ def _real_extract(self, url):
+ display_id = self._match_id(url)
+ webpage = self._download_webpage(url, display_id)
+ podcast_id = self._html_search_regex(r'<div.*?\sid="player".*?\sdata-id=[\'"]([^\'"]+)[\'"]',
+ webpage, 'podcast id')
+ data = self._call_api(podcast_id, display_id)['data'][0]
+
+ return {
+ 'id': podcast_id,
+ 'display_id': display_id,
+ 'title': strip_or_none(data.get('title')),
+ 'description': strip_or_none(traverse_obj(data, ('program', 'desc'))),
+ 'release_timestamp': data.get('published_date'),
+ 'url': traverse_obj(data, ('player', 'stream')),
+ 'thumbnail': traverse_obj(data, ('program', 'image', 'original')),
+ 'duration': traverse_obj(data, ('player', 'duration')),
+ 'series': strip_or_none(traverse_obj(data, ('program', 'title'))),
+ 'creator': strip_or_none(traverse_obj(data, ('presenter', 0, 'title'))),
+ }