diff options
author | Tom-Oliver Heidel <github@tom-oliver.eu> | 2020-09-13 11:17:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-13 11:17:11 +0200 |
commit | ef0389f4266f7056a7860b06d68d2216edfe9837 (patch) | |
tree | 2dcd4646af8bcf2d97800c3a1a7998291d0561fb | |
parent | 84da5d84b0bf937877273519ea8b5f07c9444748 (diff) | |
parent | f791b4197035eaf2ef1daf11f545c38a13a0b1d5 (diff) | |
download | hypervideo-pre-ef0389f4266f7056a7860b06d68d2216edfe9837.tar.lz hypervideo-pre-ef0389f4266f7056a7860b06d68d2216edfe9837.tar.xz hypervideo-pre-ef0389f4266f7056a7860b06d68d2216edfe9837.zip |
Merge pull request #94 from blackjack4494/conv_subs_when_skipped
[youtube] Convert subs when download is skipped
-rw-r--r-- | youtube_dlc/YoutubeDL.py | 24 | ||||
-rw-r--r-- | youtube_dlc/__init__.py | 1 |
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, |