Browse Source

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

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

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

+ 2 - 1
youtube_dl/__init__.py

@@ -72,6 +72,7 @@ from .utils import (
     compat_getpass,
     compat_print,
     DateRange,
+    DEFAULT_OUTTMPL,
     decodeOption,
     get_term_width,
     DownloadError,
@@ -705,7 +706,7 @@ def _real_main(argv=None):
             or (opts.usetitle 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'%(title)s-%(id)s.%(ext)s')
+            or DEFAULT_OUTTMPL)
     if not os.path.splitext(outtmpl)[1] and opts.extractaudio:
         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'

+ 2 - 2
youtube_dl/extractor/vine.py

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

+ 2 - 0
youtube_dl/utils.py

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