parent
							
								
									1ced222120
								
							
						
					
					
						commit
						edc2a1f68b
					
				
					 1 changed files with 19 additions and 8 deletions
				
			
		| 
						 | 
					@ -1,13 +1,18 @@
 | 
				
			||||||
from __future__ import unicode_literals
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .common import InfoExtractor
 | 
					from .common import InfoExtractor
 | 
				
			||||||
from ..compat import compat_b64decode
 | 
					from ..compat import (
 | 
				
			||||||
 | 
					    compat_b64decode,
 | 
				
			||||||
 | 
					    compat_urllib_parse_unquote_plus,
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
from ..utils import (
 | 
					from ..utils import (
 | 
				
			||||||
    determine_ext,
 | 
					    determine_ext,
 | 
				
			||||||
    ExtractorError,
 | 
					    ExtractorError,
 | 
				
			||||||
    int_or_none,
 | 
					    int_or_none,
 | 
				
			||||||
 | 
					    js_to_json,
 | 
				
			||||||
    KNOWN_EXTENSIONS,
 | 
					    KNOWN_EXTENSIONS,
 | 
				
			||||||
    parse_filesize,
 | 
					    parse_filesize,
 | 
				
			||||||
 | 
					    rot47,
 | 
				
			||||||
    url_or_none,
 | 
					    url_or_none,
 | 
				
			||||||
    urlencode_postdata,
 | 
					    urlencode_postdata,
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
| 
						 | 
					@ -112,16 +117,22 @@ class VivoIE(SharedBaseIE):
 | 
				
			||||||
            webpage, 'filesize', fatal=False))
 | 
					            webpage, 'filesize', fatal=False))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _extract_video_url(self, webpage, video_id, url):
 | 
					    def _extract_video_url(self, webpage, video_id, url):
 | 
				
			||||||
        def decode_url(encoded_url):
 | 
					        def decode_url_old(encoded_url):
 | 
				
			||||||
            return compat_b64decode(encoded_url).decode('utf-8')
 | 
					            return compat_b64decode(encoded_url).decode('utf-8')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        stream_url = url_or_none(decode_url(self._search_regex(
 | 
					        stream_url = self._search_regex(
 | 
				
			||||||
            r'data-stream\s*=\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage,
 | 
					            r'data-stream\s*=\s*(["\'])(?P<url>(?:(?!\1).)+)\1', webpage,
 | 
				
			||||||
            'stream url', default=None, group='url')))
 | 
					            'stream url', default=None, group='url')
 | 
				
			||||||
 | 
					        if stream_url:
 | 
				
			||||||
 | 
					            stream_url = url_or_none(decode_url_old(stream_url))
 | 
				
			||||||
        if stream_url:
 | 
					        if stream_url:
 | 
				
			||||||
            return stream_url
 | 
					            return stream_url
 | 
				
			||||||
        return self._parse_json(
 | 
					
 | 
				
			||||||
 | 
					        def decode_url(encoded_url):
 | 
				
			||||||
 | 
					            return rot47(compat_urllib_parse_unquote_plus(encoded_url))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return decode_url(self._parse_json(
 | 
				
			||||||
            self._search_regex(
 | 
					            self._search_regex(
 | 
				
			||||||
                r'InitializeStream\s*\(\s*(["\'])(?P<url>(?:(?!\1).)+)\1',
 | 
					                r'(?s)InitializeStream\s*\(\s*({.+?})\s*\)\s*;', webpage,
 | 
				
			||||||
                webpage, 'stream', group='url'),
 | 
					                'stream'),
 | 
				
			||||||
            video_id, transform_source=decode_url)[0]
 | 
					            video_id, transform_source=js_to_json)['source'])
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue