From d56e384309121b3b1b7f0276d3003c770a6b3ae9 Mon Sep 17 00:00:00 2001 From: Andrew Udvare Date: Sat, 28 Apr 2018 02:45:21 -0400 Subject: [PATCH] Fix PewTube extractor --- youtube_dl/extractor/extractors.py | 5 ++- youtube_dl/extractor/pewtube.py | 53 +++++++++++++++++------------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 6fb65e4fe..f4c64642d 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -1332,7 +1332,7 @@ from .webofstories import ( WebOfStoriesPlaylistIE, ) from .weibo import ( - WeiboIE, + WeiboIE, WeiboMobileIE ) from .weiqitv import WeiqiTVIE @@ -1420,3 +1420,6 @@ from .zapiks import ZapiksIE from .zaq1 import Zaq1IE from .zdf import ZDFIE, ZDFChannelIE from .zingmp3 import ZingMp3IE + +from .cheekyvideosnet import CheekyVideosIE +from .pewtube import PewTubeIE diff --git a/youtube_dl/extractor/pewtube.py b/youtube_dl/extractor/pewtube.py index 7f683f841..e017fc182 100644 --- a/youtube_dl/extractor/pewtube.py +++ b/youtube_dl/extractor/pewtube.py @@ -1,17 +1,17 @@ # coding: utf-8 from __future__ import unicode_literals from collections import OrderedDict -from datetime import datetime +from datetime import datetime, timedelta import re import subprocess as sp import time from .common import InfoExtractor -from ..utils import CloudFlareSimpleJSChallengeMixin, int_or_none +from ..utils import int_or_none -class PewTubeIE(InfoExtractor, CloudFlareSimpleJSChallengeMixin): - _VALID_URL = r'https?://(?:www\.)?pew\.tube/user/[^/]+/(?P[^/]+)' +class PewTubeIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?pewtube\.com/user/[^/]+/(?P[^/]+)' _TEST = { 'url': 'https://pew.tube/user/MrBond/4jLJf06', 'md5': 'TODO: md5 sum of the first 10241 bytes of the video file (use --test)', @@ -28,24 +28,18 @@ class PewTubeIE(InfoExtractor, CloudFlareSimpleJSChallengeMixin): } } - def set_downloader(self, downloader): - self._downloader = downloader - if downloader: - class Handle503: - def http_error_503(self, request, response, code, msg, hdrs): - return response - self._downloader._opener.handle_error['http'][503] = [Handle503()] - def _real_extract(self, url): - self._do_cloudflare_challenge('pew.tube', url, secure=True) - video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) + webpage = self._download_webpage(url, video_id, tries=5, timeout=15) title = self._html_search_regex(r'

]+>([^<]+)

', webpage, 'title') thumbnail = self._html_search_regex(r'