youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit e64b0fca147c1512c8d31d02aedefed78411bbd9
parent 78ef214d2d8010f2fc7ab451c9b4ae137c2569dd
Author: Thomas Christlieb <thomaschristlieb@hotmail.com>
Date:   Wed,  8 Feb 2017 13:53:39 +0100

[pornhub] Fix extraction (closes #12007)

Diffstat:
Myoutube_dl/extractor/pornhub.py | 21+++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)

diff --git 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(