From 2803574b2bd9afa0e08c8cabd81f58498adec856 Mon Sep 17 00:00:00 2001
From: VisualPlugin <aboshadi.n.ahmed@gmail.com>
Date: Fri, 25 Aug 2023 07:55:43 +0000
Subject: [PATCH 1/2] Added 'kwargs' option to 'overwrite_output'

---
 ffmpeg/_ffmpeg.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ffmpeg/_ffmpeg.py b/ffmpeg/_ffmpeg.py
index 007624b..00a5c50 100644
--- a/ffmpeg/_ffmpeg.py
+++ b/ffmpeg/_ffmpeg.py
@@ -39,12 +39,12 @@ def global_args(stream, *args):
 
 
 @output_operator()
-def overwrite_output(stream):
+def overwrite_output(stream, **kwargs):
     """Overwrite output files without asking (ffmpeg ``-y`` option)
 
     Official documentation: `Main options <https://ffmpeg.org/ffmpeg.html#Main-options>`__
     """
-    return GlobalNode(stream, overwrite_output.__name__, ['-y']).stream()
+    return GlobalNode(stream, overwrite_output.__name__, ['-y'], kwargs=kwargs).stream()
 
 
 @output_operator()

From 9b6d77b453a6ac34d948d76f666da7c6b12aa6ce Mon Sep 17 00:00:00 2001
From: VisualPlugin <aboshadi.n.ahmed@gmail.com>
Date: Fri, 25 Aug 2023 08:12:41 +0000
Subject: [PATCH 2/2] Update _ffmpeg.py

---
 ffmpeg/_ffmpeg.py | 47 +++++++++++++++++++++++++----------------------
 1 file changed, 25 insertions(+), 22 deletions(-)

diff --git a/ffmpeg/_ffmpeg.py b/ffmpeg/_ffmpeg.py
index 00a5c50..299a226 100644
--- a/ffmpeg/_ffmpeg.py
+++ b/ffmpeg/_ffmpeg.py
@@ -13,6 +13,20 @@ from .nodes import (
 )
 
 
+def sanitize_args(streams_and_filename, kwargs):
+    streams_and_filename = list(streams_and_filename)
+    if 'filename' not in kwargs:
+        if not isinstance(streams_and_filename[-1], basestring):
+            raise ValueError('A filename must be provided')
+        kwargs['filename'] = streams_and_filename.pop(-1)
+
+    fmt = kwargs.pop('f', None)
+    if fmt:
+        if 'format' in kwargs:
+            raise ValueError("Can't specify both `format` and `f` kwargs")
+        kwargs['format'] = fmt
+    return (streams_and_filename, kwargs)
+
 def input(filename, **kwargs):
     """Input file URL (ffmpeg ``-i`` option)
 
@@ -38,21 +52,11 @@ def global_args(stream, *args):
     return GlobalNode(stream, global_args.__name__, args).stream()
 
 
-@output_operator()
-def overwrite_output(stream, **kwargs):
-    """Overwrite output files without asking (ffmpeg ``-y`` option)
-
-    Official documentation: `Main options <https://ffmpeg.org/ffmpeg.html#Main-options>`__
-    """
-    return GlobalNode(stream, overwrite_output.__name__, ['-y'], kwargs=kwargs).stream()
-
-
 @output_operator()
 def merge_outputs(*streams):
     """Include all given outputs in one ffmpeg command line"""
     return MergeOutputsNode(streams, merge_outputs.__name__).stream()
 
-
 @filter_operator()
 def output(*streams_and_filename, **kwargs):
     """Output file URL
@@ -77,19 +81,18 @@ def output(*streams_and_filename, **kwargs):
 
     Official documentation: `Synopsis <https://ffmpeg.org/ffmpeg.html#Synopsis>`__
     """
-    streams_and_filename = list(streams_and_filename)
-    if 'filename' not in kwargs:
-        if not isinstance(streams_and_filename[-1], basestring):
-            raise ValueError('A filename must be provided')
-        kwargs['filename'] = streams_and_filename.pop(-1)
-    streams = streams_and_filename
+    streams_and_filename, kwargs = sanitize_args(streams_and_filename, kwargs)
+    return OutputNode(streams_and_filename, output.__name__, kwargs=kwargs).stream()
 
-    fmt = kwargs.pop('f', None)
-    if fmt:
-        if 'format' in kwargs:
-            raise ValueError("Can't specify both `format` and `f` kwargs")
-        kwargs['format'] = fmt
-    return OutputNode(streams, output.__name__, kwargs=kwargs).stream()
+
+@output_operator()
+def overwrite_output(*streams_and_filename, **kwargs):
+    """Overwrite output files without asking (ffmpeg ``-y`` option)
+
+    Official documentation: `Main options <https://ffmpeg.org/ffmpeg.html#Main-options>`__
+    """
+    streams_and_filename, kwargs = sanitize_args(streams_and_filename, kwargs)
+    return GlobalNode(streams_and_filename, overwrite_output.__name__, ['-y'], kwargs=kwargs).stream()
 
 
 __all__ = ['input', 'merge_outputs', 'output', 'overwrite_output']