From 30c4a21f6e8dcdc4186d9fb8d43dc2bc2cd555a1 Mon Sep 17 00:00:00 2001 From: fauresystems <34378695+fauresystems@users.noreply.github.com> Date: Fri, 14 Jun 2019 12:41:25 +0200 Subject: [PATCH] Add pornhubpremium.py Add yourextractor.py --- youtube_dl/extractor/extractors.py | 6 + youtube_dl/extractor/pornhubpremium.py | 451 +++++++++++++++++++++++++ youtube_dl/extractor/yourextractor.py | 38 +++ 3 files changed, 495 insertions(+) create mode 100644 youtube_dl/extractor/pornhubpremium.py create mode 100644 youtube_dl/extractor/yourextractor.py diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 392b1f92b..35fa58aef 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -900,6 +900,11 @@ from .pornhub import ( PornHubPlaylistIE, PornHubUserVideosIE, ) +from .pornhubpremium import ( + PornHubPremiumIE, + PornHubPremiumPlaylistIE, + PornHubPremiumUserVideosIE, +) from .pornotube import PornotubeIE from .pornovoisines import PornoVoisinesIE from .pornoxo import PornoXOIE @@ -1524,3 +1529,4 @@ from .zattoo import ( from .zdf import ZDFIE, ZDFChannelIE from .zingmp3 import ZingMp3IE from .zype import ZypeIE +from .yourextractor import YourExtractorIE diff --git a/youtube_dl/extractor/pornhubpremium.py b/youtube_dl/extractor/pornhubpremium.py new file mode 100644 index 000000000..22b7e19a6 --- /dev/null +++ b/youtube_dl/extractor/pornhubpremium.py @@ -0,0 +1,451 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import functools +import itertools +import operator +import re + +from .common import InfoExtractor +from ..compat import ( + compat_HTTPError, + compat_str, + compat_urllib_request, +) +from .openload import PhantomJSwrapper +from ..utils import ( + determine_ext, + ExtractorError, + int_or_none, + orderedSet, + remove_quotes, + str_to_int, + url_or_none, +) + + +class PorHubPremiumBaseIE(InfoExtractor): + def _download_webpage_handle(self, *args, **kwargs): + def dl(*args, **kwargs): + return super(PorHubPremiumBaseIE, self)._download_webpage_handle(*args, **kwargs) + + webpage, urlh = dl(*args, **kwargs) + + if any(re.search(p, webpage) for p in ( + r'
]+\bonload=["\']go\(\)', + r'document\.cookie\s*=\s*["\']RNKEY=', + r'document\.location\.reload\(true\)')): + url_or_request = args[0] + url = (url_or_request.get_full_url() + if isinstance(url_or_request, compat_urllib_request.Request) + else url_or_request) + phantom = PhantomJSwrapper(self, required_version='2.0') + phantom.get(url, html=webpage) + webpage, urlh = dl(*args, **kwargs) + + return webpage, urlh + + +class PorHubPremiumIE(PorHubPremiumBaseIE): + IE_DESC = 'PorHubPremium and Thumbzilla' + _VALID_URL = r'''(?x) + https?:// + (?: + (?:[^/]+\.)?(?P