]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/br.py
Allow extractors to specify section_start/end for clips
[yt-dlp.git] / yt_dlp / extractor / br.py
index 9bde7f2d82896177612a81f74e499ad4e79985b1..faac442e89a0527d229f02b25e3749fe373630cb 100644 (file)
@@ -1,8 +1,4 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
 import json
-import re
 
 from .common import InfoExtractor
 from ..utils import (
@@ -86,7 +82,7 @@ class BRIE(InfoExtractor):
     ]
 
     def _real_extract(self, url):
-        base_url, display_id = re.search(self._VALID_URL, url).groups()
+        base_url, display_id = self._match_valid_url(url).groups()
         page = self._download_webpage(url, display_id)
         xml_url = self._search_regex(
             r"return BRavFramework\.register\(BRavFramework\('avPlayer_(?:[a-f0-9-]{36})'\)\.setup\({dataURL:'(/(?:[a-z0-9\-]+/)+[a-z0-9/~_.-]+)'}\)\);", page, 'XMLURL')
@@ -114,7 +110,7 @@ def _real_extract(self, url):
             medias.append(media)
 
         if len(medias) > 1:
-            self._downloader.report_warning(
+            self.report_warning(
                 'found multiple medias; please '
                 'report this with the video URL to http://yt-dl.org/bug')
         if not medias:
@@ -176,7 +172,7 @@ def _extract_thumbnails(self, variants, base_url):
 
 class BRMediathekIE(InfoExtractor):
     IE_DESC = 'Bayerischer Rundfunk Mediathek'
-    _VALID_URL = r'https?://(?:www\.)?br\.de/mediathek/video/[^/?&#]*?-(?P<id>av:[0-9a-f]{24})'
+    _VALID_URL = r'https?://(?:www\.)?br\.de/mediathek//?video/(?:[^/?&#]+?-)?(?P<id>av:[0-9a-f]{24})'
 
     _TESTS = [{
         'url': 'https://www.br.de/mediathek/video/gesundheit-die-sendung-vom-28112017-av:5a1e6a6e8fce6d001871cc8e',
@@ -189,6 +185,9 @@ class BRMediathekIE(InfoExtractor):
             'timestamp': 1511942766,
             'upload_date': '20171129',
         }
+    }, {
+        'url': 'https://www.br.de/mediathek//video/av:61b0db581aed360007558c12',
+        'only_matching': True,
     }]
 
     def _real_extract(self, url):