2014-04-04 06:05:43 +08:00
# coding: utf-8
from __future__ import unicode_literals
from . common import InfoExtractor
2014-12-13 19:24:42 +08:00
from . . compat import (
2015-01-06 02:14:50 +08:00
compat_urlparse ,
2014-04-04 06:05:43 +08:00
)
class MotorsportIE ( InfoExtractor ) :
IE_DESC = ' motorsport.com '
2015-01-06 02:14:50 +08:00
_VALID_URL = r ' http://www \ .motorsport \ .com/[^/?#]+/video/(?:[^/?#]+/)(?P<id>[^/]+)/?(?:$|[?#]) '
2014-04-04 06:05:43 +08:00
_TEST = {
' url ' : ' http://www.motorsport.com/f1/video/main-gallery/red-bull-racing-2014-rules-explained/ ' ,
' info_dict ' : {
2015-01-06 02:14:50 +08:00
' id ' : ' 2-T3WuR-KMM ' ,
2014-04-04 06:05:43 +08:00
' ext ' : ' mp4 ' ,
' title ' : ' Red Bull Racing: 2014 Rules Explained ' ,
2015-01-06 02:14:50 +08:00
' duration ' : 208 ,
2014-04-04 06:05:43 +08:00
' description ' : ' A new clip from Red Bull sees Daniel Ricciardo and Sebastian Vettel explain the 2014 Formula One regulations – which are arguably the most complex the sport has ever seen. ' ,
2015-01-06 02:14:50 +08:00
' uploader ' : ' mcomstaff ' ,
' uploader_id ' : ' UC334JIYKkVnyFoNCclfZtHQ ' ,
' upload_date ' : ' 20140903 ' ,
' thumbnail ' : r ' re:^https?://.+ \ .jpg$ '
} ,
' add_ie ' : [ ' Youtube ' ] ,
' params ' : {
' skip_download ' : True ,
} ,
2014-04-04 06:05:43 +08:00
}
def _real_extract ( self , url ) :
2014-12-13 19:24:42 +08:00
display_id = self . _match_id ( url )
2014-04-04 06:05:43 +08:00
webpage = self . _download_webpage ( url , display_id )
2014-12-13 19:24:42 +08:00
2015-01-06 02:14:50 +08:00
iframe_path = self . _html_search_regex (
r ' <iframe id= " player_iframe " [^>]+src= " ([^ " ]+) " ' , webpage ,
' iframe path ' )
iframe = self . _download_webpage (
compat_urlparse . urljoin ( url , iframe_path ) , display_id ,
' Downloading iframe ' )
youtube_id = self . _search_regex (
r ' www.youtube.com/embed/(. {11} ) ' , iframe , ' youtube id ' )
2014-04-04 06:05:43 +08:00
return {
2015-01-06 02:14:50 +08:00
' _type ' : ' url_transparent ' ,
2014-04-04 06:05:43 +08:00
' display_id ' : display_id ,
2015-01-06 02:14:50 +08:00
' url ' : ' https://youtube.com/watch?v= %s ' % youtube_id ,
2014-04-04 06:05:43 +08:00
}