|
@@ -70,6 +70,21 @@ ENGLISH_MONTH_NAMES = [
|
|
|
'January', 'February', 'March', 'April', 'May', 'June',
|
|
|
'July', 'August', 'September', 'October', 'November', 'December']
|
|
|
|
|
|
+KNOWN_EXTENSIONS = (
|
|
|
+ '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')
|
|
|
+
|
|
|
|
|
|
def preferredencoding():
|
|
|
"""Get preferred encoding.
|
|
@@ -942,20 +957,8 @@ def determine_ext(url, default_ext='unknown_video'):
|
|
|
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'):
|
|
|
+ # Try extract ext from URLs like http://example.com/foo/bar.mp4/?download
|
|
|
+ elif guess.rstrip('/') in KNOWN_EXTENSIONS:
|
|
|
return guess.rstrip('/')
|
|
|
else:
|
|
|
return default_ext
|