1212
1313import re
1414
15+ from six .moves .urllib_parse import urlencode
16+
1517from . import keys
1618from .log import log
1719
@@ -58,7 +60,11 @@ def m3u8_wrapper(*args, **kwargs):
5860 else :
5961 error = re .search (_error_pattern , results )
6062 if error :
61- return {'error' : 'Error' , 'message' : error .group ('message' ), 'status' : 404 }
63+ return {
64+ 'error' : 'Error' ,
65+ 'message' : error .group ('message' ),
66+ 'status' : 404
67+ }
6268 return m3u8_to_list (results )
6369
6470 return m3u8_wrapper
@@ -132,7 +138,18 @@ def m3u8_to_list(string):
132138
133139def clip_embed_to_list (response ):
134140 log .debug ('clip_embed_to_list called for:\n {0}' .format (response ))
135- qualities = list ()
141+
142+ clip_json = response .get ('data' , {}).get ('clip' , {})
143+ access_token = clip_json .get ('playbackAccessToken' , {})
144+ token = access_token .get ('value' , '' )
145+ signature = access_token .get ('signature' , '' )
146+ qualities = clip_json .get ('videoQualities' , [])
147+
148+ params = urlencode ({
149+ 'sig' : signature ,
150+ 'token' : token
151+ })
152+
136153 l = list ()
137154
138155 if isinstance (response , dict ):
@@ -143,7 +160,7 @@ def clip_embed_to_list(response):
143160 l = [{
144161 'id' : item ['quality' ],
145162 'name' : item ['quality' ],
146- 'url' : item ['sourceURL' ],
163+ 'url' : item ['sourceURL' ] + '?' + params ,
147164 'bandwidth' : - 1
148165 } for item in qualities ]
149166 if l :
0 commit comments