X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fnfl.py;h=2684dd250aa65e22903612f4a1780fc8f701296a;hb=1ddb9456c4a63a207ec40bd74cdf0b36d8c68409;hp=4832b3ce4b765d332ea8e827205547bd062c400c;hpb=5f4c318844180d51745303979682a0a482f05328;p=youtube-dl diff --git a/youtube_dl/extractor/nfl.py b/youtube_dl/extractor/nfl.py index 4832b3ce4..2684dd250 100644 --- a/youtube_dl/extractor/nfl.py +++ b/youtube_dl/extractor/nfl.py @@ -4,9 +4,11 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..compat import ( + compat_urllib_parse_urlparse, +) from ..utils import ( ExtractorError, - compat_urllib_parse, int_or_none, remove_end, ) @@ -44,7 +46,18 @@ class NFLIE(InfoExtractor): 'timestamp': 1388354455, 'thumbnail': 're:^https?://.*\.jpg$', } - } + }, + { + 'url': 'http://www.nfl.com/news/story/0ap3000000467586/article/patriots-seahawks-involved-in-lategame-skirmish', + 'info_dict': { + 'id': '0ap3000000467607', + 'ext': 'mp4', + 'title': 'Frustrations flare on the field', + 'description': 'Emotions ran high at the end of the Super Bowl on both sides of the ball after a dramatic finish.', + 'timestamp': 1422850320, + 'upload_date': '20150202', + }, + }, ] @staticmethod @@ -78,7 +91,11 @@ class NFLIE(InfoExtractor): webpage = self._download_webpage(url, video_id) config_url = NFLIE.prepend_host(host, self._search_regex( - r'(?:config|configURL)\s*:\s*"([^"]+)"', webpage, 'config URL')) + r'(?:config|configURL)\s*:\s*"([^"]+)"', webpage, 'config URL', + default='static/content/static/config/video/config.json')) + # For articles, the id in the url is not the video id + video_id = self._search_regex( + r'contentId\s*:\s*"([^"]+)"', webpage, 'video id', default=video_id) config = self._download_json(config_url, video_id, note='Downloading player config') url_template = NFLIE.prepend_host( @@ -90,7 +107,7 @@ class NFLIE(InfoExtractor): cdn_data = video_data.get('cdnData', {}) streams = cdn_data.get('bitrateInfo', []) if cdn_data.get('format') == 'EXTERNAL_HTTP_STREAM': - parts = compat_urllib_parse.urlparse(cdn_data.get('uri')) + parts = compat_urllib_parse_urlparse(cdn_data.get('uri')) protocol, host = parts.scheme, parts.netloc for stream in streams: formats.append(