From f775c83110ac9e9166e080b58a08ccc680c41338 Mon Sep 17 00:00:00 2001
From: pukkandan <pukkandan.ytdlp@gmail.com>
Date: Sat, 14 Aug 2021 21:13:02 +0530
Subject: [PATCH] Fix `--force-overwrites` when using `-k`

For formats that need merge, the `.fxxx` files are not removed before
downloading the corresponding `.part` files. This causes the rename to fail
---
 yt_dlp/downloader/common.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/yt_dlp/downloader/common.py b/yt_dlp/downloader/common.py
index 3846a7ee59..f5f6393a62 100644
--- a/yt_dlp/downloader/common.py
+++ b/yt_dlp/downloader/common.py
@@ -204,9 +204,12 @@ class FileDownloader(object):
         return filename + '.ytdl'
 
     def try_rename(self, old_filename, new_filename):
+        if old_filename == new_filename:
+            return
         try:
-            if old_filename == new_filename:
-                return
+            if self.params.get('overwrites', False):
+                if os.path.isfile(encodeFilename(new_filename)):
+                    os.remove(encodeFilename(new_filename))
             os.rename(encodeFilename(old_filename), encodeFilename(new_filename))
         except (IOError, OSError) as err:
             self.report_error('unable to rename file: %s' % error_to_compat_str(err))