From af6793f804140ddedb62227155aa457f16d1cd93 Mon Sep 17 00:00:00 2001
From: pukkandan <pukkandan.ytdlp@gmail.com>
Date: Mon, 24 Jan 2022 01:15:44 +0530
Subject: [PATCH] [downloader/ffmpeg] Handle unknown formats better

---
 yt_dlp/downloader/external.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/yt_dlp/downloader/external.py b/yt_dlp/downloader/external.py
index 15ac72464..f4fdcf120 100644
--- a/yt_dlp/downloader/external.py
+++ b/yt_dlp/downloader/external.py
@@ -17,11 +17,13 @@ from ..utils import (
     cli_valueless_option,
     cli_bool_option,
     _configuration_args,
+    determine_ext,
     encodeFilename,
     encodeArgument,
     handle_youtubedl_headers,
     check_executable,
     Popen,
+    remove_end,
 )
 
 
@@ -463,6 +465,15 @@ class FFmpegFD(ExternalFD):
             args += ['-f', 'flv']
         elif ext == 'mp4' and tmpfilename == '-':
             args += ['-f', 'mpegts']
+        elif ext == 'unknown_video':
+            ext = determine_ext(remove_end(tmpfilename, '.part'))
+            if ext == 'unknown_video':
+                self.report_warning(
+                    'The video format is unknown and cannot be downloaded by ffmpeg. '
+                    'Explicitly set the extension in the filename to attempt download in that format')
+            else:
+                self.report_warning(f'The video format is unknown. Trying to download as {ext} according to the filename')
+                args += ['-f', EXT_TO_OUT_FORMATS.get(ext, ext)]
         else:
             args += ['-f', EXT_TO_OUT_FORMATS.get(ext, ext)]