Browse Source

[youtube] Include video Id in common error message (Fixes #2786)

Philipp Hagemeister 11 years ago
parent
commit
d11271dd29
2 changed files with 10 additions and 3 deletions
  1. 6 2
      youtube_dl/extractor/youtube.py
  2. 4 1
      youtube_dl/utils.py

+ 6 - 2
youtube_dl/extractor/youtube.py

@@ -1082,9 +1082,13 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor):
                     break
                     break
         if 'token' not in video_info:
         if 'token' not in video_info:
             if 'reason' in video_info:
             if 'reason' in video_info:
-                raise ExtractorError(u'YouTube said: %s' % video_info['reason'][0], expected=True)
+                raise ExtractorError(
+                    u'YouTube said: %s' % video_info['reason'][0],
+                    expected=True, video_id=video_id)
             else:
             else:
-                raise ExtractorError(u'"token" parameter not in video info for unknown reason')
+                raise ExtractorError(
+                    u'"token" parameter not in video info for unknown reason',
+                    video_id=video_id)
 
 
         if 'view_count' in video_info:
         if 'view_count' in video_info:
             view_count = int(video_info['view_count'][0])
             view_count = int(video_info['view_count'][0])

+ 4 - 1
youtube_dl/utils.py

@@ -594,13 +594,15 @@ def make_HTTPS_handler(opts_no_check_certificate, **kwargs):
 
 
 class ExtractorError(Exception):
 class ExtractorError(Exception):
     """Error during info extraction."""
     """Error during info extraction."""
-    def __init__(self, msg, tb=None, expected=False, cause=None):
+    def __init__(self, msg, tb=None, expected=False, cause=None, video_id=None):
         """ tb, if given, is the original traceback (so that it can be printed out).
         """ tb, if given, is the original traceback (so that it can be printed out).
         If expected is set, this is a normal error message and most likely not a bug in youtube-dl.
         If expected is set, this is a normal error message and most likely not a bug in youtube-dl.
         """
         """
 
 
         if sys.exc_info()[0] in (compat_urllib_error.URLError, socket.timeout, UnavailableVideoError):
         if sys.exc_info()[0] in (compat_urllib_error.URLError, socket.timeout, UnavailableVideoError):
             expected = True
             expected = True
+        if video_id is not None:
+            msg = video_id + ': ' + msg
         if not expected:
         if not expected:
             msg = msg + u'; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.'
             msg = msg + u'; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.'
         super(ExtractorError, self).__init__(msg)
         super(ExtractorError, self).__init__(msg)
@@ -608,6 +610,7 @@ class ExtractorError(Exception):
         self.traceback = tb
         self.traceback = tb
         self.exc_info = sys.exc_info()  # preserve original exception
         self.exc_info = sys.exc_info()  # preserve original exception
         self.cause = cause
         self.cause = cause
+        self.video_id = video_id
 
 
     def format_traceback(self):
     def format_traceback(self):
         if self.traceback is None:
         if self.traceback is None: