2015-12-31 19:02:33 +08:00
# coding: utf-8
from __future__ import unicode_literals
from . common import InfoExtractor
2016-08-07 03:53:13 +08:00
from . . utils import (
smuggle_url ,
update_url_query ,
)
2015-12-31 19:02:33 +08:00
class FOXIE ( InfoExtractor ) :
_VALID_URL = r ' https?://(?:www \ .)?fox \ .com/watch/(?P<id>[0-9]+) '
_TEST = {
' url ' : ' http://www.fox.com/watch/255180355939/7684182528 ' ,
2016-02-10 00:30:42 +08:00
' md5 ' : ' ebd296fcc41dd4b19f8115d8461a3165 ' ,
2015-12-31 19:02:33 +08:00
' info_dict ' : {
' id ' : ' 255180355939 ' ,
' ext ' : ' mp4 ' ,
' title ' : ' Official Trailer: Gotham ' ,
' description ' : ' Tracing the rise of the great DC Comics Super-Villains and vigilantes, Gotham reveals an entirely new chapter that has never been told. ' ,
' duration ' : 129 ,
2016-04-02 01:06:11 +08:00
' timestamp ' : 1400020798 ,
' upload_date ' : ' 20140513 ' ,
' uploader ' : ' NEWA-FNG-FOXCOM ' ,
2015-12-31 19:02:33 +08:00
} ,
' add_ie ' : [ ' ThePlatform ' ] ,
}
def _real_extract ( self , url ) :
video_id = self . _match_id ( url )
webpage = self . _download_webpage ( url , video_id )
release_url = self . _parse_json ( self . _search_regex (
r ' " fox_pdk_player " \ s*: \ s*( { [^}]+?}) ' , webpage , ' fox_pdk_player ' ) ,
2016-08-07 03:53:13 +08:00
video_id ) [ ' release_url ' ]
2015-12-31 19:02:33 +08:00
return {
' _type ' : ' url_transparent ' ,
' ie_key ' : ' ThePlatform ' ,
2016-08-07 03:53:13 +08:00
' url ' : smuggle_url ( update_url_query (
release_url , { ' switch ' : ' http ' } ) , { ' force_smil_url ' : True } ) ,
2015-12-31 19:02:33 +08:00
' id ' : video_id ,
}