[openload] Improve ext extraction
authorEnes <enessolak99@gmail.com>
Fri, 1 Jun 2018 17:16:22 +0000 (20:16 +0300)
committerSergey M <dstftw@gmail.com>
Fri, 1 Jun 2018 17:16:22 +0000 (00:16 +0700)
test/test_utils.py
youtube_dl/extractor/openload.py
youtube_dl/utils.py

index f2b51131c2aa6a9b3570343f93ac0148a80a5c84..e63af01668ceb84cc2d8452490bc94eb48791f40 100644 (file)
@@ -361,6 +361,7 @@ class TestUtil(unittest.TestCase):
         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')
+        self.assertEqual(determine_ext('foobar', None), None)
 
     def test_find_xpath_attr(self):
         testxml = '''<root>
index 702f86b4486383f79a315d6ef4b1f8677fb574a1..d264fe20664523a2d0f6387fe1de1f242663b831 100644 (file)
@@ -307,6 +307,10 @@ class OpenloadIE(InfoExtractor):
     }, {
         'url': 'https://oload.download/f/kUEfGclsU9o',
         'only_matching': True,
+    }, {
+        # Its title has not got its extension but url has it
+        'url': 'https://oload.download/f/N4Otkw39VCw/Tomb.Raider.2018.HDRip.XviD.AC3-EVO.avi.mp4',
+        'only_matching': True,
     }]
 
     _USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
@@ -368,8 +372,7 @@ class OpenloadIE(InfoExtractor):
             'title': title,
             'thumbnail': entry.get('thumbnail') or self._og_search_thumbnail(webpage, default=None),
             'url': video_url,
-            # Seems all videos have extensions in their titles
-            'ext': determine_ext(title, 'mp4'),
+            'ext': determine_ext(title, None) or determine_ext(url, 'mp4'),
             'subtitles': subtitles,
             'http_headers': headers,
         }
index 63f24c0b646635b65f62e1b162dcdebf8e6a72d9..6a3199fb992b72e70b6588d3999e9c6ec0a87890 100644 (file)
@@ -1228,7 +1228,7 @@ def unified_timestamp(date_str, day_first=True):
 
 
 def determine_ext(url, default_ext='unknown_video'):
-    if url is None:
+    if url is None or '.' not in url:
         return default_ext
     guess = url.partition('?')[0].rpartition('.')[2]
     if re.match(r'^[A-Za-z0-9]+$', guess):