mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2026-06-22 18:54:55 +00:00
Compare commits
No commits in common. "4721a799bcce1c452e3bd426dcac4353e41dfa52" and "f3ab125a51ec701ff3bc1cf4ff6a1329c5129c0c" have entirely different histories.
4721a799bc
...
f3ab125a51
@ -7,18 +7,13 @@ from ..utils import (
|
|||||||
parse_qs,
|
parse_qs,
|
||||||
unified_strdate,
|
unified_strdate,
|
||||||
)
|
)
|
||||||
from ..utils.traversal import (
|
from ..utils.traversal import find_element, traverse_obj
|
||||||
find_element,
|
|
||||||
require,
|
|
||||||
traverse_obj,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class SRMediathekIE(ARDMediathekBaseIE):
|
class SRMediathekIE(ARDMediathekBaseIE):
|
||||||
IE_NAME = 'sr:mediathek'
|
IE_NAME = 'sr:mediathek'
|
||||||
IE_DESC = 'Saarländischer Rundfunk'
|
IE_DESC = 'Saarländischer Rundfunk'
|
||||||
|
|
||||||
_CLS_COMMON = 'teaser__image__caption__text teaser__image__caption__text--'
|
|
||||||
_VALID_URL = r'https?://(?:www\.)?sr-mediathek\.de/index\.php\?.*?&id=(?P<id>\d+)'
|
_VALID_URL = r'https?://(?:www\.)?sr-mediathek\.de/index\.php\?.*?&id=(?P<id>\d+)'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'https://www.sr-mediathek.de/index.php?seite=7&id=141317',
|
'url': 'https://www.sr-mediathek.de/index.php?seite=7&id=141317',
|
||||||
@ -75,26 +70,29 @@ class SRMediathekIE(ARDMediathekBaseIE):
|
|||||||
player_url = traverse_obj(webpage, (
|
player_url = traverse_obj(webpage, (
|
||||||
{find_element(tag='div', id=f'player{video_id}', html=True)},
|
{find_element(tag='div', id=f'player{video_id}', html=True)},
|
||||||
{extract_attributes}, 'data-mediacollection-ardplayer',
|
{extract_attributes}, 'data-mediacollection-ardplayer',
|
||||||
{self._proto_relative_url}, {require('player URL')}))
|
{lambda x: self._proto_relative_url(x)},
|
||||||
|
))
|
||||||
article = traverse_obj(webpage, (
|
article = traverse_obj(webpage, (
|
||||||
{find_element(cls='article__content')},
|
{find_element(cls='article__content')},
|
||||||
{find_element(tag='p')}, {clean_html}))
|
{find_element(tag='p')}, {clean_html},
|
||||||
|
))
|
||||||
|
cls_common = 'teaser__image__caption__text teaser__image__caption__text--'
|
||||||
|
|
||||||
return {
|
return {
|
||||||
**self._extract_media_info(player_url, webpage, video_id),
|
**self._extract_media_info(player_url, webpage, video_id),
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'title': traverse_obj(webpage, (
|
'title': traverse_obj(webpage, (
|
||||||
{find_element(cls='ardplayer-title')}, {clean_html})),
|
{find_element(cls='ardplayer-title')}, {str.strip})),
|
||||||
'channel': traverse_obj(webpage, (
|
'channel': traverse_obj(webpage, (
|
||||||
{find_element(cls=f'{self._CLS_COMMON}subheadline')},
|
{find_element(cls=f'{cls_common}subheadline')},
|
||||||
{lambda x: x.split('|')[0]}, {clean_html})),
|
{lambda x: x.split('|')[0]}, {str.strip})),
|
||||||
'description': description,
|
'description': description,
|
||||||
'duration': parse_duration(self._search_regex(
|
'duration': parse_duration(self._search_regex(
|
||||||
r'(\d{2}:\d{2}:\d{2})', article, 'duration')),
|
r'(\d{2}:\d{2}:\d{2})', article, 'duration')),
|
||||||
'release_date': unified_strdate(self._search_regex(
|
'release_date': unified_strdate(self._search_regex(
|
||||||
r'(\d{2}\.\d{2}\.\d{4})', article, 'release_date')),
|
r'(\d{2}\.\d{2}\.\d{4})', article, 'release_date')),
|
||||||
'series': traverse_obj(webpage, (
|
'series': traverse_obj(webpage, (
|
||||||
{find_element(cls=f'{self._CLS_COMMON}headline')}, {clean_html})),
|
{find_element(cls=f'{cls_common}headline')}, {str.strip})),
|
||||||
'series_id': traverse_obj(webpage, (
|
'series_id': traverse_obj(webpage, (
|
||||||
{find_element(cls='teaser__link', html=True)},
|
{find_element(cls='teaser__link', html=True)},
|
||||||
{extract_attributes}, 'href', {parse_qs}, 'sen', ..., {str}, any)),
|
{extract_attributes}, 'href', {parse_qs}, 'sen', ..., {str}, any)),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user