[pornhub:user:videos] Add extractor (Closes #8548)

pull/2/head
Sergey M․ 9 years ago
parent f3f9cd9234
commit 40e146aa1e

@ -555,6 +555,7 @@ from .pornhd import PornHdIE
from .pornhub import ( from .pornhub import (
PornHubIE, PornHubIE,
PornHubPlaylistIE, PornHubPlaylistIE,
PornHubUserVideosIE,
) )
from .pornotube import PornotubeIE from .pornotube import PornotubeIE
from .pornovoisines import PornoVoisinesIE from .pornovoisines import PornoVoisinesIE

@ -129,27 +129,20 @@ class PornHubIE(InfoExtractor):
} }
class PornHubPlaylistIE(InfoExtractor): class PornHubPlaylistBaseIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?pornhub\.com/playlist/(?P<id>\d+)' def _extract_entries(self, webpage):
_TESTS = [{ return [
'url': 'http://www.pornhub.com/playlist/6201671', self.url_result('http://www.pornhub.com/%s' % video_url, 'PornHub')
'info_dict': { for video_url in set(re.findall(
'id': '6201671', r'href="/?(view_video\.php\?.*\bviewkey=[\da-z]+[^"]*)"', webpage))
'title': 'P0p4', ]
},
'playlist_mincount': 35,
}]
def _real_extract(self, url): def _real_extract(self, url):
playlist_id = self._match_id(url) playlist_id = self._match_id(url)
webpage = self._download_webpage(url, playlist_id) webpage = self._download_webpage(url, playlist_id)
entries = [ entries = self._extract_entries(webpage)
self.url_result('http://www.pornhub.com/%s' % video_url, 'PornHub')
for video_url in set(re.findall(
r'href="/?(view_video\.php\?.*\bviewkey=[\da-z]+[^"]*)"', webpage))
]
playlist = self._parse_json( playlist = self._parse_json(
self._search_regex( self._search_regex(
@ -158,3 +151,33 @@ class PornHubPlaylistIE(InfoExtractor):
return self.playlist_result( return self.playlist_result(
entries, playlist_id, playlist.get('title'), playlist.get('description')) entries, playlist_id, playlist.get('title'), playlist.get('description'))
class PornHubPlaylistIE(PornHubPlaylistBaseIE):
_VALID_URL = r'https?://(?:www\.)?pornhub\.com/playlist/(?P<id>\d+)'
_TESTS = [{
'url': 'http://www.pornhub.com/playlist/6201671',
'info_dict': {
'id': '6201671',
'title': 'P0p4',
},
'playlist_mincount': 35,
}]
class PornHubUserVideosIE(PornHubPlaylistBaseIE):
_VALID_URL = r'https?://(?:www\.)?pornhub\.com/users/(?P<id>[^/]+)/videos'
_TESTS = [{
'url': 'http://www.pornhub.com/users/rushandlia/videos',
'info_dict': {
'id': 'rushandlia',
},
'playlist_mincount': 13,
}]
def _real_extract(self, url):
user_id = self._match_id(url)
webpage = self._download_webpage(url, user_id)
return self.playlist_result(self._extract_entries(webpage), user_id)

Loading…
Cancel
Save