@@ -194,6 +194,7 @@ def _format_scene_collection(self, scene_collection_data: dict) -> SceneCollecti
194194 description = scene .get ("description" ),
195195 id = scene .get ("scene_id" ),
196196 frames = frames ,
197+ index_id = scene .get ("index_id" ),
197198 )
198199 scenes .append (scene )
199200
@@ -221,6 +222,8 @@ def extract_scenes(
221222 "callback_url" : callback_url ,
222223 },
223224 )
225+ if not scenes_data :
226+ return None
224227 return self ._format_scene_collection (scenes_data .get ("scene_collection" ))
225228
226229 def get_scene_collection (self , collection_id : str ):
@@ -248,7 +251,7 @@ def index_scenes(
248251 scenes : List [Scene ] = [],
249252 force : bool = False ,
250253 callback_url : str = None ,
251- ) -> List [Scene ]:
254+ ) -> List [Scene ] or None :
252255 scenes_data = self ._connection .post (
253256 path = f"{ ApiPath .video } /{ self .id } /{ ApiPath .index } /{ ApiPath .scene } " ,
254257 data = {
@@ -260,7 +263,18 @@ def index_scenes(
260263 "callback_url" : callback_url ,
261264 },
262265 )
263- return scenes_data .get ("scene_index_records" , [])
266+ if not scenes_data :
267+ return None
268+ return [
269+ Scene (
270+ video_id = self .id ,
271+ start = scene .get ("start" ),
272+ end = scene .get ("end" ),
273+ index_id = scene .get ("scene_index_id" ),
274+ description = scene .get ("description" ),
275+ )
276+ for scene in scenes_data .get ("scene_index_records" , [])
277+ ]
264278
265279 def get_scene_indexes (self ) -> List :
266280 index_data = self ._connection .get (
@@ -269,11 +283,23 @@ def get_scene_indexes(self) -> List:
269283
270284 return index_data .get ("scene_indexes" , [])
271285
272- def get_scene_index (self , scene_index_id : str ) -> Scene :
286+ def get_scene_index (self , scene_index_id : str ) -> List [ Scene ] or None :
273287 index_data = self ._connection .get (
274288 path = f"{ ApiPath .video } /{ self .id } /{ ApiPath .index } /{ ApiPath .scene } /{ scene_index_id } "
275289 )
276- return index_data .get ("scene_index_records" , [])
290+ index_records = index_data .get ("scene_index_records" , [])
291+ if not index_records :
292+ return None
293+ return [
294+ Scene (
295+ video_id = self .id ,
296+ start = scene .get ("start" ),
297+ end = scene .get ("end" ),
298+ index_id = scene .get ("scene_index_id" ),
299+ description = scene .get ("description" ),
300+ )
301+ for scene in index_records
302+ ]
277303
278304 def delete_scene_index (self , scene_index_id : str ) -> None :
279305 self ._connection .delete (
0 commit comments