youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 9cb9a5df7794579c38efff1c4b1451a7d13da3c1
parent 5035536e3f32d4c47b2d3067c12e074cb9a4a199
Author: Sergey M․ <dstftw@gmail.com>
Date:   Sun, 22 Nov 2015 17:27:13 +0600

[utils] Check ext with trailing slash against the list of known extensions

Diffstat:
Mtest/test_utils.py | 3+++
Myoutube_dl/utils.py | 17++++++++++++++++-
2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/test/test_utils.py b/test/test_utils.py @@ -242,6 +242,9 @@ class TestUtil(unittest.TestCase): def test_determine_ext(self): self.assertEqual(determine_ext('http://example.com/foo/bar.mp4/?download'), 'mp4') self.assertEqual(determine_ext('http://example.com/foo/bar/?download', None), None) + self.assertEqual(determine_ext('http://example.com/foo/bar.nonext/?download', None), None) + self.assertEqual(determine_ext('http://example.com/foo/bar/mp4?download', None), None) + self.assertEqual(determine_ext('http://example.com/foo/bar.m3u8//?download'), 'm3u8') def test_find_xpath_attr(self): testxml = '''<root> diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py @@ -922,9 +922,24 @@ def unified_strdate(date_str, day_first=True): def determine_ext(url, default_ext='unknown_video'): if url is None: return default_ext - guess = url.partition('?')[0].rpartition('.')[2].rstrip('/') + guess = url.partition('?')[0].rpartition('.')[2] if re.match(r'^[A-Za-z0-9]+$', guess): return guess + elif guess.rstrip('/') in ( + 'mp4', 'm4a', 'm4p', 'm4b', 'm4r', 'm4v', 'aac', + 'flv', 'f4v', 'f4a', 'f4b', + 'webm', 'ogg', 'ogv', 'oga', 'ogx', 'spx', 'opus', + 'mkv', 'mka', 'mk3d', + 'avi', 'divx', + 'mov', + 'asf', 'wmv', 'wma', + '3gp', '3g2', + 'mp3', + 'flac', + 'ape', + 'wav', + 'f4f', 'f4m', 'm3u8', 'smil'): + return guess.rstrip('/') else: return default_ext