refactor --output-filename argument, removed the global variable.

Signed-off-by: hanlz <7954178+hanlz@users.noreply.github.com>
This commit is contained in:
hanlz 2018-05-25 16:55:54 +08:00
parent 582d89e2f2
commit c9aad72034
9 changed files with 15 additions and 15 deletions

View File

@ -134,7 +134,6 @@ force = False
player = None
extractor_proxy = None
cookies = None
output_filename = None
auto_rename = False
fake_headers = {
@ -838,9 +837,8 @@ class DummyProgressBar:
pass
def get_output_filename(urls, title, ext, output_dir, merge):
def get_output_filename(urls, title, ext, output_dir, merge, output_filename=None):
# lame hack for the --output-filename option
global output_filename
if output_filename:
if ext:
return output_filename + '.' + ext
@ -897,7 +895,7 @@ def download_urls(
pass
title = tr(get_filename(title))
output_filename = get_output_filename(urls, title, ext, output_dir, merge)
output_filename = get_output_filename(urls, title, ext, output_dir, merge, **kwargs)
output_filepath = os.path.join(output_dir, output_filename)
if total_size:
@ -1029,7 +1027,7 @@ def download_rtmp_url(
def download_url_ffmpeg(
url, title, ext, params={}, total_size=0, output_dir='.', refer=None,
merge=True, faker=False, stream=True
merge=True, faker=False, stream=True, output_filename=None
):
assert url
if dry_run:
@ -1046,7 +1044,7 @@ def download_url_ffmpeg(
from .processor.ffmpeg import has_ffmpeg_installed, ffmpeg_download_stream
assert has_ffmpeg_installed(), 'FFmpeg not installed.'
global output_filename
# global output_filename
if output_filename:
dotPos = output_filename.rfind('.')
if dotPos > 0:
@ -1435,7 +1433,6 @@ def script_main(download, download_playlist, **kwargs):
global json_output
global player
global extractor_proxy
global output_filename
global auto_rename
output_filename = args.output_filename
@ -1497,6 +1494,8 @@ def script_main(download, download_playlist, **kwargs):
extra['extractor_proxy'] = extractor_proxy
if stream_id:
extra['stream_id'] = stream_id
if output_filename:
extra['output_filename'] = output_filename
download_main(
download, download_playlist,
URLs, args.playlist,

3
src/you_get/extractor.py Normal file → Executable file
View File

@ -225,7 +225,8 @@ class VideoExtractor():
download_urls(urls, self.title, ext, total_size, headers=headers,
output_dir=kwargs['output_dir'],
merge=kwargs['merge'],
av=stream_id in self.dash_streams)
av=stream_id in self.dash_streams,
output_filename=kwargs.get('output_filename'))
if 'caption' not in kwargs or not kwargs['caption']:
print('Skipping captions or danmuku.')
return

2
src/you_get/extractors/douyutv.py Normal file → Executable file
View File

@ -74,7 +74,7 @@ def douyutv_download(url, output_dir='.', merge=True, info_only=False, **kwargs)
print_info(site_info, title, 'flv', float('inf'))
if not info_only:
download_url_ffmpeg(real_url, title, 'flv', params={}, output_dir=output_dir, merge=merge)
download_url_ffmpeg(real_url, title, 'flv', params={}, output_dir=output_dir, merge=merge, **kwargs)
site_info = "douyu.com"

2
src/you_get/extractors/huomaotv.py Normal file → Executable file
View File

@ -28,7 +28,7 @@ def huomaotv_download(url, output_dir='.', merge=True, info_only=False, **kwargs
print_info(site_info, title, 'm3u8', float('inf'))
if not info_only:
download_url_ffmpeg(m3u8_url, title, 'm3u8', None, output_dir=output_dir, merge=merge)
download_url_ffmpeg(m3u8_url, title, 'm3u8', None, output_dir=output_dir, merge=merge, **kwargs)
site_info = 'huomao.com'

2
src/you_get/extractors/iqiyi.py Normal file → Executable file
View File

@ -206,7 +206,7 @@ class Iqiyi(VideoExtractor):
# For legacy main()
#Here's the change!!
download_url_ffmpeg(urls[0], self.title, 'mp4', output_dir=kwargs['output_dir'], merge=kwargs['merge'], stream=False)
download_url_ffmpeg(urls[0], self.title, 'mp4', output_dir=kwargs['output_dir'], merge=kwargs['merge'], stream=False, **kwargs)
if not kwargs['caption']:
print('Skipping captions.')

2
src/you_get/extractors/showroom.py Normal file → Executable file
View File

@ -53,7 +53,7 @@ def showroom_download_by_room_id(room_id, output_dir = '.', merge = False, info_
type_, ext, size = url_info(stream_url)
print_info(site_info, title, type_, size)
if not info_only:
download_url_ffmpeg(url=stream_url, title=title, ext= 'mp4', output_dir=output_dir)
download_url_ffmpeg(url=stream_url, title=title, ext= 'mp4', output_dir=output_dir, **kwargs)
#----------------------------------------------------------------------

2
src/you_get/extractors/universal.py Normal file → Executable file
View File

@ -52,7 +52,7 @@ def universal_download(url, output_dir='.', merge=True, info_only=False, **kwarg
print_info(site_info, page_title, type_, size)
if not info_only:
download_url_ffmpeg(url=hls_url, title=page_title,
ext='mp4', output_dir=output_dir)
ext='mp4', output_dir=output_dir, **kwargs)
return
# most common media file extensions on the Internet

2
src/you_get/extractors/youtube.py Normal file → Executable file
View File

@ -205,7 +205,7 @@ class YouTube(VideoExtractor):
if 'info_only' in kwargs and kwargs['info_only']:
return
else:
download_url_ffmpeg(hlsvp, self.title, 'mp4')
download_url_ffmpeg(hlsvp, self.title, 'mp4', **kwargs)
exit(0)
for stream in stream_list:

2
src/you_get/extractors/zhanqi.py Normal file → Executable file
View File

@ -33,7 +33,7 @@ def zhanqi_live(room_id, merge=True, output_dir='.', info_only=False, **kwargs):
print_info(site_info, title, 'm3u8', 0, m3u8_url=m3u8_url, m3u8_type='master')
if not info_only:
download_url_ffmpeg(m3u8_url, title, 'mp4', output_dir=output_dir, merge=merge)
download_url_ffmpeg(m3u8_url, title, 'mp4', output_dir=output_dir, merge=merge, **kwargs)
def zhanqi_video(video_id, output_dir='.', info_only=False, merge=True, **kwargs):
api_url = 'https://www.zhanqi.tv/api/static/v2.1/video/{}.json'.format(video_id)