Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Backups
youtube-dl
Commits
824fa511
Unverified
Commit
824fa511
authored
Oct 18, 2019
by
Sergey M․
Browse files
[utils] Improve subtitles_filename (closes #22753)
parent
34e3885b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
13 additions
and
7 deletions
+13
-7
test/test_utils.py
test/test_utils.py
+6
-0
youtube_dl/YoutubeDL.py
youtube_dl/YoutubeDL.py
+1
-1
youtube_dl/postprocessor/ffmpeg.py
youtube_dl/postprocessor/ffmpeg.py
+4
-4
youtube_dl/utils.py
youtube_dl/utils.py
+2
-2
No files found.
test/test_utils.py
View file @
824fa511
...
...
@@ -74,6 +74,7 @@ from youtube_dl.utils import (
str_to_int
,
strip_jsonp
,
strip_or_none
,
subtitles_filename
,
timeconvert
,
unescapeHTML
,
unified_strdate
,
...
...
@@ -261,6 +262,11 @@ class TestUtil(unittest.TestCase):
self
.
assertEqual
(
replace_extension
(
'.abc'
,
'temp'
),
'.abc.temp'
)
self
.
assertEqual
(
replace_extension
(
'.abc.ext'
,
'temp'
),
'.abc.temp'
)
def
test_subtitles_filename
(
self
):
self
.
assertEqual
(
subtitles_filename
(
'abc.ext'
,
'en'
,
'vtt'
),
'abc.en.vtt'
)
self
.
assertEqual
(
subtitles_filename
(
'abc.ext'
,
'en'
,
'vtt'
,
'ext'
),
'abc.en.vtt'
)
self
.
assertEqual
(
subtitles_filename
(
'abc.unexpected_ext'
,
'en'
,
'vtt'
,
'ext'
),
'abc.unexpected_ext.en.vtt'
)
def
test_remove_start
(
self
):
self
.
assertEqual
(
remove_start
(
None
,
'A - '
),
None
)
self
.
assertEqual
(
remove_start
(
'A - B'
,
'A - '
),
'B'
)
...
...
youtube_dl/YoutubeDL.py
View file @
824fa511
...
...
@@ -1814,7 +1814,7 @@ class YoutubeDL(object):
ie
=
self
.
get_info_extractor
(
info_dict
[
'extractor_key'
])
for
sub_lang
,
sub_info
in
subtitles
.
items
():
sub_format
=
sub_info
[
'ext'
]
sub_filename
=
subtitles_filename
(
filename
,
sub_lang
,
sub_format
)
sub_filename
=
subtitles_filename
(
filename
,
sub_lang
,
sub_format
,
info_dict
.
get
(
'ext'
)
)
if
self
.
params
.
get
(
'nooverwrites'
,
False
)
and
os
.
path
.
exists
(
encodeFilename
(
sub_filename
)):
self
.
to_screen
(
'[info] Video subtitle %s.%s is already present'
%
(
sub_lang
,
sub_format
))
else
:
...
...
youtube_dl/postprocessor/ffmpeg.py
View file @
824fa511
...
...
@@ -393,7 +393,7 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor):
sub_ext
=
sub_info
[
'ext'
]
if
ext
!=
'webm'
or
ext
==
'webm'
and
sub_ext
==
'vtt'
:
sub_langs
.
append
(
lang
)
sub_filenames
.
append
(
subtitles_filename
(
filename
,
lang
,
sub_ext
))
sub_filenames
.
append
(
subtitles_filename
(
filename
,
lang
,
sub_
ext
,
ext
))
else
:
if
not
webm_vtt_warn
and
ext
==
'webm'
and
sub_ext
!=
'vtt'
:
webm_vtt_warn
=
True
...
...
@@ -606,9 +606,9 @@ class FFmpegSubtitlesConvertorPP(FFmpegPostProcessor):
self
.
_downloader
.
to_screen
(
'[ffmpeg] Subtitle file for %s is already in the requested format'
%
new_ext
)
continue
old_file
=
subtitles_filename
(
filename
,
lang
,
ext
)
old_file
=
subtitles_filename
(
filename
,
lang
,
ext
,
info
.
get
(
'ext'
)
)
sub_filenames
.
append
(
old_file
)
new_file
=
subtitles_filename
(
filename
,
lang
,
new_ext
)
new_file
=
subtitles_filename
(
filename
,
lang
,
new_ext
,
info
.
get
(
'ext'
)
)
if
ext
in
(
'dfxp'
,
'ttml'
,
'tt'
):
self
.
_downloader
.
report_warning
(
...
...
@@ -616,7 +616,7 @@ class FFmpegSubtitlesConvertorPP(FFmpegPostProcessor):
'which results in style information loss'
)
dfxp_file
=
old_file
srt_file
=
subtitles_filename
(
filename
,
lang
,
'srt'
)
srt_file
=
subtitles_filename
(
filename
,
lang
,
'srt'
,
info
.
get
(
'ext'
)
)
with
open
(
dfxp_file
,
'rb'
)
as
f
:
srt_data
=
dfxp2srt
(
f
.
read
())
...
...
youtube_dl/utils.py
View file @
824fa511
...
...
@@ -2906,8 +2906,8 @@ def determine_ext(url, default_ext='unknown_video'):
return
default_ext
def
subtitles_filename
(
filename
,
sub_lang
,
sub_format
):
return
filename
.
rsplit
(
'.'
,
1
)[
0
]
+
'.'
+
sub_lang
+
'.'
+
sub_format
def
subtitles_filename
(
filename
,
sub_lang
,
sub_format
,
expected_real_ext
=
None
):
return
replace_extension
(
filename
,
sub_lang
+
'.'
+
sub_format
,
expected_real_ext
)
def
date_from_str
(
date_str
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment