From 2dfbb6c4d7fd6c928fa93893b84764f9839cb728 Mon Sep 17 00:00:00 2001 From: Frank Aurich <1100101@gmail.com> Date: Mon, 12 Oct 2020 22:19:06 +0200 Subject: [PATCH 1/4] Fix Python error when parsing metadata results in both variables `vbr` and `abr` being `None`, which cannot be interpreted as a number. --- youtube_dl/extractor/mdr.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/youtube_dl/extractor/mdr.py b/youtube_dl/extractor/mdr.py index 322e5b45a..c3f1d63c3 100644 --- a/youtube_dl/extractor/mdr.py +++ b/youtube_dl/extractor/mdr.py @@ -75,6 +75,18 @@ class MDRIE(InfoExtractor): }, { 'url': 'http://www.mdr.de/mediathek/mdr-videos/a/video-1334.html', 'only_matching': True, + }, { + 'url': 'https://www.kika.de/petronella-apfelmus/sendungen/sendung124504.html', + 'info_dict': { + 'id': '124504', + 'ext': 'mp4', + 'title': '2. Papa ist geschrumpft', + 'description': 'md5:0374fa1997819a5ad2a2659af81264c6', + 'timestamp': 1602477300, + 'upload_date': '20201012', + 'duration': 685, + 'uploader': 'ZDF', + }, }] def _real_extract(self, url): @@ -103,7 +115,7 @@ class MDRIE(InfoExtractor): continue video_url = url_el.text - if video_url in processed_urls: + if video_url is None or video_url in processed_urls: continue processed_urls.append(video_url) @@ -128,12 +140,15 @@ class MDRIE(InfoExtractor): f = { 'url': video_url, - 'format_id': '%s-%d' % (media_type, vbr or abr), 'filesize': filesize, 'abr': abr, 'preference': 1, } + if vbr or abr: + f.update({ + 'format_id': '%s-%d' % (media_type, vbr or abr)}) + if vbr: width = int_or_none(xpath_text(asset, './frameWidth', 'width')) height = int_or_none(xpath_text(asset, './frameHeight', 'height')) From 5d8a120efa010acc5c73d34e044e726a3b144c63 Mon Sep 17 00:00:00 2001 From: Frank Aurich <1100101@gmail.com> Date: Sun, 18 Oct 2020 14:57:51 +0200 Subject: [PATCH 2/4] Use media_type as format_id, and set vbr and abr separately. --- youtube_dl/extractor/mdr.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/youtube_dl/extractor/mdr.py b/youtube_dl/extractor/mdr.py index c3f1d63c3..929957a24 100644 --- a/youtube_dl/extractor/mdr.py +++ b/youtube_dl/extractor/mdr.py @@ -141,14 +141,12 @@ class MDRIE(InfoExtractor): f = { 'url': video_url, 'filesize': filesize, + 'format_id': media_type, + 'vbr': vbr, 'abr': abr, 'preference': 1, } - if vbr or abr: - f.update({ - 'format_id': '%s-%d' % (media_type, vbr or abr)}) - if vbr: width = int_or_none(xpath_text(asset, './frameWidth', 'width')) height = int_or_none(xpath_text(asset, './frameHeight', 'height')) From d4ad744cd15fbfe3d67eb60144c487f76c19c440 Mon Sep 17 00:00:00 2001 From: Frank Aurich <1100101@gmail.com> Date: Mon, 19 Oct 2020 22:45:13 +0200 Subject: [PATCH 3/4] Include vbr (or abr) in format_id if available, otherwise use media_type only --- youtube_dl/extractor/mdr.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/youtube_dl/extractor/mdr.py b/youtube_dl/extractor/mdr.py index 929957a24..4f284e89a 100644 --- a/youtube_dl/extractor/mdr.py +++ b/youtube_dl/extractor/mdr.py @@ -141,12 +141,16 @@ class MDRIE(InfoExtractor): f = { 'url': video_url, 'filesize': filesize, - 'format_id': media_type, - 'vbr': vbr, 'abr': abr, 'preference': 1, } + if vbr or abr: + f.update({ + 'format_id': '%s-%d' % (media_type, vbr or abr)}) + else: + f.update({'format_id': media_type}) + if vbr: width = int_or_none(xpath_text(asset, './frameWidth', 'width')) height = int_or_none(xpath_text(asset, './frameHeight', 'height')) From cdb68398328ff37d5dac5bc965872f05534a9121 Mon Sep 17 00:00:00 2001 From: Frank Aurich <1100101@gmail.com> Date: Mon, 19 Oct 2020 22:55:08 +0200 Subject: [PATCH 4/4] Fix display of resolution, at least for the HLS video formats --- youtube_dl/extractor/mdr.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/youtube_dl/extractor/mdr.py b/youtube_dl/extractor/mdr.py index 4f284e89a..1d7c77ec5 100644 --- a/youtube_dl/extractor/mdr.py +++ b/youtube_dl/extractor/mdr.py @@ -140,11 +140,13 @@ class MDRIE(InfoExtractor): f = { 'url': video_url, - 'filesize': filesize, 'abr': abr, 'preference': 1, } + if filesize: + f.update({'filesize': filesize}) + if vbr or abr: f.update({ 'format_id': '%s-%d' % (media_type, vbr or abr)}) @@ -170,10 +172,7 @@ class MDRIE(InfoExtractor): abr = f.get('tbr') or abr if 'tbr' in f: del f['tbr'] - f.update({ - 'abr': abr, - 'vcodec': 'none', - }) + f.update({'abr': abr}) formats.extend(url_formats)