X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fnhl.py;h=d3a4fc51387a8e1a1b56718ba9dafabf1d9a7db5;hb=d4f64cabf4ede444b390bb71b90ad4103ce572c0;hp=2a84f676150afb9f93a52bef68557ea5ac7bd54f;hpb=ea2ee40357eb2c43f8968a4eeba47e1cf97667ba;p=youtube-dl diff --git a/youtube_dl/extractor/nhl.py b/youtube_dl/extractor/nhl.py index 2a84f6761..d3a4fc513 100644 --- a/youtube_dl/extractor/nhl.py +++ b/youtube_dl/extractor/nhl.py @@ -2,11 +2,13 @@ from __future__ import unicode_literals import re import json +import os from .common import InfoExtractor from ..compat import ( compat_urlparse, compat_urllib_parse, + compat_urllib_parse_urlparse ) from ..utils import ( unified_strdate, @@ -24,9 +26,12 @@ class NHLBaseInfoExtractor(InfoExtractor): initial_video_url = info['publishPoint'] if info['formats'] == '1': + parsed_url = compat_urllib_parse_urlparse(initial_video_url) + filename, ext = os.path.splitext(parsed_url.path) + path = '%s_sd%s' % (filename, ext) data = compat_urllib_parse.urlencode({ 'type': 'fvod', - 'path': initial_video_url.replace('.mp4', '_sd.mp4'), + 'path': compat_urlparse.urlunparse(parsed_url[:2] + (path,) + parsed_url[3:]) }) path_url = 'http://video.nhl.com/videocenter/servlets/encryptvideopath?' + data path_doc = self._download_xml( @@ -49,7 +54,7 @@ class NHLBaseInfoExtractor(InfoExtractor): class NHLIE(NHLBaseInfoExtractor): IE_NAME = 'nhl.com' - _VALID_URL = r'https?://video(?P\.[^.]*)?\.nhl\.com/videocenter/console(?:\?(?:.*?[?&])?)id=(?P[0-9a-z-]+)' + _VALID_URL = r'https?://video(?P\.[^.]*)?\.nhl\.com/videocenter/console(?:\?(?:.*?[?&])?)id=(?P[-0-9a-zA-Z]+)' _TESTS = [{ 'url': 'http://video.canucks.nhl.com/videocenter/console?catid=6?id=453614', @@ -73,6 +78,17 @@ class NHLIE(NHLBaseInfoExtractor): 'duration': 0, 'upload_date': '20141011', }, + }, { + 'url': 'http://video.mapleleafs.nhl.com/videocenter/console?id=58665&catid=802', + 'md5': 'c78fc64ea01777e426cfc202b746c825', + 'info_dict': { + 'id': '58665', + 'ext': 'flv', + 'title': 'Classic Game In Six - April 22, 1979', + 'description': 'It was the last playoff game for the Leafs in the decade, and the last time the Leafs and Habs played in the playoffs. Great game, not a great ending.', + 'duration': 400, + 'upload_date': '20100129' + }, }, { 'url': 'http://video.flames.nhl.com/videocenter/console?id=630616', 'only_matching': True,