aboutsummaryrefslogtreecommitdiffstats
path: root/youtube_dl/postprocessor/execafterdownload.py
diff options
context:
space:
mode:
authorJames Taylor <user234683@users.noreply.github.com>2018-07-11 01:31:44 -0700
committerJames Taylor <user234683@users.noreply.github.com>2018-07-11 01:31:44 -0700
commitaea11c407f7be904037183da152c4cdf561cd65e (patch)
tree5fad52326feee68c3771becee44fdf24ceebca05 /youtube_dl/postprocessor/execafterdownload.py
parent2b308ec9f0fd1ba296db7bcdcea9f93aebf6eaa1 (diff)
downloadyt-local-aea11c407f7be904037183da152c4cdf561cd65e.tar.lz
yt-local-aea11c407f7be904037183da152c4cdf561cd65e.tar.xz
yt-local-aea11c407f7be904037183da152c4cdf561cd65e.zip
track custom youtube-dl distribution
Diffstat (limited to 'youtube_dl/postprocessor/execafterdownload.py')
-rw-r--r--youtube_dl/postprocessor/execafterdownload.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/youtube_dl/postprocessor/execafterdownload.py b/youtube_dl/postprocessor/execafterdownload.py
new file mode 100644
index 0000000..64dabe7
--- /dev/null
+++ b/youtube_dl/postprocessor/execafterdownload.py
@@ -0,0 +1,31 @@
+from __future__ import unicode_literals
+
+import subprocess
+
+from .common import PostProcessor
+from ..compat import compat_shlex_quote
+from ..utils import (
+ encodeArgument,
+ PostProcessingError,
+)
+
+
+class ExecAfterDownloadPP(PostProcessor):
+ def __init__(self, downloader, exec_cmd):
+ super(ExecAfterDownloadPP, self).__init__(downloader)
+ self.exec_cmd = exec_cmd
+
+ def run(self, information):
+ cmd = self.exec_cmd
+ if '{}' not in cmd:
+ cmd += ' {}'
+
+ cmd = cmd.replace('{}', compat_shlex_quote(information['filepath']))
+
+ self._downloader.to_screen('[exec] Executing command: %s' % cmd)
+ retCode = subprocess.call(encodeArgument(cmd), shell=True)
+ if retCode != 0:
+ raise PostProcessingError(
+ 'Command returned error code %d' % retCode)
+
+ return [], information