@ -5,6 +5,7 @@ import json
from . common import InfoExtractor
from . common import InfoExtractor
from . . utils import (
from . . utils import (
compat_str ,
ExtractorError ,
ExtractorError ,
xpath_with_ns ,
xpath_with_ns ,
)
)
@ -55,7 +56,7 @@ class ThePlatformIE(InfoExtractor):
body = meta . find ( _x ( ' smil:body ' ) )
body = meta . find ( _x ( ' smil:body ' ) )
f4m_node = body . find ( _x ( ' smil:seq//smil:video ' ) )
f4m_node = body . find ( _x ( ' smil:seq//smil:video ' ) )
if f4m_node is not None :
if f4m_node is not None and ' .f4m ' in f4m_node . attrib [ ' src ' ] :
f4m_url = f4m_node . attrib [ ' src ' ]
f4m_url = f4m_node . attrib [ ' src ' ]
if ' manifest.f4m? ' not in f4m_url :
if ' manifest.f4m? ' not in f4m_url :
f4m_url + = ' ? '
f4m_url + = ' ? '
@ -64,9 +65,10 @@ class ThePlatformIE(InfoExtractor):
f4m_url + = ' &g=UXWGVKRWHFSP&hdcore=3.0.3 '
f4m_url + = ' &g=UXWGVKRWHFSP&hdcore=3.0.3 '
formats = self . _extract_f4m_formats ( f4m_url , video_id )
formats = self . _extract_f4m_formats ( f4m_url , video_id )
else :
else :
base_url = head . find ( _x ( ' smil:meta ' ) ) . attrib [ ' base ' ]
switch = body . find ( _x ( ' smil:switch ' ) )
formats = [ ]
formats = [ ]
switch = body . find ( _x ( ' smil:switch ' ) )
if switch is not None :
base_url = head . find ( _x ( ' smil:meta ' ) ) . attrib [ ' base ' ]
for f in switch . findall ( _x ( ' smil:video ' ) ) :
for f in switch . findall ( _x ( ' smil:video ' ) ) :
attr = f . attrib
attr = f . attrib
width = int ( attr [ ' width ' ] )
width = int ( attr [ ' width ' ] )
@ -82,6 +84,16 @@ class ThePlatformIE(InfoExtractor):
' height ' : height ,
' height ' : height ,
' vbr ' : vbr ,
' vbr ' : vbr ,
} )
} )
else :
switch = body . find ( _x ( ' smil:seq//smil:switch ' ) )
for f in switch . findall ( _x ( ' smil:video ' ) ) :
attr = f . attrib
vbr = int ( attr [ ' system-bitrate ' ] ) / / 1000
formats . append ( {
' format_id ' : compat_str ( vbr ) ,
' url ' : attr [ ' src ' ] ,
' vbr ' : vbr ,
} )
self . _sort_formats ( formats )
self . _sort_formats ( formats )
return {
return {