diff options
| -rw-r--r-- | youtube_dl/extractor/pornhub.py | 21 | 
1 files changed, 17 insertions, 4 deletions
| diff --git a/youtube_dl/extractor/pornhub.py b/youtube_dl/extractor/pornhub.py index 017f6c552..5e930f45e 100644 --- a/youtube_dl/extractor/pornhub.py +++ b/youtube_dl/extractor/pornhub.py @@ -156,11 +156,24 @@ class PornHubIE(InfoExtractor):          comment_count = self._extract_count(              r'All Comments\s*<span>\(([\d,.]+)\)', webpage, 'comment') +        video_variables = {} +        for video_variablename, quote, video_variable in re.findall( +                r'(player_quality_[0-9]{3,4}p[0-9a-z]+?)=\s*(["\'])(.*?)\2;', webpage): +            video_variables[video_variablename] = video_variable + +        encoded_video_urls = [] +        for encoded_video_url in re.findall( +                r'player_quality_[0-9]{3,4}p\s*=(.*?);', webpage): +            encoded_video_urls.append(encoded_video_url) + +        # Decode the URLs           video_urls = [] -        for quote, video_url in re.findall( -                r'player_quality_[0-9]{3,4}p\s*=\s*(["\'])(.+?)\1;', webpage): -            video_urls.append(compat_urllib_parse_unquote(re.sub( -                r'{0}\s*\+\s*{0}'.format(quote), '', video_url))) +        for url in encoded_video_urls: +            for varname, varval in video_variables.items(): +                url = url.replace(varname, varval) +            url = url.replace('+', '') +            url = url.replace(' ', '') +            video_urls.append(url)          if webpage.find('"encrypted":true') != -1:              password = compat_urllib_parse_unquote_plus( | 
