@@ -88,7 +88,7 @@ def _legacy_video(video_id):
8888 return q
8989
9090
91- def live_request (channel , platform = keys .WEB , headers = {}):
91+ def live_request (channel , platform = keys .WEB , headers = {}, supported_codecs = None ):
9292 token = channel_token (channel , platform = platform , headers = headers )
9393 token = get_access_token (token )
9494
@@ -112,6 +112,8 @@ def live_request(channel, platform=keys.WEB, headers={}):
112112 q .add_param (keys .PLAYLIST_INCLUDE_FRAMERATE , Boolean .TRUE )
113113 q .add_param (keys .RTQOS , keys .CONTROL )
114114 q .add_param (keys .PLAYER_BACKEND , keys .MEDIAPLAYER )
115+ if supported_codecs :
116+ q .add_param ('supported_codecs' , supported_codecs )
115117 url = '?' .join ([q .url , urlencode (q .params )])
116118 request_dict = {
117119 'url' : url ,
@@ -122,7 +124,7 @@ def live_request(channel, platform=keys.WEB, headers={}):
122124
123125
124126@query
125- def _live (channel , token , headers = {}):
127+ def _live (channel , token , headers = {}, supported_codecs = None ):
126128 signature = token [keys .SIGNATURE ]
127129 access_token = token [keys .VALUE ]
128130
@@ -139,22 +141,24 @@ def _live(channel, token, headers={}):
139141 q .add_param (keys .PLAYLIST_INCLUDE_FRAMERATE , Boolean .TRUE )
140142 q .add_param (keys .RTQOS , keys .CONTROL )
141143 q .add_param (keys .PLAYER_BACKEND , keys .MEDIAPLAYER )
144+ if supported_codecs :
145+ q .add_param ('supported_codecs' , supported_codecs )
142146 return q
143147
144148
145149@m3u8
146- def live (channel , platform = keys .WEB , headers = {}):
150+ def live (channel , platform = keys .WEB , headers = {}, supported_codecs = None ):
147151 token = channel_token (channel , platform = platform , headers = headers )
148152 token = get_access_token (token )
149153 if not token :
150154 return ACCESS_TOKEN_EXCEPTION
151155 elif isinstance (token , dict ) and 'error' in token :
152156 return token
153157 else :
154- return _live (channel , token , headers = headers )
158+ return _live (channel , token , headers = headers , supported_codecs = supported_codecs )
155159
156160
157- def video_request (video_id , platform = keys .WEB , headers = {}):
161+ def video_request (video_id , platform = keys .WEB , headers = {}, supported_codecs = None ):
158162 video_id = valid_video_id (video_id )
159163 if video_id :
160164 token = vod_token (video_id , platform = platform , headers = headers )
@@ -178,6 +182,8 @@ def video_request(video_id, platform=keys.WEB, headers={}):
178182 q .add_param (keys .PLAYLIST_INCLUDE_FRAMERATE , Boolean .TRUE )
179183 q .add_param (keys .RTQOS , keys .CONTROL )
180184 q .add_param (keys .PLAYER_BACKEND , keys .MEDIAPLAYER )
185+ if supported_codecs :
186+ q .add_param ('supported_codecs' , supported_codecs )
181187 q .add_param (keys .BAKING_BREAD , Boolean .TRUE )
182188 q .add_param (keys .BAKING_BROWNIES , Boolean .TRUE )
183189 q .add_param (keys .BAKING_BROWNIES_TIMEOUT , 1050 )
@@ -193,7 +199,7 @@ def video_request(video_id, platform=keys.WEB, headers={}):
193199
194200
195201@query
196- def _vod (video_id , token , headers = {}):
202+ def _vod (video_id , token , headers = {}, supported_codecs = None ):
197203 signature = token [keys .SIGNATURE ]
198204 access_token = token [keys .VALUE ]
199205
@@ -208,14 +214,16 @@ def _vod(video_id, token, headers={}):
208214 q .add_param (keys .PLAYLIST_INCLUDE_FRAMERATE , Boolean .TRUE )
209215 q .add_param (keys .RTQOS , keys .CONTROL )
210216 q .add_param (keys .PLAYER_BACKEND , keys .MEDIAPLAYER )
217+ if supported_codecs :
218+ q .add_param ('supported_codecs' , supported_codecs )
211219 q .add_param (keys .BAKING_BREAD , Boolean .TRUE )
212220 q .add_param (keys .BAKING_BROWNIES , Boolean .TRUE )
213221 q .add_param (keys .BAKING_BROWNIES_TIMEOUT , 1050 )
214222 return q
215223
216224
217225@m3u8
218- def video (video_id , platform = keys .WEB , headers = {}):
226+ def video (video_id , platform = keys .WEB , headers = {}, supported_codecs = None ):
219227 video_id = valid_video_id (video_id )
220228 if video_id :
221229 token = vod_token (video_id , platform = platform , headers = headers )
@@ -226,7 +234,7 @@ def video(video_id, platform=keys.WEB, headers={}):
226234 elif isinstance (token , dict ) and 'error' in token :
227235 return token
228236 else :
229- return _vod (video_id , token , headers = headers )
237+ return _vod (video_id , token , headers = headers , supported_codecs = supported_codecs )
230238 else :
231239 raise NotImplementedError ('Unknown Video Type' )
232240
0 commit comments