Browse Source

[YoutubeDL] Check for bytes instead of unicode output templates (#5192)

Also adapt the embedding examples for those poor souls still using 2.x.
Philipp Hagemeister 10 years ago
parent
commit
486dd09e0b
2 changed files with 7 additions and 0 deletions
  1. 2 0
      README.md
  2. 5 0
      youtube_dl/YoutubeDL.py

+ 2 - 0
README.md

@@ -515,6 +515,7 @@ youtube-dl makes the best effort to be a good command-line program, and thus sho
 From a Python program, you can embed youtube-dl in a more powerful fashion, like this:
 From a Python program, you can embed youtube-dl in a more powerful fashion, like this:
 
 
 ```python
 ```python
+from __future__ import unicode_literals
 import youtube_dl
 import youtube_dl
 
 
 ydl_opts = {}
 ydl_opts = {}
@@ -527,6 +528,7 @@ Most likely, you'll want to use various options. For a list of what can be done,
 Here's a more complete example of a program that outputs only errors (and a short message after the download is finished), and downloads/converts the video to an mp3 file:
 Here's a more complete example of a program that outputs only errors (and a short message after the download is finished), and downloads/converts the video to an mp3 file:
 
 
 ```python
 ```python
+from __future__ import unicode_literals
 import youtube_dl
 import youtube_dl
 
 
 
 

+ 5 - 0
youtube_dl/YoutubeDL.py

@@ -323,6 +323,11 @@ class YoutubeDL(object):
                 'Set the LC_ALL environment variable to fix this.')
                 'Set the LC_ALL environment variable to fix this.')
             self.params['restrictfilenames'] = True
             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', ''):
         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.')
             self.report_warning('%(stitle)s is deprecated. Use the %(title)s and the --restrict-filenames flag(which also secures %(uploader)s et al) instead.')