diff options
author | Sergey M․ <dstftw@gmail.com> | 2015-03-17 23:51:40 +0600 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2015-03-17 23:51:40 +0600 |
commit | 84f810160667f9129e6a8d841fae2d0e2e1fec86 (patch) | |
tree | d0b4ee9a62ef3a5b09d432ab79391e4aa2945ecf /youtube_dl/extractor/generic.py | |
parent | b1337948ebeeacfcf104d513fac5913d3a5818a7 (diff) |
[generic] Follow redirects specified by `Refresh` HTTP header
Diffstat (limited to 'youtube_dl/extractor/generic.py')
-rw-r--r-- | youtube_dl/extractor/generic.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 4e6927b08..0b8d96c27 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -1270,8 +1270,14 @@ class GenericIE(InfoExtractor): if not found: found = re.search( r'(?i)<meta\s+(?=(?:[a-z-]+="[^"]+"\s+)*http-equiv="refresh")' - r'(?:[a-z-]+="[^"]+"\s+)*?content="[0-9]{,2};url=\'?([^\'"]+)', + r'(?:[a-z-]+="[^"]+"\s+)*?content="[0-9]{,2};\s*(?:URL|url)=\'?([^\'"]+)', webpage) + if not found: + # Look also in Refresh HTTP header + refresh_header = head_response.headers.get('Refresh') + if refresh_header: + found = re.search( + r'[0-9]{,2};\s*(?:URL|url)=(.+)', refresh_header) if found: new_url = found.group(1) self.report_following_redirect(new_url) |