@ -3,8 +3,8 @@ from __future__ import unicode_literals
from . common import InfoExtractor
from . common import InfoExtractor
from . . utils import (
from . . utils import (
determine_ext ,
js_to_json ,
js_to_json ,
smuggle_url ,
)
)
@ -18,13 +18,16 @@ class LA7IE(InfoExtractor):
_TESTS = [ {
_TESTS = [ {
# 'src' is a plain URL
# 'src' is a plain URL
' url ' : ' http://www.la7.it/crozza/video/inccool8-02-10-2015-163722 ' ,
' url ' : ' http://www.la7.it/crozza/video/inccool8-02-10-2015-163722 ' ,
' md5 ' : ' 6054674766e7988d3e02f2148ff92180 ' ,
' md5 ' : ' 8b613ffc0c4bf9b9e377169fc19c214c ' ,
' info_dict ' : {
' info_dict ' : {
' id ' : ' inccool8-02-10-2015-163722 ' ,
' id ' : ' inccool8-02-10-2015-163722 ' ,
' ext ' : ' mp4 ' ,
' ext ' : ' mp4 ' ,
' title ' : ' Inc.Cool8 ' ,
' title ' : ' Inc.Cool8 ' ,
' description ' : ' Benvenuti nell \' incredibile mondo della INC. COOL. 8. dove “INC.” sta per “Incorporated” “COOL” sta per “fashion” ed Eight sta per il gesto atletico ' ,
' description ' : ' Benvenuti nell \' incredibile mondo della INC. COOL. 8. dove “INC.” sta per “Incorporated” “COOL” sta per “fashion” ed Eight sta per il gesto atletico ' ,
' thumbnail ' : ' re:^https?://.* ' ,
' thumbnail ' : ' re:^https?://.* ' ,
' uploader_id ' : ' kdla7pillole@iltrovatore.it ' ,
' timestamp ' : 1443814869 ,
' upload_date ' : ' 20151002 ' ,
} ,
} ,
} , {
} , {
# 'src' is a dictionary
# 'src' is a dictionary
@ -49,26 +52,14 @@ class LA7IE(InfoExtractor):
self . _search_regex ( r ' videoLa7 \ (( { [^;]+}) \ ); ' , webpage , ' player data ' ) ,
self . _search_regex ( r ' videoLa7 \ (( { [^;]+}) \ ); ' , webpage , ' player data ' ) ,
video_id , transform_source = js_to_json )
video_id , transform_source = js_to_json )
source = player_data [ ' src ' ]
source_urls = source . values ( ) if isinstance ( source , dict ) else [ source ]
formats = [ ]
for source_url in source_urls :
ext = determine_ext ( source_url )
if ext == ' m3u8 ' :
formats . extend ( self . _extract_m3u8_formats (
source_url , video_id , ext = ' mp4 ' ,
entry_protocol = ' m3u8_native ' , m3u8_id = ' hls ' ) )
else :
formats . append ( {
' url ' : source_url ,
} )
self . _sort_formats ( formats )
return {
return {
' _type ' : ' url_transparent ' ,
' url ' : smuggle_url ( ' kaltura:103: %s ' % player_data [ ' vid ' ] , {
' service_url ' : ' http://kdam.iltrovatore.it ' ,
} ) ,
' id ' : video_id ,
' id ' : video_id ,
' title ' : player_data [ ' title ' ] ,
' title ' : player_data [ ' title ' ] ,
' description ' : self . _og_search_description ( webpage , default = None ) ,
' description ' : self . _og_search_description ( webpage , default = None ) ,
' thumbnail ' : player_data . get ( ' poster ' ) ,
' thumbnail ' : player_data . get ( ' poster ' ) ,
' formats' : formats ,
' ie_key ' : ' Kaltura ' ,
}
}