|
|
@ -603,8 +603,7 @@ def _real_main(argv=None): |
|
|
|
u' file! Use "%%(ext)s" instead of %r' % |
|
|
|
determine_ext(outtmpl, u'')) |
|
|
|
|
|
|
|
# YoutubeDL |
|
|
|
ydl = YoutubeDL({ |
|
|
|
ydl_opts = { |
|
|
|
'usenetrc': opts.usenetrc, |
|
|
|
'username': opts.username, |
|
|
|
'password': opts.password, |
|
|
@ -667,61 +666,63 @@ def _real_main(argv=None): |
|
|
|
'youtube_print_sig_code': opts.youtube_print_sig_code, |
|
|
|
'age_limit': opts.age_limit, |
|
|
|
'download_archive': opts.download_archive, |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
if opts.verbose: |
|
|
|
write_string(u'[debug] youtube-dl version ' + __version__ + u'\n') |
|
|
|
try: |
|
|
|
sp = subprocess.Popen( |
|
|
|
['git', 'rev-parse', '--short', 'HEAD'], |
|
|
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE, |
|
|
|
cwd=os.path.dirname(os.path.abspath(__file__))) |
|
|
|
out, err = sp.communicate() |
|
|
|
out = out.decode().strip() |
|
|
|
if re.match('[0-9a-f]+', out): |
|
|
|
write_string(u'[debug] Git HEAD: ' + out + u'\n') |
|
|
|
except: |
|
|
|
with YoutubeDL(ydl_opts) as ydl: |
|
|
|
if opts.verbose: |
|
|
|
write_string(u'[debug] youtube-dl version ' + __version__ + u'\n') |
|
|
|
try: |
|
|
|
sys.exc_clear() |
|
|
|
sp = subprocess.Popen( |
|
|
|
['git', 'rev-parse', '--short', 'HEAD'], |
|
|
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE, |
|
|
|
cwd=os.path.dirname(os.path.abspath(__file__))) |
|
|
|
out, err = sp.communicate() |
|
|
|
out = out.decode().strip() |
|
|
|
if re.match('[0-9a-f]+', out): |
|
|
|
write_string(u'[debug] Git HEAD: ' + out + u'\n') |
|
|
|
except: |
|
|
|
pass |
|
|
|
write_string(u'[debug] Python version %s - %s' %(platform.python_version(), platform_name()) + u'\n') |
|
|
|
|
|
|
|
proxy_map = {} |
|
|
|
for handler in opener.handlers: |
|
|
|
if hasattr(handler, 'proxies'): |
|
|
|
proxy_map.update(handler.proxies) |
|
|
|
write_string(u'[debug] Proxy map: ' + compat_str(proxy_map) + u'\n') |
|
|
|
|
|
|
|
ydl.add_default_info_extractors() |
|
|
|
|
|
|
|
# PostProcessors |
|
|
|
# Add the metadata pp first, the other pps will copy it |
|
|
|
if opts.addmetadata: |
|
|
|
ydl.add_post_processor(FFmpegMetadataPP()) |
|
|
|
if opts.extractaudio: |
|
|
|
ydl.add_post_processor(FFmpegExtractAudioPP(preferredcodec=opts.audioformat, preferredquality=opts.audioquality, nopostoverwrites=opts.nopostoverwrites)) |
|
|
|
if opts.recodevideo: |
|
|
|
ydl.add_post_processor(FFmpegVideoConvertor(preferedformat=opts.recodevideo)) |
|
|
|
if opts.embedsubtitles: |
|
|
|
ydl.add_post_processor(FFmpegEmbedSubtitlePP(subtitlesformat=opts.subtitlesformat)) |
|
|
|
|
|
|
|
# Update version |
|
|
|
if opts.update_self: |
|
|
|
update_self(ydl.to_screen, opts.verbose) |
|
|
|
|
|
|
|
# Maybe do nothing |
|
|
|
if len(all_urls) < 1: |
|
|
|
if not opts.update_self: |
|
|
|
parser.error(u'you must provide at least one URL') |
|
|
|
else: |
|
|
|
sys.exit() |
|
|
|
try: |
|
|
|
sys.exc_clear() |
|
|
|
except: |
|
|
|
pass |
|
|
|
write_string(u'[debug] Python version %s - %s' % |
|
|
|
(platform.python_version(), platform_name()) + u'\n') |
|
|
|
|
|
|
|
proxy_map = {} |
|
|
|
for handler in opener.handlers: |
|
|
|
if hasattr(handler, 'proxies'): |
|
|
|
proxy_map.update(handler.proxies) |
|
|
|
write_string(u'[debug] Proxy map: ' + compat_str(proxy_map) + u'\n') |
|
|
|
|
|
|
|
ydl.add_default_info_extractors() |
|
|
|
|
|
|
|
# PostProcessors |
|
|
|
# Add the metadata pp first, the other pps will copy it |
|
|
|
if opts.addmetadata: |
|
|
|
ydl.add_post_processor(FFmpegMetadataPP()) |
|
|
|
if opts.extractaudio: |
|
|
|
ydl.add_post_processor(FFmpegExtractAudioPP(preferredcodec=opts.audioformat, preferredquality=opts.audioquality, nopostoverwrites=opts.nopostoverwrites)) |
|
|
|
if opts.recodevideo: |
|
|
|
ydl.add_post_processor(FFmpegVideoConvertor(preferedformat=opts.recodevideo)) |
|
|
|
if opts.embedsubtitles: |
|
|
|
ydl.add_post_processor(FFmpegEmbedSubtitlePP(subtitlesformat=opts.subtitlesformat)) |
|
|
|
|
|
|
|
# Update version |
|
|
|
if opts.update_self: |
|
|
|
update_self(ydl.to_screen, opts.verbose) |
|
|
|
|
|
|
|
# Maybe do nothing |
|
|
|
if len(all_urls) < 1: |
|
|
|
if not opts.update_self: |
|
|
|
parser.error(u'you must provide at least one URL') |
|
|
|
else: |
|
|
|
sys.exit() |
|
|
|
|
|
|
|
try: |
|
|
|
retcode = ydl.download(all_urls) |
|
|
|
except MaxDownloadsReached: |
|
|
|
ydl.to_screen(u'--max-download limit reached, aborting.') |
|
|
|
retcode = 101 |
|
|
|
try: |
|
|
|
retcode = ydl.download(all_urls) |
|
|
|
except MaxDownloadsReached: |
|
|
|
ydl.to_screen(u'--max-download limit reached, aborting.') |
|
|
|
retcode = 101 |
|
|
|
|
|
|
|
# Dump cookie jar if requested |
|
|
|
if opts.cookiefile is not None: |
|
|
|
xxxxxxxxxx