Browse Source

[YoutubeDL] Do not require default output template to be set

totalwebcasting
Philipp Hagemeister 11 years ago
parent
commit
acd69589a5
4 changed files with 12 additions and 6 deletions
  1. +6
    -3
      youtube_dl/YoutubeDL.py
  2. +2
    -1
      youtube_dl/__init__.py
  3. +2
    -2
      youtube_dl/extractor/vine.py
  4. +2
    -0
      youtube_dl/utils.py

+ 6
- 3
youtube_dl/YoutubeDL.py View File

@ -31,6 +31,7 @@ from .utils import (
ContentTooShortError, ContentTooShortError,
date_from_str, date_from_str,
DateRange, DateRange,
DEFAULT_OUTTMPL,
determine_ext, determine_ext,
DownloadError, DownloadError,
encodeFilename, encodeFilename,
@ -440,7 +441,8 @@ class YoutubeDL(object):
if v is not None) if v is not None)
template_dict = collections.defaultdict(lambda: 'NA', template_dict) template_dict = collections.defaultdict(lambda: 'NA', template_dict)
tmpl = os.path.expanduser(self.params['outtmpl'])
outtmpl = self.params.get('outtmpl', DEFAULT_OUTTMPL)
tmpl = os.path.expanduser(outtmpl)
filename = tmpl % template_dict filename = tmpl % template_dict
return filename return filename
except ValueError as err: except ValueError as err:
@ -1025,10 +1027,11 @@ class YoutubeDL(object):
def download(self, url_list): def download(self, url_list):
"""Download a given list of URLs.""" """Download a given list of URLs."""
outtmpl = self.params.get('outtmpl', DEFAULT_OUTTMPL)
if (len(url_list) > 1 and if (len(url_list) > 1 and
'%' not in self.params['outtmpl']
'%' not in outtmpl
and self.params.get('max_downloads') != 1): and self.params.get('max_downloads') != 1):
raise SameFileError(self.params['outtmpl'])
raise SameFileError(outtmpl)
for url in url_list: for url in url_list:
try: try:


+ 2
- 1
youtube_dl/__init__.py View File

@ -72,6 +72,7 @@ from .utils import (
compat_getpass, compat_getpass,
compat_print, compat_print,
DateRange, DateRange,
DEFAULT_OUTTMPL,
decodeOption, decodeOption,
get_term_width, get_term_width,
DownloadError, DownloadError,
@ -705,7 +706,7 @@ def _real_main(argv=None):
or (opts.usetitle and u'%(title)s-%(id)s.%(ext)s') or (opts.usetitle and u'%(title)s-%(id)s.%(ext)s')
or (opts.useid and u'%(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 (opts.autonumber and u'%(autonumber)s-%(id)s.%(ext)s')
or u'%(title)s-%(id)s.%(ext)s')
or DEFAULT_OUTTMPL)
if not os.path.splitext(outtmpl)[1] and opts.extractaudio: if not os.path.splitext(outtmpl)[1] and opts.extractaudio:
parser.error(u'Cannot download a video and extract audio into the same' parser.error(u'Cannot download a video and extract audio into the same'
u' file! Use "{0}.%(ext)s" instead of "{0}" as the output' u' file! Use "{0}.%(ext)s" instead of "{0}" as the output'


+ 2
- 2
youtube_dl/extractor/vine.py View File

@ -31,7 +31,7 @@ class VineIE(InfoExtractor):
data = json.loads(self._html_search_regex( data = json.loads(self._html_search_regex(
r'window\.POST_DATA = { %s: ({.+?}) }' % video_id, webpage, 'vine data')) r'window\.POST_DATA = { %s: ({.+?}) }' % video_id, webpage, 'vine data'))
print(json.dumps(data, indent=2))
formats = [ formats = [
{ {
'url': data['videoLowURL'], 'url': data['videoLowURL'],
@ -57,4 +57,4 @@ class VineIE(InfoExtractor):
'comment_count': data['comments']['count'], 'comment_count': data['comments']['count'],
'repost_count': data['reposts']['count'], 'repost_count': data['reposts']['count'],
'formats': formats, 'formats': formats,
}
}

+ 2
- 0
youtube_dl/utils.py View File

@ -1423,3 +1423,5 @@ def qualities(quality_ids):
return -1 return -1
return q return q
DEFAULT_OUTTMPL = '%(title)s-%(id)s.%(ext)s'

Loading…
Cancel
Save