diff options
author | Unknown <blackjack4494@web.de> | 2020-09-30 05:50:09 +0200 |
---|---|---|
committer | Unknown <blackjack4494@web.de> | 2020-09-30 05:50:09 +0200 |
commit | bdc3fd2f35c67c513dfc2843d5168f905d7bd5c8 (patch) | |
tree | d0f909a00a17c23e0921af2e9f0041f1ea328480 | |
parent | 6923b5381fe9fe4b8d120d883b41a22e99f52f63 (diff) | |
download | hypervideo-pre-bdc3fd2f35c67c513dfc2843d5168f905d7bd5c8.tar.lz hypervideo-pre-bdc3fd2f35c67c513dfc2843d5168f905d7bd5c8.tar.xz hypervideo-pre-bdc3fd2f35c67c513dfc2843d5168f905d7bd5c8.zip |
[core] add option to trim file name length with integer
https://github.com/blackjack4494/youtube-dlc/issues/85
-rw-r--r-- | youtube_dlc/YoutubeDL.py | 13 | ||||
-rw-r--r-- | youtube_dlc/__init__.py | 1 | ||||
-rw-r--r-- | youtube_dlc/options.py | 3 |
3 files changed, 16 insertions, 1 deletions
diff --git a/youtube_dlc/YoutubeDL.py b/youtube_dlc/YoutubeDL.py index 0bb5ff1e9..fc351db0d 100644 --- a/youtube_dlc/YoutubeDL.py +++ b/youtube_dlc/YoutubeDL.py @@ -164,7 +164,8 @@ class YoutubeDL(object): simulate: Do not download the video files. format: Video format code. See options.py for more information. outtmpl: Template for output names. - restrictfilenames: Do not allow "&" and spaces in file names + restrictfilenames: Do not allow "&" and spaces in file names. + trim_file_name: Limit length of filename (extension excluded). ignoreerrors: Do not stop on download errors. force_generic_extractor: Force downloader to use the generic extractor nooverwrites: Prevent overwriting files. @@ -732,6 +733,16 @@ class YoutubeDL(object): # title "Hello $PATH", we don't want `$PATH` to be expanded. filename = expand_path(outtmpl).replace(sep, '') % template_dict + # https://github.com/blackjack4494/youtube-dlc/issues/85 + trim_file_name = self.params.get('trim_file_name', False) + if trim_file_name: + fn_groups = filename.rsplit('.') + ext = fn_groups[-1] + sub_ext = '' + if len(fn_groups) > 2: + sub_ext = fn_groups[-2] + filename = '.'.join(filter(None, [fn_groups[0][:trim_file_name], sub_ext, ext])) + # Temporary fix for #4787 # 'Treat' all problem characters by passing filename through preferredencoding # to workaround encoding issues with subprocess on python2 @ Windows diff --git a/youtube_dlc/__init__.py b/youtube_dlc/__init__.py index 3057f977f..105786bc0 100644 --- a/youtube_dlc/__init__.py +++ b/youtube_dlc/__init__.py @@ -390,6 +390,7 @@ def _real_main(argv=None): 'rejecttitle': decodeOption(opts.rejecttitle), 'max_downloads': opts.max_downloads, 'prefer_free_formats': opts.prefer_free_formats, + 'trim_file_name': opts.trim_file_name, 'verbose': opts.verbose, 'dump_intermediate_pages': opts.dump_intermediate_pages, 'write_pages': opts.write_pages, diff --git a/youtube_dlc/options.py b/youtube_dlc/options.py index e0651b7ba..1d7a7fed2 100644 --- a/youtube_dlc/options.py +++ b/youtube_dlc/options.py @@ -775,6 +775,9 @@ def parseOpts(overrideArguments=None): '--rm-cache-dir', action='store_true', dest='rm_cachedir', help='Delete all filesystem cache files') + filesystem.add_option( + '--trim-file-name', dest='trim_file_name', default=0, type=int, + help='Limit the filename length (extension excluded)') thumbnail = optparse.OptionGroup(parser, 'Thumbnail images') thumbnail.add_option( |