[masters] Add extractor (#3358)

Closes #3240
Authored by: m4tu4g
pull/3639/head
m4tu4g 2022-05-03 03:06:37 +05:30 zatwierdzone przez GitHub
rodzic cbc6ee10da
commit 468f104ce7
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 40 dodań i 0 usunięć

Wyświetl plik

@ -849,6 +849,7 @@ from .markiza import (
MarkizaPageIE, MarkizaPageIE,
) )
from .massengeschmacktv import MassengeschmackTVIE from .massengeschmacktv import MassengeschmackTVIE
from .masters import MastersIE
from .matchtv import MatchTVIE from .matchtv import MatchTVIE
from .mdr import MDRIE from .mdr import MDRIE
from .medaltv import MedalTVIE from .medaltv import MedalTVIE

Wyświetl plik

@ -0,0 +1,39 @@
from __future__ import unicode_literals
from .common import InfoExtractor
from ..utils import (
traverse_obj,
unified_strdate,
)
class MastersIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?masters\.com/en_US/watch/(?P<date>\d{4}-\d{2}-\d{2})/(?P<id>\d+)'
_TESTS = [{
'url': 'https://www.masters.com/en_US/watch/2022-04-07/16493755593805191/sungjae_im_thursday_interview_2022.html',
'info_dict': {
'id': '16493755593805191',
'ext': 'mp4',
'title': 'Sungjae Im: Thursday Interview 2022',
'upload_date': '20220407',
'thumbnail': r're:^https?://.*\.jpg$',
}
}]
def _real_extract(self, url):
video_id, upload_date = self._match_valid_url(url).group('id', 'date')
content_resp = self._download_json(
f'https://www.masters.com/relatedcontent/rest/v2/masters_v1/en/content/masters_v1_{video_id}_en',
video_id)
formats, subtitles = self._extract_m3u8_formats_and_subtitles(traverse_obj(content_resp, ('media', 'm3u8')), video_id, 'mp4')
self._sort_formats(formats)
thumbnails = [{'id': name, 'url': url} for name, url in traverse_obj(content_resp, ('images', 0), default={}).items()]
return {
'id': video_id,
'title': content_resp.get('title'),
'formats': formats,
'subtitles': subtitles,
'upload_date': unified_strdate(upload_date),
'thumbnails': thumbnails,
}