From 2493061dd836680359e5054a39f462a2bc0f0997 Mon Sep 17 00:00:00 2001 From: Ales Jirasek Date: Sun, 6 Jan 2019 18:06:12 +0100 Subject: [PATCH] fulfilling requested changes --- youtube_dl/extractor/malltv.py | 43 +++++++++++++++++----------------- youtube_dl/utils.py | 2 +- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/youtube_dl/extractor/malltv.py b/youtube_dl/extractor/malltv.py index 31b555e4a..be8b7a762 100644 --- a/youtube_dl/extractor/malltv.py +++ b/youtube_dl/extractor/malltv.py @@ -1,6 +1,7 @@ # coding: utf-8 from __future__ import unicode_literals +import hashlib from .common import InfoExtractor from ..utils import parse_duration @@ -9,37 +10,33 @@ class MallTVIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?mall\.tv/(?:.+/)?(?P.+)' _TESTS = [ { - 'url': ('https://www.mall.tv/18-miliard-pro-neziskovky-opravdu-jsou-sportovci-nebo-clovek-v-tisni-pijavice'), + 'url': 'https://www.mall.tv/18-miliard-pro-neziskovky-opravdu-jsou-sportovci-nebo-clovek-v-tisni-pijavice', + 'md5': '9ced0de056534410837077e23bfba796', 'info_dict': { - 'id': ('18-miliard-pro-neziskovky-opravdu-jsou-sportovci-nebo-clovek-v-tisni-pijavice'), + 'id': 'af7649e93dc6a2a04198e6c8143605a4', 'ext': 'mp4', - 'title': ('18 miliard pro neziskovky. Opravdu jsou sportovci nebo Člověk v tísni pijavice?'), + 'title': '18 miliard pro neziskovky. Opravdu jsou sportovci nebo Člověk v tísni pijavice?', 'description': ('Pokud někdo hospodaří s penězmi daňových ' 'poplatníků, pak logicky chceme vědět, jak s ' 'nimi nakládá. Objem dotací pro neziskovky ' 'roste, ale opravdu jsou tyto organizace ' '„pijavice", jak o nich hovoří And') - }, - 'params': { - 'skip_download': True - } + } }, { - 'url': ('https://www.mall.tv/kdo-to-plati/18-miliard-pro-neziskovky-opravdu-jsou-sportovci-nebo-clovek-v-tisni-pijavice'), + 'url': 'https://www.mall.tv/kdo-to-plati/18-miliard-pro-neziskovky-opravdu-jsou-sportovci-nebo-clovek-v-tisni-pijavice', + 'md5': '9ced0de056534410837077e23bfba796', 'info_dict': { - 'id': ('18-miliard-pro-neziskovky-opravdu-jsou-sportovci-nebo-clovek-v-tisni-pijavice'), + 'id': 'af7649e93dc6a2a04198e6c8143605a4', 'ext': 'mp4', - 'title': ('18 miliard pro neziskovky. Opravdu jsou sportovci nebo Člověk v tísni pijavice?'), + 'title': '18 miliard pro neziskovky. Opravdu jsou sportovci nebo Člověk v tísni pijavice?', 'description': ('Pokud někdo hospodaří s penězmi daňových ' 'poplatníků, pak logicky chceme vědět, jak s ' 'nimi nakládá. Objem dotací pro neziskovky ' 'roste, ale opravdu jsou tyto organizace ' '„pijavice", jak o nich hovoří And') - }, - 'params': { - 'skip_download': True - } - }, + } + } ] def _real_extract(self, url): @@ -53,13 +50,17 @@ class MallTVIE(InfoExtractor): formats = self._extract_m3u8_formats(format_url+'.m3u8', video_id, 'mp4') self._sort_formats(formats) - title = info.get('title', self._og_search_title(webpage, fatal=False)) thumbnail = info.get('thumbnailUrl', self._og_search_thumbnail(webpage)) - return { - 'id': video_id, - 'title': title, - 'thumbnail': thumbnail, + duration = parse_duration(info.get('duration')) + result = { + 'id': hashlib.md5(video_id).hexdigest().decode('utf8'), + 'title': info.get('name', self._og_search_title(webpage)), 'description': self._og_search_description(webpage), - 'duration': parse_duration(info.get('duration')), 'formats': formats } + if thumbnail: + result.update({'thumbnail': thumbnail}) + if duration: + result.update({'duration': duration}) + + return result diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 4f21d8821..a82b7c826 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -183,7 +183,7 @@ DATE_FORMATS_MONTH_FIRST.extend([ ]) PACKED_CODES_RE = r"}\('(.+)',(\d+),(\d+),'([^']+)'\.split\('\|'\)" -JSON_LD_RE = r'(?is)]+type=(["\'])?application/ld\+json\1?[^>]*>(?P.+?)' +JSON_LD_RE = r'(?is)]+type=(["\']|)application/ld\+json\1[^>]*>(?P.+?)' def preferredencoding():