2014-04-03 18:05:43 -04:00
from . common import InfoExtractor
2014-12-13 06:24:42 -05:00
from . . compat import (
2015-01-05 13:14:50 -05:00
compat_urlparse ,
2014-04-03 18:05:43 -04:00
)
class MotorsportIE ( InfoExtractor ) :
IE_DESC = ' motorsport.com '
2016-09-08 07:29:05 -04:00
_VALID_URL = r ' https?://(?:www \ .)?motorsport \ .com/[^/?#]+/video/(?:[^/?#]+/)(?P<id>[^/]+)/?(?:$|[?#]) '
2014-04-03 18:05:43 -04:00
_TEST = {
' url ' : ' http://www.motorsport.com/f1/video/main-gallery/red-bull-racing-2014-rules-explained/ ' ,
' info_dict ' : {
2015-01-05 13:14:50 -05:00
' id ' : ' 2-T3WuR-KMM ' ,
2014-04-03 18:05:43 -04:00
' ext ' : ' mp4 ' ,
' title ' : ' Red Bull Racing: 2014 Rules Explained ' ,
2015-01-05 13:14:50 -05:00
' duration ' : 208 ,
2014-04-03 18:05:43 -04: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-05 13:14:50 -05:00
' uploader ' : ' mcomstaff ' ,
' uploader_id ' : ' UC334JIYKkVnyFoNCclfZtHQ ' ,
' upload_date ' : ' 20140903 ' ,
' thumbnail ' : r ' re:^https?://.+ \ .jpg$ '
} ,
' add_ie ' : [ ' Youtube ' ] ,
' params ' : {
' skip_download ' : True ,
} ,
2014-04-03 18:05:43 -04:00
}
def _real_extract ( self , url ) :
2014-12-13 06:24:42 -05:00
display_id = self . _match_id ( url )
2014-04-03 18:05:43 -04:00
webpage = self . _download_webpage ( url , display_id )
2014-12-13 06:24:42 -05:00
2015-01-05 13:14:50 -05:00
iframe_path = self . _html_search_regex (
2022-09-01 16:21:04 -04:00
r ' <iframe id= " player_iframe " [^>]+src= " ([^ " ]+) " ' , webpage , ' iframe path ' , default = None )
if iframe_path is None :
iframe_path = self . _html_search_regex (
r ' <iframe [^>]* \ bsrc= " (https://motorsport \ .tv/embed/[^ " ]+) ' , webpage , ' embed iframe path ' )
return self . url_result ( iframe_path )
2015-01-05 13:14:50 -05:00
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-03 18:05:43 -04:00
return {
2015-01-05 13:14:50 -05:00
' _type ' : ' url_transparent ' ,
2014-04-03 18:05:43 -04:00
' display_id ' : display_id ,
2015-01-05 13:14:50 -05:00
' url ' : ' https://youtube.com/watch?v= %s ' % youtube_id ,
2014-04-03 18:05:43 -04:00
}