diff --git a/src/you_get/common.py b/src/you_get/common.py index 03946bf3..1cb33dc3 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -499,6 +499,24 @@ class DummyProgressBar: def done(self): pass +def get_output_filename(urls, title, ext, output_dir, merge): + merged_ext = ext + if (len(urls) > 1) and merge: + from .processor.ffmpeg import has_ffmpeg_installed + if ext in ['flv', 'f4v']: + if has_ffmpeg_installed(): + merged_ext = 'mp4' + else: + merged_ext = 'flv' + elif ext == 'mp4': + merged_ext = 'mp4' + elif ext == 'ts': + if has_ffmpeg_installed(): + merged_ext = 'mkv' + else: + merged_ext = 'ts' + return '%s.%s' % (title, merged_ext) + def download_urls(urls, title, ext, total_size, output_dir='.', refer=None, merge=True, faker=False): assert urls if dry_run: @@ -519,12 +537,12 @@ def download_urls(urls, title, ext, total_size, output_dir='.', refer=None, merg pass title = tr(get_filename(title)) + output_filename = get_output_filename(urls, title, ext, output_dir, merge) + output_filepath = os.path.join(output_dir, output_filename) - filename = '%s.%s' % (title, ext) - filepath = os.path.join(output_dir, filename) if total_size: - if not force and os.path.exists(filepath) and os.path.getsize(filepath) >= total_size * 0.9: - print('Skipping %s: file already exists' % filepath) + if not force and os.path.exists(output_filepath) and os.path.getsize(output_filepath) >= total_size * 0.9: + print('Skipping %s: file already exists' % output_filepath) print() return bar = SimpleProgressBar(total_size, len(urls)) @@ -533,8 +551,8 @@ def download_urls(urls, title, ext, total_size, output_dir='.', refer=None, merg if len(urls) == 1: url = urls[0] - print('Downloading %s ...' % tr(filename)) - url_save(url, filepath, bar, refer = refer, faker = faker) + print('Downloading %s ...' % tr(output_filename)) + url_save(url, output_filepath, bar, refer = refer, faker = faker) bar.done() else: parts = [] @@ -556,10 +574,10 @@ def download_urls(urls, title, ext, total_size, output_dir='.', refer=None, merg from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_flv_to_mp4 - ffmpeg_concat_flv_to_mp4(parts, os.path.join(output_dir, title + '.mp4')) + ffmpeg_concat_flv_to_mp4(parts, output_filepath) else: from .processor.join_flv import concat_flv - concat_flv(parts, os.path.join(output_dir, title + '.flv')) + concat_flv(parts, output_filepath) except: raise else: @@ -571,10 +589,10 @@ def download_urls(urls, title, ext, total_size, output_dir='.', refer=None, merg from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_mp4_to_mp4 - ffmpeg_concat_mp4_to_mp4(parts, os.path.join(output_dir, title + '.mp4')) + ffmpeg_concat_mp4_to_mp4(parts, output_filepath) else: from .processor.join_mp4 import concat_mp4 - concat_mp4(parts, os.path.join(output_dir, title + '.mp4')) + concat_mp4(parts, output_filepath) except: raise else: @@ -586,10 +604,10 @@ def download_urls(urls, title, ext, total_size, output_dir='.', refer=None, merg from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_ts_to_mkv - ffmpeg_concat_ts_to_mkv(parts, os.path.join(output_dir, title + '.mkv')) + ffmpeg_concat_ts_to_mkv(parts, output_filepath) else: from .processor.join_ts import concat_ts - concat_ts(parts, os.path.join(output_dir, title + '.ts')) + concat_ts(parts, output_filepath) except: raise else: