[YoutubeDL] Do not require default output template to be set
authorPhilipp Hagemeister <phihag@phihag.de>
Wed, 30 Apr 2014 08:02:03 +0000 (10:02 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Wed, 30 Apr 2014 08:02:08 +0000 (10:02 +0200)
youtube_dl/YoutubeDL.py
youtube_dl/__init__.py
youtube_dl/extractor/vine.py
youtube_dl/utils.py

index e9811bd055abcf9a0449c9b1e127a8d6ad7fd471..f3666573a5403f48e10de130374e1be9d835f46e 100755 (executable)
@@ -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:
index 42ef13786bf2e9c228f02b6f4568270d682fd57d..1d8cf9a0915dcd22176e9643a2c625211bfe4b50 100644 (file)
@@ -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'
index 5bbc8ba88bbdb6a0d069324a3fd191844ccf7773..689b8dc2a32cdf44b68ce001227b4316858ebc0d 100644 (file)
@@ -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,
-        }
\ No newline at end of file
+        }
index a3a7226d8761eb3a44e10ffeba28b350bc120d84..2a93d3e34a13d473c9438dced5a3051338325708 100644 (file)
@@ -1423,3 +1423,5 @@ def qualities(quality_ids):
             return -1
     return q
 
+
+DEFAULT_OUTTMPL = '%(title)s-%(id)s.%(ext)s'