[downloader/f4m] Extract routine for removing unsupported encrypted media
authorSergey M․ <dstftw@gmail.com>
Sun, 27 Mar 2016 01:41:19 +0000 (07:41 +0600)
committerSergey M․ <dstftw@gmail.com>
Sun, 27 Mar 2016 01:41:19 +0000 (07:41 +0600)
youtube_dl/downloader/f4m.py

index fc9642905f3fffb5f1ec11f959c36fd486b757f2..664d87543d07f7c357b803e0a0058034b71276a6 100644 (file)
@@ -223,6 +223,12 @@ def write_metadata_tag(stream, metadata):
         write_unsigned_int(stream, FLV_TAG_HEADER_LEN + len(metadata))
 
 
+def remove_encrypted_media(media):
+    return list(filter(lambda e: 'drmAdditionalHeaderId' not in e.attrib and
+                                 'drmAdditionalHeaderSetId' not in e.attrib,
+                       media))
+
+
 def _add_ns(prop):
     return '{http://ns.adobe.com/f4m/1.0}%s' % prop
 
@@ -244,9 +250,7 @@ class F4mFD(FragmentFD):
             # without drmAdditionalHeaderId or drmAdditionalHeaderSetId attribute
             if 'id' not in e.attrib:
                 self.report_error('Missing ID in f4m DRM')
-        media = list(filter(lambda e: 'drmAdditionalHeaderId' not in e.attrib and
-                                      'drmAdditionalHeaderSetId' not in e.attrib,
-                            media))
+        media = remove_encrypted_media(media)
         if not media:
             self.report_error('Unsupported DRM')
         return media