aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/YoutubeDL.py
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-11-23 10:49:19 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2014-11-23 10:51:09 +0100
commit7d4111ed14848c3e72d55d47f11cd7e9fadea403 (patch)
treefd583582ca5caf291a12a18a9f9cb3fc61b1b1f8 /youtube_dl/YoutubeDL.py
parentd37cab2a9d1da8056460613007f3099e7a9d8f7e (diff)
downloadyoutube-dl-7d4111ed14848c3e72d55d47f11cd7e9fadea403.tar.xz
Provide guidance when called with a YouTube ID starting with a dash.
Reported at https://news.ycombinator.com/item?id=8648121
Diffstat (limited to 'youtube_dl/YoutubeDL.py')
-rwxr-xr-xyoutube_dl/YoutubeDL.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py
index fde026fbf..bfa0c6d43 100755
--- a/youtube_dl/YoutubeDL.py
+++ b/youtube_dl/YoutubeDL.py
@@ -29,6 +29,7 @@ from .compat import (
compat_str,
compat_urllib_error,
compat_urllib_request,
+ shlex_quote,
)
from .utils import (
escape_url,
@@ -60,6 +61,7 @@ from .utils import (
write_string,
YoutubeDLHandler,
prepend_extension,
+ args_to_str,
)
from .cache import Cache
from .extractor import get_info_extractor, gen_extractors
@@ -253,6 +255,22 @@ class YoutubeDL(object):
self.print_debug_header()
self.add_default_info_extractors()
+ def warn_if_short_id(self, argv):
+ # short YouTube ID starting with dash?
+ idxs = [
+ i for i, a in enumerate(argv)
+ if re.match(r'^-[0-9A-Za-z_-]{10}$', a)]
+ if idxs:
+ correct_argv = (
+ ['youtube-dl'] +
+ [a for i, a in enumerate(argv) if i not in idxs] +
+ ['--'] + [argv[i] for i in idxs]
+ )
+ self.report_warning(
+ 'Long argument string detected. '
+ 'Use -- to separate parameters and URLs, like this:\n%s\n' %
+ args_to_str(correct_argv))
+
def add_info_extractor(self, ie):
"""Add an InfoExtractor object to the end of the list."""
self._ies.append(ie)
@@ -1410,3 +1428,4 @@ class YoutubeDL(object):
if encoding is None:
encoding = preferredencoding()
return encoding
+