From 94748d483db96ecda4966d4cf172ecc7a6491e54 Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Tue, 1 Oct 2024 11:18:23 -0400 Subject: [PATCH] validators: allow application/octet-stream video as MP4s --- lib/plugins/validators/async/21_checkContentType.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/plugins/validators/async/21_checkContentType.js b/lib/plugins/validators/async/21_checkContentType.js index dfc308cef..4a08a66f8 100644 --- a/lib/plugins/validators/async/21_checkContentType.js +++ b/lib/plugins/validators/async/21_checkContentType.js @@ -107,6 +107,16 @@ export default { link.error = 'Adobe Flash Player is no longer supported'; } + if (data.type?.toLowerCase() == 'application/octet-stream' + && link.rel?.indexOf(CONFIG.R.player) > -1 + && link.accept && link.accept instanceof Array + && link.accept.indexOf('video/*') > -1) { + data.type = CONFIG.T.video_mp4; + if (!link.message) { + link.message = 'Showing application/octet-stream as MP4'; + } + } + /** accept-ranges is misconfigured in many cases (especially via CloudFront). Plus, browsers would try and download first range of MP4 file anyway, even if the header isn't set if (data.type == CONFIG.T.video_mp4 && !/bytes/i.test(data.accept_ranges)) { link.error = 'MP4s should allow partial download via accept ranges';