From 58fc00e549ae293d8b5b4926b881def9f9b653e1 Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 9 Feb 2022 16:45:49 -0600 Subject: [PATCH] uploads: allow uploading iso5 .mp4 files. This is an MP4 ftyp sometimes used by Twitter. --- app/logical/media_file.rb | 3 ++- test/files/test-iso5.mp4 | Bin 0 -> 58223 bytes test/functional/uploads_controller_test.rb | 3 ++- test/unit/media_file_test.rb | 4 ++++ 4 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 test/files/test-iso5.mp4 diff --git a/app/logical/media_file.rb b/app/logical/media_file.rb index 534f91dbb..5ac19db15 100644 --- a/app/logical/media_file.rb +++ b/app/logical/media_file.rb @@ -60,10 +60,11 @@ class MediaFile # https://www.ftyps.com # isom (common) - MP4 Base Media v1 [IS0 14496-12:2003] # mp42 (common) - MP4 v2 [ISO 14496-14] + # iso5 (rare) - MP4 Base Media v5 (used by Twitter) # 3gp5 (rare) - 3GPP Media (.3GP) Release 5 # avc1 (rare) - MP4 Base w/ AVC ext [ISO 14496-12:2005] # M4V (rare) - Apple iTunes Video (https://en.wikipedia.org/wiki/M4V) - when /\A....ftyp(?:isom|3gp5|mp42|avc1|M4V)/ + when /\A....ftyp(?:isom|iso5|3gp5|mp42|avc1|M4V)/ :mp4 when /\APK\x03\x04/ :zip diff --git a/test/files/test-iso5.mp4 b/test/files/test-iso5.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..e3805f57e1c67eacc1f8723b19fa96049271d0d4 GIT binary patch literal 58223 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 literal 0 HcmV?d00001 diff --git a/test/functional/uploads_controller_test.rb b/test/functional/uploads_controller_test.rb index 0063f8959..c8ea90fa2 100644 --- a/test/functional/uploads_controller_test.rb +++ b/test/functional/uploads_controller_test.rb @@ -313,7 +313,8 @@ class UploadsControllerTest < ActionDispatch::IntegrationTest should_upload_successfully("https://pbs.twimg.com/media/DCdZ_FhUIAAYKFN?format=jpg&name=medium") should_upload_successfully("https://pbs.twimg.com/profile_banners/2371694594/1581832507/1500x500") should_upload_successfully("https://twitter.com/zeth_total/status/1355597580814585856") - # XXX should_upload_successfully("https://video.twimg.com/tweet_video/EWHWVrmVcAAp4Vw.mp4") + should_upload_successfully("https://video.twimg.com/tweet_video/FLKI6DWakAQFRkC.mp4") + should_upload_successfully("https://video.twimg.com/tweet_video/EWHWVrmVcAAp4Vw.mp4") should_upload_successfully("https://www.weibo.com/5501756072/J2UNKfbqV") should_upload_successfully("https://wx1.sinaimg.cn/mw690/0060kO5aly1gezsyt5xvhj30ok0sgtc9.jpg") diff --git a/test/unit/media_file_test.rb b/test/unit/media_file_test.rb index c1f4f9866..1f4b78194 100644 --- a/test/unit/media_file_test.rb +++ b/test/unit/media_file_test.rb @@ -97,6 +97,10 @@ class MediaFileTest < ActiveSupport::TestCase assert_equal(:mp4, MediaFile.open("test/files/test-audio.m4v").file_ext) end + should "determine the correct extension for an iso5 mp4 file" do + assert_equal(:mp4, MediaFile.open("test/files/test-iso5.mp4").file_ext) + end + should "determine the correct extension for a ugoira file" do assert_equal(:zip, MediaFile.open("test/files/ugoira.zip").file_ext) end