mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-12-25 04:35:52 +01:00
[embedsubtitle] Keep original subtitle after conversion if write_subtitles given
Closes: https://github.com/pukkandan/yt-dlp/issues/57#issuecomment-775227745 :ci skip dl
This commit is contained in:
parent
2e339f59c3
commit
cffab0eefc
@ -233,11 +233,6 @@ def parse_retries(retries):
|
|||||||
if opts.extractaudio and not opts.keepvideo and opts.format is None:
|
if opts.extractaudio and not opts.keepvideo and opts.format is None:
|
||||||
opts.format = 'bestaudio/best'
|
opts.format = 'bestaudio/best'
|
||||||
|
|
||||||
# --all-sub automatically sets --write-sub if --write-auto-sub is not given
|
|
||||||
# this was the old behaviour if only --all-sub was given.
|
|
||||||
if opts.allsubtitles and not opts.writeautomaticsub:
|
|
||||||
opts.writesubtitles = True
|
|
||||||
|
|
||||||
outtmpl = opts.outtmpl
|
outtmpl = opts.outtmpl
|
||||||
if not outtmpl:
|
if not outtmpl:
|
||||||
outtmpl = {'default': (
|
outtmpl = {'default': (
|
||||||
@ -311,9 +306,17 @@ def parse_retries(retries):
|
|||||||
'format': opts.convertsubtitles,
|
'format': opts.convertsubtitles,
|
||||||
})
|
})
|
||||||
if opts.embedsubtitles:
|
if opts.embedsubtitles:
|
||||||
|
already_have_subtitle = opts.writesubtitles
|
||||||
postprocessors.append({
|
postprocessors.append({
|
||||||
'key': 'FFmpegEmbedSubtitle',
|
'key': 'FFmpegEmbedSubtitle',
|
||||||
|
'already_have_subtitle': already_have_subtitle
|
||||||
})
|
})
|
||||||
|
if not already_have_subtitle:
|
||||||
|
opts.writesubtitles = True
|
||||||
|
# --all-sub automatically sets --write-sub if --write-auto-sub is not given
|
||||||
|
# this was the old behaviour if only --all-sub was given.
|
||||||
|
if opts.allsubtitles and not opts.writeautomaticsub:
|
||||||
|
opts.writesubtitles = True
|
||||||
if opts.embedthumbnail:
|
if opts.embedthumbnail:
|
||||||
already_have_thumbnail = opts.writethumbnail or opts.write_all_thumbnails
|
already_have_thumbnail = opts.writethumbnail or opts.write_all_thumbnails
|
||||||
postprocessors.append({
|
postprocessors.append({
|
||||||
|
@ -442,6 +442,10 @@ def run(self, information):
|
|||||||
|
|
||||||
|
|
||||||
class FFmpegEmbedSubtitlePP(FFmpegPostProcessor):
|
class FFmpegEmbedSubtitlePP(FFmpegPostProcessor):
|
||||||
|
def __init__(self, downloader=None, already_have_subtitle=False):
|
||||||
|
super(FFmpegEmbedSubtitlePP, self).__init__(downloader)
|
||||||
|
self._already_have_subtitle = already_have_subtitle
|
||||||
|
|
||||||
def run(self, information):
|
def run(self, information):
|
||||||
if information['ext'] not in ('mp4', 'webm', 'mkv'):
|
if information['ext'] not in ('mp4', 'webm', 'mkv'):
|
||||||
self.to_screen('Subtitles can only be embedded in mp4, webm or mkv files')
|
self.to_screen('Subtitles can only be embedded in mp4, webm or mkv files')
|
||||||
@ -501,7 +505,8 @@ def run(self, information):
|
|||||||
os.remove(encodeFilename(filename))
|
os.remove(encodeFilename(filename))
|
||||||
os.rename(encodeFilename(temp_filename), encodeFilename(filename))
|
os.rename(encodeFilename(temp_filename), encodeFilename(filename))
|
||||||
|
|
||||||
return sub_filenames, information
|
files_to_delete = [] if self._already_have_subtitle else sub_filenames
|
||||||
|
return files_to_delete, information
|
||||||
|
|
||||||
|
|
||||||
class FFmpegMetadataPP(FFmpegPostProcessor):
|
class FFmpegMetadataPP(FFmpegPostProcessor):
|
||||||
|
Loading…
Reference in New Issue
Block a user