]>
jfr.im git - yt-dlp.git/blob - yt_dlp/postprocessor/execafterdownload.py
1 from __future__
import unicode_literals
6 from .common
import PostProcessor
7 from ..compat
import compat_shlex_quote
15 class ExecAfterDownloadPP(PostProcessor
):
17 def __init__(self
, downloader
, exec_cmd
):
18 super(ExecAfterDownloadPP
, self
).__init
__(downloader
)
19 self
.exec_cmd
= exec_cmd
25 def parse_cmd(self
, cmd
, info
):
26 # If no %(key)s is found, replace {} for backard compatibility
27 if not re
.search(FORMAT_RE
.format(r
'[-\w>.+]+'), cmd
):
30 return cmd
.replace('{}', compat_shlex_quote(info
['filepath']))
32 tmpl
, info_copy
= self
._downloader
.prepare_outtmpl(cmd
, info
)
33 return tmpl
% info_copy
36 cmd
= self
.parse_cmd(self
.exec_cmd
, info
)
37 self
.to_screen('Executing command: %s' % cmd
)
38 retCode
= subprocess
.call(encodeArgument(cmd
), shell
=True)
40 raise PostProcessingError('Command returned error code %d' % retCode
)