[extractor/common] Filter out unsupported encrypted media for f4m formats (Closes...
authorSergey M․ <dstftw@gmail.com>
Sun, 27 Mar 2016 01:42:38 +0000 (07:42 +0600)
committerSergey M․ <dstftw@gmail.com>
Sun, 27 Mar 2016 01:42:38 +0000 (07:42 +0600)
youtube_dl/extractor/common.py

index 40ddf175c37419395cae02edb5d1fdf5118a60bf..9b7ab8924153e3a10e3e405d058d6199d2aad550 100644 (file)
@@ -24,6 +24,7 @@ from ..compat import (
     compat_urllib_parse_urlencode,
     compat_urlparse,
 )
+from ..downloader.f4m import remove_encrypted_media
 from ..utils import (
     NO_DEFAULT,
     age_restricted,
@@ -989,6 +990,11 @@ class InfoExtractor(object):
         if not media_nodes:
             manifest_version = '2.0'
             media_nodes = manifest.findall('{http://ns.adobe.com/f4m/2.0}media')
+        # Remove unsupported DRM protected media from final formats
+        # rendition (see https://github.com/rg3/youtube-dl/issues/8573).
+        media_nodes = remove_encrypted_media(media_nodes)
+        if not media_nodes:
+            return formats
         base_url = xpath_text(
             manifest, ['{http://ns.adobe.com/f4m/1.0}baseURL', '{http://ns.adobe.com/f4m/2.0}baseURL'],
             'base URL', default=None)