aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2015-03-01 11:46:57 +0100
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2015-03-01 11:54:48 +0100
commit31bd39256b153391f521169ae449fd8c7c6e51d7 (patch)
tree8b705b83de85a79719373818d48369d29cfc2d16
parent003c69a84b68cadb46aeb8e03115848a722fd675 (diff)
--load-info: Use the fileinput module
It automatically handles the '-' filename as stdin
-rwxr-xr-xyoutube_dl/YoutubeDL.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py
index d7c6db0ff..15367c4e3 100755
--- a/youtube_dl/YoutubeDL.py
+++ b/youtube_dl/YoutubeDL.py
@@ -4,8 +4,10 @@
from __future__ import absolute_import, unicode_literals
import collections
+import contextlib
import datetime
import errno
+import fileinput
import io
import itertools
import json
@@ -1452,8 +1454,11 @@ class YoutubeDL(object):
return self._download_retcode
def download_with_info_file(self, info_filename):
- with io.open(info_filename, 'r', encoding='utf-8') as f:
- info = json.load(f)
+ with contextlib.closing(fileinput.FileInput(
+ [info_filename], mode='r',
+ openhook=fileinput.hook_encoded('utf-8'))) as f:
+ # FileInput doesn't have a read method, we can't call json.load
+ info = json.loads('\n'.join(f))
try:
self.process_ie_result(info, download=True)
except DownloadError: