diff options
Diffstat (limited to 'youtube_dl/YoutubeDL.py')
| -rwxr-xr-x | youtube_dl/YoutubeDL.py | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index df2aebb59..5a83bc956 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -61,6 +61,7 @@ from .utils import (      render_table,      SameFileError,      sanitize_filename, +    sanitize_path,      std_headers,      subtitles_filename,      takewhile_inclusive, @@ -322,6 +323,11 @@ class YoutubeDL(object):                  'Set the LC_ALL environment variable to fix this.')              self.params['restrictfilenames'] = True +        if isinstance(params.get('outtmpl'), bytes): +            self.report_warning( +                'Parameter outtmpl is bytes, but should be a unicode string. ' +                'Put  from __future__ import unicode_literals  at the top of your code file or consider switching to Python 3.x.') +          if '%(stitle)s' in self.params.get('outtmpl', ''):              self.report_warning('%(stitle)s is deprecated. Use the %(title)s and the --restrict-filenames flag(which also secures %(uploader)s et al) instead.') @@ -562,7 +568,7 @@ class YoutubeDL(object):                                   if v is not None)              template_dict = collections.defaultdict(lambda: 'NA', template_dict) -            outtmpl = self.params.get('outtmpl', DEFAULT_OUTTMPL) +            outtmpl = sanitize_path(self.params.get('outtmpl', DEFAULT_OUTTMPL))              tmpl = compat_expanduser(outtmpl)              filename = tmpl % template_dict              # Temporary fix for #4787 @@ -629,7 +635,7 @@ class YoutubeDL(object):          Returns a list with a dictionary for each video we find.          If 'download', also downloads the videos.          extra_info is a dict containing the extra values to add to each result -         ''' +        '''          if ie_key:              ies = [self.get_info_extractor(ie_key)] @@ -1085,8 +1091,7 @@ class YoutubeDL(object):          if req_format is None:              req_format = 'best'          formats_to_download = [] -        # The -1 is for supporting YoutubeIE -        if req_format in ('-1', 'all'): +        if req_format == 'all':              formats_to_download = formats          else:              for rfstr in req_format.split(','): @@ -1261,7 +1266,7 @@ class YoutubeDL(object):              return          try: -            dn = os.path.dirname(encodeFilename(filename)) +            dn = os.path.dirname(sanitize_path(encodeFilename(filename)))              if dn and not os.path.exists(dn):                  os.makedirs(dn)          except (OSError, IOError) as err: | 
