diff options
Diffstat (limited to 'youtube_dl/extractor/tv2dk.py')
-rw-r--r-- | youtube_dl/extractor/tv2dk.py | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/youtube_dl/extractor/tv2dk.py b/youtube_dl/extractor/tv2dk.py deleted file mode 100644 index 8bda9348d..000000000 --- a/youtube_dl/extractor/tv2dk.py +++ /dev/null @@ -1,154 +0,0 @@ -# coding: utf-8 -from __future__ import unicode_literals - -import json -import re - -from .common import InfoExtractor -from ..utils import ( - determine_ext, - extract_attributes, - js_to_json, - url_or_none, -) - - -class TV2DKIE(InfoExtractor): - _VALID_URL = r'''(?x) - https?:// - (?:www\.)? - (?: - tvsyd| - tv2ostjylland| - tvmidtvest| - tv2fyn| - tv2east| - tv2lorry| - tv2nord - )\.dk/ - (:[^/]+/)* - (?P<id>[^/?\#&]+) - ''' - _TESTS = [{ - 'url': 'https://www.tvsyd.dk/nyheder/28-10-2019/1930/1930-28-okt-2019?autoplay=1#player', - 'info_dict': { - 'id': '0_52jmwa0p', - 'ext': 'mp4', - 'title': '19:30 - 28. okt. 2019', - 'timestamp': 1572290248, - 'upload_date': '20191028', - 'uploader_id': 'tvsyd', - 'duration': 1347, - 'view_count': int, - }, - 'params': { - 'skip_download': True, - }, - 'add_ie': ['Kaltura'], - }, { - 'url': 'https://www.tv2ostjylland.dk/artikel/minister-gaar-ind-i-sag-om-diabetes-teknologi', - 'only_matching': True, - }, { - 'url': 'https://www.tv2ostjylland.dk/nyheder/28-10-2019/22/2200-nyhederne-mandag-d-28-oktober-2019?autoplay=1#player', - 'only_matching': True, - }, { - 'url': 'https://www.tvmidtvest.dk/nyheder/27-10-2019/1930/1930-27-okt-2019', - 'only_matching': True, - }, { - 'url': 'https://www.tv2fyn.dk/artikel/fyn-kan-faa-landets-foerste-fabrik-til-groent-jetbraendstof', - 'only_matching': True, - }, { - 'url': 'https://www.tv2east.dk/artikel/gods-faar-indleveret-tonsvis-af-aebler-100-kilo-aebler-gaar-til-en-aeblebrandy', - 'only_matching': True, - }, { - 'url': 'https://www.tv2lorry.dk/koebenhavn/rasmus-paludan-evakueret-til-egen-demonstration#player', - 'only_matching': True, - }, { - 'url': 'https://www.tv2nord.dk/artikel/dybt-uacceptabelt', - 'only_matching': True, - }] - - def _real_extract(self, url): - video_id = self._match_id(url) - - webpage = self._download_webpage(url, video_id) - - entries = [] - for video_el in re.findall(r'(?s)<[^>]+\bdata-entryid\s*=[^>]*>', webpage): - video = extract_attributes(video_el) - kaltura_id = video.get('data-entryid') - if not kaltura_id: - continue - partner_id = video.get('data-partnerid') - if not partner_id: - continue - entries.append(self.url_result( - 'kaltura:%s:%s' % (partner_id, kaltura_id), 'Kaltura', - video_id=kaltura_id)) - return self.playlist_result(entries) - - -class TV2DKBornholmPlayIE(InfoExtractor): - _VALID_URL = r'https?://play\.tv2bornholm\.dk/\?.*?\bid=(?P<id>\d+)' - _TEST = { - 'url': 'http://play.tv2bornholm.dk/?area=specifikTV&id=781021', - 'info_dict': { - 'id': '781021', - 'ext': 'mp4', - 'title': '12Nyheder-27.11.19', - }, - 'params': { - 'skip_download': True, - }, - } - - def _real_extract(self, url): - video_id = self._match_id(url) - - video = self._download_json( - 'https://play.tv2bornholm.dk/controls/AJAX.aspx/specifikVideo', video_id, - data=json.dumps({ - 'playlist_id': video_id, - 'serienavn': '', - }).encode(), headers={ - 'X-Requested-With': 'XMLHttpRequest', - 'Content-Type': 'application/json; charset=UTF-8', - })['d'] - - # TODO: generalize flowplayer - title = self._search_regex( - r'title\s*:\s*(["\'])(?P<value>(?:(?!\1).)+)\1', video, 'title', - group='value') - sources = self._parse_json(self._search_regex( - r'(?s)sources:\s*(\[.+?\]),', video, 'sources'), - video_id, js_to_json) - - formats = [] - srcs = set() - for source in sources: - src = url_or_none(source.get('src')) - if not src: - continue - if src in srcs: - continue - srcs.add(src) - ext = determine_ext(src) - src_type = source.get('type') - if src_type == 'application/x-mpegurl' or ext == 'm3u8': - formats.extend(self._extract_m3u8_formats( - src, video_id, ext='mp4', entry_protocol='m3u8_native', - m3u8_id='hls', fatal=False)) - elif src_type == 'application/dash+xml' or ext == 'mpd': - formats.extend(self._extract_mpd_formats( - src, video_id, mpd_id='dash', fatal=False)) - else: - formats.append({ - 'url': src, - }) - self._sort_formats(formats) - - return { - 'id': video_id, - 'title': title, - 'formats': formats, - } |