X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2F__init__.py;h=2acaab66859c3a268083ee738fbf6ea9d8c518f0;hb=c6c19746722e5ef43375f9be0d4de30648697643;hp=e1d0eecc37adb10f6712360c84ad859d0f02795f;hpb=3c25b9abaee69657db9c75d80a5671c8c4206615;p=youtube-dl diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index e1d0eecc3..2acaab668 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -25,6 +25,7 @@ __authors__ = ( 'M. Yasoob Ullah Khalid', 'Julien Fraichard', 'Johny Mo Swag', + 'Axel Noack', ) __license__ = 'Public Domain' @@ -45,7 +46,8 @@ from .utils import * from .update import update_self from .version import __version__ from .FileDownloader import * -from .InfoExtractors import gen_extractors +from .extractor import gen_extractors +from .YoutubeDL import YoutubeDL from .PostProcessor import * def parseOpts(overrideArguments=None): @@ -171,6 +173,8 @@ def parseOpts(overrideArguments=None): dest='password', metavar='PASSWORD', help='account password') authentication.add_option('-n', '--netrc', action='store_true', dest='usenetrc', help='use .netrc authentication data', default=False) + authentication.add_option('--video-password', + dest='videopassword', metavar='PASSWORD', help='video password (vimeo only)') video_format.add_option('-f', '--format', @@ -318,7 +322,7 @@ def parseOpts(overrideArguments=None): if overrideArguments is not None: opts, args = parser.parse_args(overrideArguments) if opts.verbose: - print(u'[debug] Override config: ' + repr(overrideArguments)) + sys.stderr.write(u'[debug] Override config: ' + repr(overrideArguments) + '\n') else: xdg_config_home = os.environ.get('XDG_CONFIG_HOME') if xdg_config_home: @@ -331,9 +335,9 @@ def parseOpts(overrideArguments=None): argv = systemConf + userConf + commandLineConf opts, args = parser.parse_args(argv) if opts.verbose: - print(u'[debug] System config: ' + repr(systemConf)) - print(u'[debug] User config: ' + repr(userConf)) - print(u'[debug] Command-line args: ' + repr(commandLineConf)) + sys.stderr.write(u'[debug] System config: ' + repr(systemConf) + '\n') + sys.stderr.write(u'[debug] User config: ' + repr(userConf) + '\n') + sys.stderr.write(u'[debug] Command-line args: ' + repr(commandLineConf) + '\n') return parser, opts, args @@ -368,7 +372,7 @@ def _real_main(argv=None): # Dump user agent if opts.dump_user_agent: - print(std_headers['User-Agent']) + compat_print(std_headers['User-Agent']) sys.exit(0) # Batch file verification @@ -409,18 +413,18 @@ def _real_main(argv=None): if opts.list_extractors: for ie in extractors: - print(ie.IE_NAME + (' (CURRENTLY BROKEN)' if not ie._WORKING else '')) + compat_print(ie.IE_NAME + (' (CURRENTLY BROKEN)' if not ie._WORKING else '')) matchedUrls = [url for url in all_urls if ie.suitable(url)] all_urls = [url for url in all_urls if url not in matchedUrls] for mu in matchedUrls: - print(u' ' + mu) + compat_print(u' ' + mu) sys.exit(0) # Conflicting, missing and erroneous options if opts.usenetrc and (opts.username is not None or opts.password is not None): parser.error(u'using .netrc conflicts with giving username/password') if opts.password is not None and opts.username is None: - print(u'WARNING: account username missing') + parser.error(u' account username missing\n') if opts.outtmpl is not None and (opts.usetitle or opts.autonumber or opts.useid): parser.error(u'using output template conflicts with using title, video ID or auto number') if opts.usetitle and opts.useid: @@ -492,11 +496,12 @@ def _real_main(argv=None): or (opts.autonumber and u'%(autonumber)s-%(id)s.%(ext)s') or u'%(title)s-%(id)s.%(ext)s') - # File downloader - fd = FileDownloader({ + # YoutubeDL + ydl = YoutubeDL({ 'usenetrc': opts.usenetrc, 'username': opts.username, 'password': opts.password, + 'videopassword': opts.videopassword, 'quiet': (opts.quiet or opts.geturl or opts.gettitle or opts.getid or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat), 'forceurl': opts.geturl, 'forcetitle': opts.gettitle, @@ -550,31 +555,31 @@ def _real_main(argv=None): }) if opts.verbose: - fd.to_screen(u'[debug] youtube-dl version ' + __version__) + ydl.to_screen(u'[debug] youtube-dl version ' + __version__) 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): - fd.to_screen(u'[debug] Git HEAD: ' + out) + ydl.to_screen(u'[debug] Git HEAD: ' + out) except: pass - fd.to_screen(u'[debug] Python version %s - %s' %(platform.python_version(), platform.platform())) - fd.to_screen(u'[debug] Proxy map: ' + str(proxy_handler.proxies)) + ydl.to_screen(u'[debug] Python version %s - %s' %(platform.python_version(), platform.platform())) + ydl.to_screen(u'[debug] Proxy map: ' + str(proxy_handler.proxies)) for extractor in extractors: - fd.add_info_extractor(extractor) + ydl.add_info_extractor(extractor) # PostProcessors if opts.extractaudio: - fd.add_post_processor(FFmpegExtractAudioPP(preferredcodec=opts.audioformat, preferredquality=opts.audioquality, nopostoverwrites=opts.nopostoverwrites)) + ydl.add_post_processor(FFmpegExtractAudioPP(preferredcodec=opts.audioformat, preferredquality=opts.audioquality, nopostoverwrites=opts.nopostoverwrites)) if opts.recodevideo: - fd.add_post_processor(FFmpegVideoConvertor(preferedformat=opts.recodevideo)) + ydl.add_post_processor(FFmpegVideoConvertor(preferedformat=opts.recodevideo)) # Update version if opts.update_self: - update_self(fd.to_screen, opts.verbose, sys.argv[0]) + update_self(ydl.to_screen, opts.verbose, sys.argv[0]) # Maybe do nothing if len(all_urls) < 1: @@ -584,9 +589,9 @@ def _real_main(argv=None): sys.exit() try: - retcode = fd.download(all_urls) + retcode = ydl.download(all_urls) except MaxDownloadsReached: - fd.to_screen(u'--max-download limit reached, aborting.') + ydl.to_screen(u'--max-download limit reached, aborting.') retcode = 101 # Dump cookie jar if requested