diff options
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 17 | 
2 files changed, 18 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index a95de54cb..9848ff611 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -545,6 +545,7 @@ from .youtube import (      YoutubeShowIE,      YoutubeSubscriptionsIE,      YoutubeTopListIE, +    YoutubeTruncatedIDIE,      YoutubeTruncatedURLIE,      YoutubeUserIE,      YoutubeWatchLaterIE, diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 7f5aeb25b..8c7842ee8 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1701,3 +1701,20 @@ class YoutubeTruncatedURLIE(InfoExtractor):              '"http://www.youtube.com/watch?feature=foo&v=BaW_jenozKc" '              ' or simply  youtube-dl BaW_jenozKc  .',              expected=True) + + +class YoutubeTruncatedIDIE(InfoExtractor): +    IE_NAME = 'youtube:truncated_id' +    IE_DESC = False  # Do not list +    _VALID_URL = r'https?://(?:www\.)youtube\.com/watch\?v=(?P<id>[0-9A-Za-z_-]{1,10})$' + +    _TESTS = [{ +        'url': 'https://www.youtube.com/watch?v=N_708QY7Ob', +        'only_matching': True, +    }] + +    def _real_extract(self, url): +        video_id = self._match_id(url) +        raise ExtractorError( +            'Incomplete YouTube ID %s. URL %s looks truncated.' % (video_id, url), +            expected=True) | 
