diff options
| -rw-r--r-- | youtube_dl/extractor/nhl.py | 16 | 
1 files changed, 15 insertions, 1 deletions
| diff --git a/youtube_dl/extractor/nhl.py b/youtube_dl/extractor/nhl.py index 407465998..b572370c2 100644 --- a/youtube_dl/extractor/nhl.py +++ b/youtube_dl/extractor/nhl.py @@ -21,6 +21,9 @@ class NHLBaseInfoExtractor(InfoExtractor):          return json_string.replace('\\\'', '\'')      def _real_extract_video(self, video_id): +        vid_parts = video_id.split(',') +        if len(vid_parts) == 3: +            video_id = '%s0%s%s-X-h' % (vid_parts[0][:4], vid_parts[1], vid_parts[2].rjust(4, '0'))          json_url = 'http://video.nhl.com/videocenter/servlets/playlist?ids=%s&format=json' % video_id          data = self._download_json(              json_url, video_id, transform_source=self._fix_json) @@ -60,7 +63,7 @@ class NHLBaseInfoExtractor(InfoExtractor):  class NHLIE(NHLBaseInfoExtractor):      IE_NAME = 'nhl.com' -    _VALID_URL = r'https?://video(?P<team>\.[^.]*)?\.nhl\.com/videocenter/(?:console)?(?:\?(?:.*?[?&])?)id=(?P<id>[-0-9a-zA-Z]+)' +    _VALID_URL = r'https?://video(?P<team>\.[^.]*)?\.nhl\.com/videocenter/(?:console)?(?:\?(?:.*?[?&])?)(?:id|hlg)=(?P<id>[-0-9a-zA-Z,]+)'      _TESTS = [{          'url': 'http://video.canucks.nhl.com/videocenter/console?catid=6?id=453614', @@ -101,6 +104,17 @@ class NHLIE(NHLBaseInfoExtractor):      }, {          'url': 'http://video.nhl.com/videocenter/?id=736722',          'only_matching': True, +    }, { +        'url': 'http://video.nhl.com/videocenter/console?hlg=20142015,2,299&lang=en', +        'md5': '076fcb88c255154aacbf0a7accc3f340', +        'info_dict': { +            'id': '2014020299-X-h', +            'ext': 'mp4', +            'title': 'Penguins at Islanders / Game Highlights', +            'description': 'Home broadcast - Pittsburgh Penguins at New York Islanders - November 22, 2014', +            'duration': 268, +            'upload_date': '20141122', +        }      }]      def _real_extract(self, url): | 
