diff options
| -rw-r--r-- | youtube_dl/extractor/fourtube.py | 31 | 
1 files changed, 18 insertions, 13 deletions
| diff --git a/youtube_dl/extractor/fourtube.py b/youtube_dl/extractor/fourtube.py index cd7668f18..fb6d108c0 100644 --- a/youtube_dl/extractor/fourtube.py +++ b/youtube_dl/extractor/fourtube.py @@ -68,19 +68,24 @@ class FourTubeIE(InfoExtractor):              webpage, 'like count', fatal=False))          duration = parse_duration(self._html_search_meta('duration', webpage)) -        player_js = self._download_webpage( -            self._search_regex( -                r'<script[^>]id=(["\'])playerembed\1[^>]+src=(["\'])(?P<url>.+?)\2', -                webpage, 'player JS', group='url'), -            video_id, 'Downloading player JS') - -        params_js = self._search_regex( -            r'\$\.ajax\(url,\ opts\);\s*\}\s*\}\)\(([0-9,\[\] ]+)\)', -            player_js, 'initialization parameters' -        ) -        params = self._parse_json('[%s]' % params_js, video_id) -        media_id = params[0] -        sources = ['%s' % p for p in params[2]] +        media_id = self._search_regex( +            r'<button[^>]+data-id=(["\'])(?P<id>\d+)\1[^>]+data-quality=', webpage, +            'media id', default=None, group='id') +        sources = [ +            quality +            for _, quality in re.findall(r'<button[^>]+data-quality=(["\'])(.+?)\1', webpage)] +        if not (media_id and sources): +            player_js = self._download_webpage( +                self._search_regex( +                    r'<script[^>]id=(["\'])playerembed\1[^>]+src=(["\'])(?P<url>.+?)\2', +                    webpage, 'player JS', group='url'), +                video_id, 'Downloading player JS') +            params_js = self._search_regex( +                r'\$\.ajax\(url,\ opts\);\s*\}\s*\}\)\(([0-9,\[\] ]+)\)', +                player_js, 'initialization parameters') +            params = self._parse_json('[%s]' % params_js, video_id) +            media_id = params[0] +            sources = ['%s' % p for p in params[2]]          token_url = 'http://tkn.4tube.com/{0}/desktop/{1}'.format(              media_id, '+'.join(sources)) | 
