From 688ae574f79c85ead7da4be0e3f35ccc943d27c3 Mon Sep 17 00:00:00 2001 From: codesparkle Date: Sat, 17 May 2014 17:07:50 +1000 Subject: [PATCH 1/6] CHANGELOG and LATEST_VERSION seem to serve no purpose at all. They haven't been changed in years. Unless these are actually used somewhere, let's get rid of them. --- CHANGELOG | 14 -------------- LATEST_VERSION | 1 - 2 files changed, 15 deletions(-) delete mode 100644 CHANGELOG delete mode 100644 LATEST_VERSION diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index 3fa116733..000000000 --- a/CHANGELOG +++ /dev/null @@ -1,14 +0,0 @@ -2013.01.02 Codename: GIULIA - - * Add support for ComedyCentral clips - * Corrected Vimeo description fetching - * Added the --no-post-overwrites argument - * --verbose offers more environment info - * New info_dict field: uploader_id - * New updates system, with signature checking - * New IEs: NBA, JustinTV, FunnyOrDie, TweetReel, Steam, Ustream - * Fixed IEs: BlipTv - * Fixed for Python 3 IEs: Xvideo, Youku, XNXX, Dailymotion, Vimeo, InfoQ - * Simplified IEs and test code - * Various (Python 3 and other) fixes - * Revamped and expanded tests diff --git a/LATEST_VERSION b/LATEST_VERSION deleted file mode 100644 index a334573b6..000000000 --- a/LATEST_VERSION +++ /dev/null @@ -1 +0,0 @@ -2012.12.99 From 3e7581ac2ee0596998cfcdac994c7f1273c0e103 Mon Sep 17 00:00:00 2001 From: codesparkle Date: Wed, 21 May 2014 00:55:54 +1000 Subject: [PATCH 2/6] Bringing back LATEST_VERSION --- LATEST_VERSION | 1 + 1 file changed, 1 insertion(+) create mode 100644 LATEST_VERSION diff --git a/LATEST_VERSION b/LATEST_VERSION new file mode 100644 index 000000000..a334573b6 --- /dev/null +++ b/LATEST_VERSION @@ -0,0 +1 @@ +2012.12.99 From 11c78d1e079922c6a7dd54124d99157a9a360e78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergey=20M=E2=80=A4?= Date: Wed, 21 May 2014 19:53:58 +0700 Subject: [PATCH 3/6] [gamekings] Update test description --- youtube_dl/extractor/gamekings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/gamekings.py b/youtube_dl/extractor/gamekings.py index 233398966..11fee3d31 100644 --- a/youtube_dl/extractor/gamekings.py +++ b/youtube_dl/extractor/gamekings.py @@ -15,7 +15,7 @@ class GamekingsIE(InfoExtractor): 'id': '20130811', 'ext': 'mp4', 'title': 'Phoenix Wright: Ace Attorney \u2013 Dual Destinies Review', - 'description': 'md5:632e61a9f97d700e83f43d77ddafb6a4', + 'description': 'md5:36fd701e57e8c15ac8682a2374c99731', } } From 5e011e1505bee8107784d38eadbf98653b9e1505 Mon Sep 17 00:00:00 2001 From: rzhxeo Date: Thu, 22 May 2014 09:13:28 +0200 Subject: [PATCH 4/6] [Generic] Fix access to removed function in python 3.4 --- youtube_dl/extractor/generic.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 38a357d3b..ce783bf16 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -308,9 +308,14 @@ class GenericIE(InfoExtractor): newheaders = dict((k,v) for k,v in req.headers.items() if k.lower() not in ("content-length", "content-type")) + try: + # This function was deprecated in python 3.3 and removed in 3.4 + origin_req_host = req.get_origin_req_host() + except AttributeError: + origin_req_host = req.origin_req_host return self.parent.open(compat_urllib_request.Request(req.get_full_url(), headers=newheaders, - origin_req_host=req.get_origin_req_host(), + origin_req_host=origin_req_host, unverifiable=True)) # Build our opener From 6dde141a47e2f7242221d8e0f1d8e41d37f22e16 Mon Sep 17 00:00:00 2001 From: rzhxeo Date: Thu, 22 May 2014 09:19:09 +0200 Subject: [PATCH 5/6] [Generic] Also try GET instead of HEAD request if server returns 404 --- youtube_dl/extractor/generic.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index ce783bf16..f8d71fd2c 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -300,7 +300,7 @@ class GenericIE(InfoExtractor): class HTTPMethodFallback(compat_urllib_request.BaseHandler): """ - Fallback to GET if HEAD is not allowed (405 HTTP error) + Fallback to GET if HEAD is not allowed (405 or 404 (youtube.com) HTTP error) """ def http_error_405(self, req, fp, code, msg, headers): fp.read() @@ -318,6 +318,11 @@ class GenericIE(InfoExtractor): origin_req_host=origin_req_host, unverifiable=True)) + def http_error_404(self, req, fp, code, msg, headers): + # prevent infinite loop + if req.get_method() == "HEAD": + return self.http_error_405(req, fp, code, msg, headers) + # Build our opener opener = compat_urllib_request.OpenerDirector() for handler in [compat_urllib_request.HTTPHandler, compat_urllib_request.HTTPDefaultErrorHandler, From 96b02aca30b4dc74bf58decdef6163bd9d557cb2 Mon Sep 17 00:00:00 2001 From: rzhxeo Date: Thu, 22 May 2014 09:20:17 +0200 Subject: [PATCH 6/6] [YoutubeUser] Simplify valid url regex --- youtube_dl/extractor/youtube.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 981ca62c0..9bca595e1 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1577,7 +1577,7 @@ class YoutubeChannelIE(InfoExtractor): class YoutubeUserIE(InfoExtractor): IE_DESC = u'YouTube.com user videos (URL or "ytuser" keyword)' - _VALID_URL = r'(?:(?:(?:https?://)?(?:\w+\.)?youtube\.com/(?:user/)?(?!(?:attribution_link|watch|results)(?:$|[^a-z_A-Z0-9-])))|ytuser:)(?!feed/)([A-Za-z0-9_-]+)' + _VALID_URL = r'(?:(?:(?:https?://)?(?:\w+\.)?youtube\.com/user/)|ytuser:)([A-Za-z0-9_-]+)' _TEMPLATE_URL = 'https://gdata.youtube.com/feeds/api/users/%s' _GDATA_PAGE_SIZE = 50 _GDATA_URL = 'https://gdata.youtube.com/feeds/api/users/%s/uploads?max-results=%d&start-index=%d&alt=json'