X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=youtube_dl%2F__init__.py;h=e99ac2d593747d001f595c5c10e51fd15e1901c4;hb=187da2c093ad1013ea714a464e615de9aa773482;hp=d4774e148b9f2b1cfa15632c42f48f324e8c67b3;hpb=7b107eea5180444f7d8585889139cfe87eaa2cbd;p=youtube-dl.git diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index d4774e148..e99ac2d59 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -1,6 +1,8 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +from __future__ import with_statement + __authors__ = ( 'Ricardo Garcia Gonzalez', 'Danny Colligan', @@ -263,6 +265,8 @@ def parseOpts(): filesystem.add_option('-t', '--title', action='store_true', dest='usetitle', help='use title in file name', default=False) + filesystem.add_option('--id', + action='store_true', dest='useid', help='use video ID in file name', default=False) filesystem.add_option('-l', '--literal', action='store_true', dest='useliteral', help='use literal title in file name', default=False) filesystem.add_option('-A', '--auto-number', @@ -294,7 +298,7 @@ def parseOpts(): help='write video metadata to a .info.json file', default=False) - postproc.add_option('--extract-audio', action='store_true', dest='extractaudio', default=False, + postproc.add_option('-x', '--extract-audio', action='store_true', dest='extractaudio', default=False, help='convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe)') postproc.add_option('--audio-format', metavar='FORMAT', dest='audioformat', default='best', help='"best", "aac", "vorbis", "mp3", "m4a", or "wav"; best by default') @@ -328,6 +332,7 @@ def gen_extractors(): """ return [ YoutubePlaylistIE(), + YoutubeChannelIE(), YoutubeUserIE(), YoutubeSearchIE(), YoutubeIE(), @@ -356,7 +361,9 @@ def gen_extractors(): YoukuIE(), XNXXIE(), GooglePlusIE(), - + PornotubeIE(), + YouPornIE(), + YouJizzIE(), GenericIE() ] @@ -421,10 +428,14 @@ def _real_main(): parser.error(u'using .netrc conflicts with giving username/password') if opts.password is not None and opts.username is None: parser.error(u'account username missing') - if opts.outtmpl is not None and (opts.useliteral or opts.usetitle or opts.autonumber): - parser.error(u'using output template conflicts with using title, literal title or auto number') + if opts.outtmpl is not None and (opts.useliteral or opts.usetitle or opts.autonumber or opts.useid): + parser.error(u'using output template conflicts with using title, literal title, video ID or auto number') if opts.usetitle and opts.useliteral: parser.error(u'using title conflicts with using literal title') + if opts.usetitle and opts.useid: + parser.error(u'using title conflicts with using video ID') + if opts.useliteral and opts.useid: + parser.error(u'using literal title conflicts with using video ID') if opts.username is not None and opts.password is None: opts.password = getpass.getpass(u'Type account password and press return:') if opts.ratelimit is not None: @@ -482,6 +493,7 @@ def _real_main(): or (opts.useliteral and opts.autonumber and u'%(autonumber)s-%(title)s-%(id)s.%(ext)s') or (opts.usetitle and u'%(stitle)s-%(id)s.%(ext)s') or (opts.useliteral and u'%(title)s-%(id)s.%(ext)s') + or (opts.useid and u'%(id)s.%(ext)s') or (opts.autonumber and u'%(autonumber)s-%(id)s.%(ext)s') or u'%(id)s.%(ext)s'), 'ignoreerrors': opts.ignoreerrors,