From c41cad95245f5f5d87f7fb8cd94039bb6af2f796 Mon Sep 17 00:00:00 2001 From: Rokic Date: Fri, 25 Mar 2016 02:29:01 +0800 Subject: [PATCH] [Pornhub]Add support New extractor and test for pornhub. --- src/you_get/common.py | 1 + src/you_get/extractors/__init__.py | 1 + src/you_get/extractors/pornhub.py | 28 ++++++++++++++++++++++++++++ tests/test.py | 3 +++ 4 files changed, 33 insertions(+) create mode 100644 src/you_get/extractors/pornhub.py diff --git a/src/you_get/common.py b/src/you_get/common.py index a417bcc7..90e628c7 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -55,6 +55,7 @@ SITES = { 'nicovideo' : 'nicovideo', 'pinterest' : 'pinterest', 'pixnet' : 'pixnet', + 'pornhub' : 'pornhub', 'pptv' : 'pptv', 'qianmo' : 'qianmo', 'qq' : 'qq', diff --git a/src/you_get/extractors/__init__.py b/src/you_get/extractors/__init__.py index 5af9cdd3..cb55f616 100755 --- a/src/you_get/extractors/__init__.py +++ b/src/you_get/extractors/__init__.py @@ -48,6 +48,7 @@ from .netease import * from .nicovideo import * from .pinterest import * from .pixnet import * +from .pornhub import * from .pptv import * from .qianmo import * from .qq import * diff --git a/src/you_get/extractors/pornhub.py b/src/you_get/extractors/pornhub.py new file mode 100644 index 00000000..84a054ba --- /dev/null +++ b/src/you_get/extractors/pornhub.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +__all__ = ['pornhub_download', 'pornhub_download_by_viewkey'] + +from ..common import * + +def pornhub_download_by_viewkey(viewkey, output_dir='.', merge=True, info_only=False): + """Downloads a Pornhub video by its viewkey""" + content = get_content('http://www.pornhub.com/embed/{}'.format(viewkey)) + url = match1(content, r'quality_\d+p":"([^"]+)').replace(r"\/", "/") + if url.startswith('//'): url = 'http:' + url + title = match1(content, r'([^<]+)') + _, ext, size = url_info(url) + + print_info(site_info, title, ext, size) + if not info_only: + download_urls([url], title, ext, size, output_dir=output_dir, merge=merge) + +def pornhub_download(url, output_dir='.', merge=True, info_only=False, **kwargs): + viewkey = match1(url, r'viewkey=([0-9a-z]+)') + if viewkey is None: + viewkey = match1(url, r'embed/([0-9a-z]+)') + if viewkey: + pornhub_download_by_viewkey(viewkey) + +site_info = "Pornhub.com" +download = pornhub_download +download_playlist = playlist_not_supported('Pornhub') \ No newline at end of file diff --git a/tests/test.py b/tests/test.py index 638206af..19331408 100644 --- a/tests/test.py +++ b/tests/test.py @@ -28,3 +28,6 @@ class YouGetTests(unittest.TestCase): youtube.download("http://www.youtube.com/watch?v=pzKerr0JIPA", info_only=True) youtube.download("http://youtu.be/pzKerr0JIPA", info_only=True) youtube.download("http://www.youtube.com/attribution_link?u=/watch?v%3DldAKIzq7bvs%26feature%3Dshare", info_only=True) + + def test_pornhub(self): + pornhub.download("http://www.pornhub.com/view_video.php?viewkey=ph56d67b6c6505e", info_only=True) \ No newline at end of file