summaryrefslogtreecommitdiffstats
path: root/yt_dlp/extractor/matchtv.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 09:06:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 09:06:10 +0000
commit137f07c27a88b07df57df5b2cdebebe3c7722bac (patch)
tree4ebdcbea6b540f69c40ba0be6ac766008030d149 /yt_dlp/extractor/matchtv.py
parentAdding debian version 2024.05.27-1. (diff)
downloadyt-dlp-137f07c27a88b07df57df5b2cdebebe3c7722bac.tar.xz
yt-dlp-137f07c27a88b07df57df5b2cdebebe3c7722bac.zip
Merging upstream version 2024.07.01.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'yt_dlp/extractor/matchtv.py')
-rw-r--r--yt_dlp/extractor/matchtv.py40
1 files changed, 12 insertions, 28 deletions
diff --git a/yt_dlp/extractor/matchtv.py b/yt_dlp/extractor/matchtv.py
index a67fa9f..93799fe 100644
--- a/yt_dlp/extractor/matchtv.py
+++ b/yt_dlp/extractor/matchtv.py
@@ -1,51 +1,35 @@
-import random
-
from .common import InfoExtractor
-from ..utils import xpath_text
class MatchTVIE(InfoExtractor):
- _VALID_URL = r'https?://matchtv\.ru(?:/on-air|/?#live-player)'
+ _VALID_URL = [
+ r'https?://matchtv\.ru/on-air/?(?:$|[?#])',
+ r'https?://video\.matchtv\.ru/iframe/channel/106/?(?:$|[?#])',
+ ]
_TESTS = [{
- 'url': 'http://matchtv.ru/#live-player',
+ 'url': 'http://matchtv.ru/on-air/',
'info_dict': {
'id': 'matchtv-live',
- 'ext': 'flv',
+ 'ext': 'mp4',
'title': r're:^Матч ТВ - Прямой эфир \d{4}-\d{2}-\d{2} \d{2}:\d{2}$',
- 'is_live': True,
+ 'live_status': 'is_live',
},
'params': {
'skip_download': True,
},
}, {
- 'url': 'http://matchtv.ru/on-air/',
+ 'url': 'https://video.matchtv.ru/iframe/channel/106',
'only_matching': True,
}]
def _real_extract(self, url):
video_id = 'matchtv-live'
- video_url = self._download_json(
- 'http://player.matchtv.ntvplus.tv/player/smil', video_id,
- query={
- 'ts': '',
- 'quality': 'SD',
- 'contentId': '561d2c0df7159b37178b4567',
- 'sign': '',
- 'includeHighlights': '0',
- 'userId': '',
- 'sessionId': random.randint(1, 1000000000),
- 'contentType': 'channel',
- 'timeShift': '0',
- 'platform': 'portal',
- },
- headers={
- 'Referer': 'http://player.matchtv.ntvplus.tv/embed-player/NTVEmbedPlayer.swf',
- })['data']['videoUrl']
- f4m_url = xpath_text(self._download_xml(video_url, video_id), './to')
- formats = self._extract_f4m_formats(f4m_url, video_id)
+ webpage = self._download_webpage('https://video.matchtv.ru/iframe/channel/106', video_id)
+ video_url = self._html_search_regex(
+ r'data-config="config=(https?://[^?"]+)[?"]', webpage, 'video URL').replace('/feed/', '/media/') + '.m3u8'
return {
'id': video_id,
'title': 'Матч ТВ - Прямой эфир',
'is_live': True,
- 'formats': formats,
+ 'formats': self._extract_m3u8_formats(video_url, video_id, 'mp4', live=True),
}