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

Also adapt the embedding examples for those poor souls still using 2.x.
This commit is contained in:
Philipp Hagemeister 2015-03-13 08:40:20 +01:00
parent 054b99a330
commit 486dd09e0b
2 changed files with 7 additions and 0 deletions

View file

@ -515,6 +515,7 @@ # EMBEDDING YOUTUBE-DL
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 @@ # EMBEDDING YOUTUBE-DL
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

View file

@ -323,6 +323,11 @@ def __init__(self, params=None, auto_init=True):
'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.')