mirror of
https://github.com/soimort/you-get.git
synced 2025-03-13 03:17:44 +03:00
add option: --format
This commit is contained in:
parent
12dd63c310
commit
95eea9f511
@ -176,6 +176,7 @@ For a complete list of all available options, see:
|
|||||||
-i | --info Display the information of videos without downloading.
|
-i | --info Display the information of videos without downloading.
|
||||||
-u | --url Display the real URLs of videos without downloading.
|
-u | --url Display the real URLs of videos without downloading.
|
||||||
-n | --no-merge Don't merge video parts.
|
-n | --no-merge Don't merge video parts.
|
||||||
|
-F | --format <STREAM_ID> Video format code.
|
||||||
-c | --cookies Load NetScape's cookies.txt file.
|
-c | --cookies Load NetScape's cookies.txt file.
|
||||||
-o | --output-dir <PATH> Set the output directory for downloaded videos.
|
-o | --output-dir <PATH> Set the output directory for downloaded videos.
|
||||||
-p | --player <PLAYER [options]> Directly play the video with PLAYER like vlc/smplayer.
|
-p | --player <PLAYER [options]> Directly play the video with PLAYER like vlc/smplayer.
|
||||||
|
@ -184,6 +184,7 @@ For a complete list of all available options, see::
|
|||||||
-i | --info Display the information of videos without downloading.
|
-i | --info Display the information of videos without downloading.
|
||||||
-u | --url Display the real URLs of videos without downloading.
|
-u | --url Display the real URLs of videos without downloading.
|
||||||
-n | --no-merge Don't merge video parts.
|
-n | --no-merge Don't merge video parts.
|
||||||
|
-F | --format <STREAM_ID> Video format code.
|
||||||
-c | --cookies Load NetScape's cookies.txt file.
|
-c | --cookies Load NetScape's cookies.txt file.
|
||||||
-o | --output-dir <PATH> Set the output directory for downloaded videos.
|
-o | --output-dir <PATH> Set the output directory for downloaded videos.
|
||||||
-p | --player <PLAYER [options]> Directly play the video with PLAYER like vlc/smplayer.
|
-p | --player <PLAYER [options]> Directly play the video with PLAYER like vlc/smplayer.
|
||||||
|
@ -790,7 +790,7 @@ def set_http_proxy(proxy):
|
|||||||
opener = request.build_opener(proxy_support)
|
opener = request.build_opener(proxy_support)
|
||||||
request.install_opener(opener)
|
request.install_opener(opener)
|
||||||
|
|
||||||
def download_main(download, download_playlist, urls, playlist, output_dir, merge, info_only):
|
def download_main(download, download_playlist, urls, playlist, **kwargs):
|
||||||
for url in urls:
|
for url in urls:
|
||||||
if url.startswith('https://'):
|
if url.startswith('https://'):
|
||||||
url = url[8:]
|
url = url[8:]
|
||||||
@ -798,9 +798,9 @@ def download_main(download, download_playlist, urls, playlist, output_dir, merge
|
|||||||
url = 'http://' + url
|
url = 'http://' + url
|
||||||
|
|
||||||
if playlist:
|
if playlist:
|
||||||
download_playlist(url, output_dir = output_dir, merge = merge, info_only = info_only)
|
download_playlist(url, **kwargs)
|
||||||
else:
|
else:
|
||||||
download(url, output_dir = output_dir, merge = merge, info_only = info_only)
|
download(url, **kwargs)
|
||||||
|
|
||||||
def get_version():
|
def get_version():
|
||||||
try:
|
try:
|
||||||
@ -825,6 +825,7 @@ def script_main(script_name, download, download_playlist = None):
|
|||||||
-u | --url Display the real URLs of videos without downloading.
|
-u | --url Display the real URLs of videos without downloading.
|
||||||
-c | --cookies Load NetScape's cookies.txt file.
|
-c | --cookies Load NetScape's cookies.txt file.
|
||||||
-n | --no-merge Don't merge video parts.
|
-n | --no-merge Don't merge video parts.
|
||||||
|
-F | --format <STREAM_ID> Video format code.
|
||||||
-o | --output-dir <PATH> Set the output directory for downloaded videos.
|
-o | --output-dir <PATH> Set the output directory for downloaded videos.
|
||||||
-p | --player <PLAYER [options]> Directly play the video with PLAYER like vlc/smplayer.
|
-p | --player <PLAYER [options]> Directly play the video with PLAYER like vlc/smplayer.
|
||||||
-x | --http-proxy <HOST:PORT> Use specific HTTP proxy for downloading.
|
-x | --http-proxy <HOST:PORT> Use specific HTTP proxy for downloading.
|
||||||
@ -835,8 +836,8 @@ def script_main(script_name, download, download_playlist = None):
|
|||||||
--debug Show traceback on KeyboardInterrupt.
|
--debug Show traceback on KeyboardInterrupt.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
short_opts = 'Vhfiuc:nSo:p:x:y:'
|
short_opts = 'Vhfiuc:nSF:o:p:x:y:'
|
||||||
opts = ['version', 'help', 'force', 'info', 'url', 'cookies', 'no-merge', 'no-proxy', 'debug', 'sogou', 'output-dir=', 'player=', 'http-proxy=', 'extractor-proxy=', 'sogou-proxy=', 'sogou-env=']
|
opts = ['version', 'help', 'force', 'info', 'url', 'cookies', 'no-merge', 'no-proxy', 'debug', 'sogou', 'format=', 'stream=', 'output-dir=', 'player=', 'http-proxy=', 'extractor-proxy=', 'sogou-proxy=', 'sogou-env=']
|
||||||
if download_playlist:
|
if download_playlist:
|
||||||
short_opts = 'l' + short_opts
|
short_opts = 'l' + short_opts
|
||||||
opts = ['playlist'] + opts
|
opts = ['playlist'] + opts
|
||||||
@ -860,6 +861,7 @@ def script_main(script_name, download, download_playlist = None):
|
|||||||
info_only = False
|
info_only = False
|
||||||
playlist = False
|
playlist = False
|
||||||
merge = True
|
merge = True
|
||||||
|
stream_id = None
|
||||||
output_dir = '.'
|
output_dir = '.'
|
||||||
proxy = None
|
proxy = None
|
||||||
extractor_proxy = None
|
extractor_proxy = None
|
||||||
@ -890,6 +892,8 @@ def script_main(script_name, download, download_playlist = None):
|
|||||||
proxy = ''
|
proxy = ''
|
||||||
elif o in ('--debug',):
|
elif o in ('--debug',):
|
||||||
traceback = True
|
traceback = True
|
||||||
|
elif o in ('-F', '--format', '--stream'):
|
||||||
|
stream_id = a
|
||||||
elif o in ('-o', '--output-dir'):
|
elif o in ('-o', '--output-dir'):
|
||||||
output_dir = a
|
output_dir = a
|
||||||
elif o in ('-p', '--player'):
|
elif o in ('-p', '--player'):
|
||||||
@ -927,7 +931,10 @@ def script_main(script_name, download, download_playlist = None):
|
|||||||
set_http_proxy(proxy)
|
set_http_proxy(proxy)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
download_main(download, download_playlist, args, playlist, output_dir, merge, info_only)
|
if stream_id:
|
||||||
|
download_main(download, download_playlist, args, playlist, stream_id=stream_id, output_dir=output_dir, merge=merge, info_only=info_only)
|
||||||
|
else:
|
||||||
|
download_main(download, download_playlist, args, playlist, output_dir=output_dir, merge=merge, info_only=info_only)
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
if traceback:
|
if traceback:
|
||||||
raise
|
raise
|
||||||
@ -992,7 +999,7 @@ class VideoExtractor():
|
|||||||
print(" size: %s MiB (%s bytes)" % (round(stream['size'] / 1048576, 1), stream['size']))
|
print(" size: %s MiB (%s bytes)" % (round(stream['size'] / 1048576, 1), stream['size']))
|
||||||
else:
|
else:
|
||||||
print(" size: Unknown")
|
print(" size: Unknown")
|
||||||
#print(" # download-with: \033[4myou-get --stream=%s\033[0m" % stream_id)
|
print(" # download-with: \033[4myou-get --format=%s [URL]\033[0m" % stream_id)
|
||||||
print()
|
print()
|
||||||
|
|
||||||
def p(self, stream_id=None):
|
def p(self, stream_id=None):
|
||||||
|
@ -82,13 +82,13 @@ def url_to_module(url):
|
|||||||
else:
|
else:
|
||||||
return url_to_module(location)
|
return url_to_module(location)
|
||||||
|
|
||||||
def any_download(url, output_dir='.', merge=True, info_only=False):
|
def any_download(url, **kwargs):
|
||||||
m, url = url_to_module(url)
|
m, url = url_to_module(url)
|
||||||
m.download(url, output_dir=output_dir, merge=merge, info_only=info_only)
|
m.download(url, **kwargs)
|
||||||
|
|
||||||
def any_download_playlist(url, output_dir='.', merge=True, info_only=False):
|
def any_download_playlist(url, **kwargs):
|
||||||
m, url = url_to_module(url)
|
m, url = url_to_module(url)
|
||||||
m.download_playlist(url, output_dir=output_dir, merge=merge, info_only=info_only)
|
m.download_playlist(url, **kwargs)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
script_main('you-get', any_download, any_download_playlist)
|
script_main('you-get', any_download, any_download_playlist)
|
||||||
|
@ -61,6 +61,11 @@ class Youku(VideoExtractor):
|
|||||||
if 'stream_id' in kwargs and kwargs['stream_id']:
|
if 'stream_id' in kwargs and kwargs['stream_id']:
|
||||||
# Extract the stream
|
# Extract the stream
|
||||||
stream_id = kwargs['stream_id']
|
stream_id = kwargs['stream_id']
|
||||||
|
|
||||||
|
if stream_id not in self.streams:
|
||||||
|
log.e('[Failed] Invalid video format.')
|
||||||
|
log.e('Use without specifying any video format to check all available formats.')
|
||||||
|
exit(2)
|
||||||
else:
|
else:
|
||||||
# Extract stream with the best quality
|
# Extract stream with the best quality
|
||||||
stream_id = self.streams_sorted[0]['id']
|
stream_id = self.streams_sorted[0]['id']
|
||||||
|
Loading…
x
Reference in New Issue
Block a user