X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fplayed.py;h=57c875ef05dd74a429ea55313b0d956ef7e5ec56;hb=18b6216150fa39d5e3cdbf353339e1c010bcee8d;hp=a396e62e50d64c977b96d796da6d22f006f0316f;hpb=f0b8e3607db6bc2e7cdfcf3175e85d9bccb22229;p=youtube-dl diff --git a/youtube_dl/extractor/played.py b/youtube_dl/extractor/played.py index a396e62e5..57c875ef0 100644 --- a/youtube_dl/extractor/played.py +++ b/youtube_dl/extractor/played.py @@ -2,19 +2,19 @@ from __future__ import unicode_literals import re -import time import os.path from .common import InfoExtractor from ..utils import ( - compat_urllib_parse, - compat_urllib_request, + ExtractorError, + sanitized_Request, + urlencode_postdata, ) class PlayedIE(InfoExtractor): IE_NAME = 'played.to' - _VALID_URL = r'https?://played\.to/(?P[a-zA-Z0-9_-]+)' + _VALID_URL = r'https?://(?:www\.)?played\.to/(?P[a-zA-Z0-9_-]+)' _TEST = { 'url': 'http://played.to/j2f2sfiiukgt', @@ -24,24 +24,27 @@ class PlayedIE(InfoExtractor): 'ext': 'flv', 'title': 'youtube-dl_test_video.mp4', }, + 'skip': 'Removed for copyright infringement.', # oh wow } def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') - + video_id = self._match_id(url) orig_webpage = self._download_webpage(url, video_id) - fields = re.findall(r'type="hidden" name="(.+?)"\s* value="?(.+?)">', orig_webpage) - data = dict(fields) - self.to_screen('%s: Waiting for timeout' % video_id) - time.sleep(2) + m_error = re.search( + r'(?s)Reason for deletion:.*?]*>(?P[^<]+)', orig_webpage) + if m_error: + raise ExtractorError(m_error.group('msg'), expected=True) + + data = self._hidden_inputs(orig_webpage) - post = compat_urllib_parse.urlencode(data) + self._sleep(2, video_id) + + post = urlencode_postdata(data) headers = { b'Content-Type': b'application/x-www-form-urlencoded', } - req = compat_urllib_request.Request(url, post, headers) + req = sanitized_Request(url, post, headers) webpage = self._download_webpage( req, video_id, note='Downloading video page ...') @@ -54,4 +57,4 @@ class PlayedIE(InfoExtractor): 'id': video_id, 'title': title, 'url': video_url, - } \ No newline at end of file + }