]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/br.py
[ie/youtube] Avoid false DRM detection (#7396)
[yt-dlp.git] / yt_dlp / extractor / br.py
index a3bc3a10ac6312fbd8ecd49cf6d6db57ff70d3ad..309452d23ec7a752d912ce1478b519b8c9c33720 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')
@@ -161,7 +157,6 @@ def _extract_formats(self, assets, media_id):
                         'format_id': 'rtmp-%s' % asset_type,
                     })
                     formats.append(rtmp_format_info)
-        self._sort_formats(formats)
         return formats
 
     def _extract_thumbnails(self, variants, base_url):
@@ -176,7 +171,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 +184,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):
@@ -273,7 +271,6 @@ def _real_extract(self, url):
                     'tbr': tbr,
                     'filesize': int_or_none(node.get('fileSize')),
                 })
-        self._sort_formats(formats)
 
         subtitles = {}
         for edge in clip.get('captionFiles', {}).get('edges', []):