[youku] Keep old fileid extraction code as fallback (#12741)
authorSergey M․ <dstftw@gmail.com>
Fri, 14 Apr 2017 18:25:32 +0000 (01:25 +0700)
committerSergey M․ <dstftw@gmail.com>
Fri, 14 Apr 2017 18:28:02 +0000 (01:28 +0700)
youtube_dl/extractor/youku.py

index 73f6f0e904cc38f53b5ab1e552d9b4c0421ac279..73ebe57598a281a4debcb6ea671ebf081b63c610 100644 (file)
@@ -10,12 +10,14 @@ import time
 
 from .common import InfoExtractor
 from ..compat import (
-    compat_urllib_parse_urlencode,
     compat_ord,
+    compat_str,
+    compat_urllib_parse_urlencode,
 )
 from ..utils import (
     ExtractorError,
     get_element_by_attribute,
+    try_get,
 )
 
 
@@ -105,7 +107,9 @@ class YoukuIE(InfoExtractor):
             if stream.get('channel_type') == 'tail':
                 continue
             format = stream.get('stream_type')
-            fileid = stream['segs'][0]['fileid']
+            fileid = try_get(
+                stream, lambda x: x['segs'][0]['fileid'],
+                compat_str) or stream['stream_fileid']
             fileid_dict[format] = fileid
 
         def get_fileid(format, n):