[YoutubeDL] Check for bytes instead of unicode output templates (#5192)
authorPhilipp Hagemeister <phihag@phihag.de>
Fri, 13 Mar 2015 07:40:20 +0000 (08:40 +0100)
committerPhilipp Hagemeister <phihag@phihag.de>
Fri, 13 Mar 2015 07:40:20 +0000 (08:40 +0100)
Also adapt the embedding examples for those poor souls still using 2.x.

README.md
youtube_dl/YoutubeDL.py

index f41e7ecee1bebe51bb44ccd33f22fd61b661192b..f4fbf00346081dc52bbed358d666b50d9cfecb36 100644 (file)
--- a/README.md
+++ b/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:
 
 ```python
+from __future__ import unicode_literals
 import youtube_dl
 
 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:
 
 ```python
+from __future__ import unicode_literals
 import youtube_dl
 
 
index be5b3c1ab5ff1980ed0db34c599e2a96417b9294..e779fc9a87f257b4aace09da9441d7a12b8585e0 100755 (executable)
@@ -323,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.')