aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--youtube_dlc/YoutubeDL.py24
-rw-r--r--youtube_dlc/__init__.py1
2 files changed, 25 insertions, 0 deletions
diff --git a/youtube_dlc/YoutubeDL.py b/youtube_dlc/YoutubeDL.py
index f79d31deb..4cec2298c 100644
--- a/youtube_dlc/YoutubeDL.py
+++ b/youtube_dlc/YoutubeDL.py
@@ -105,6 +105,7 @@ from .postprocessor import (
FFmpegFixupStretchedPP,
FFmpegMergerPP,
FFmpegPostProcessor,
+ FFmpegSubtitlesConvertorPP,
get_postprocessor,
)
from .version import __version__
@@ -1846,6 +1847,29 @@ class YoutubeDL(object):
(sub_lang, error_to_compat_str(err)))
continue
+ if self.params.get('skip_download', False):
+ if self.params.get('convertsubtitles', False):
+ subconv = FFmpegSubtitlesConvertorPP(self, format=self.params.get('convertsubtitles'))
+ filename_real_ext = os.path.splitext(filename)[1][1:]
+ filename_wo_ext = (
+ os.path.splitext(filename)[0]
+ if filename_real_ext == info_dict['ext']
+ else filename)
+ afilename = '%s.%s' % (filename_wo_ext, self.params.get('convertsubtitles'))
+ if subconv.available:
+ info_dict.setdefault('__postprocessors', [])
+ # info_dict['__postprocessors'].append(subconv)
+ if os.path.exists(encodeFilename(afilename)):
+ self.to_screen(
+ '[download] %s has already been downloaded and '
+ 'converted' % afilename)
+ else:
+ try:
+ self.post_process(filename, info_dict)
+ except (PostProcessingError) as err:
+ self.report_error('postprocessing: %s' % str(err))
+ return
+
if self.params.get('writeinfojson', False):
infofn = replace_extension(filename, 'info.json', info_dict.get('ext'))
if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(infofn)):
diff --git a/youtube_dlc/__init__.py b/youtube_dlc/__init__.py
index a663417da..fc11642b9 100644
--- a/youtube_dlc/__init__.py
+++ b/youtube_dlc/__init__.py
@@ -315,6 +315,7 @@ def _real_main(argv=None):
else match_filter_func(opts.match_filter))
ydl_opts = {
+ 'convertsubtitles': opts.convertsubtitles,
'usenetrc': opts.usenetrc,
'username': opts.username,
'password': opts.password,