@@ -194,6 +194,7 @@ def _format_scene_collection(self, scene_collection_data: dict) -> SceneCollecti
194
194
description = scene .get ("description" ),
195
195
id = scene .get ("scene_id" ),
196
196
frames = frames ,
197
+ index_id = scene .get ("index_id" ),
197
198
)
198
199
scenes .append (scene )
199
200
@@ -221,6 +222,8 @@ def extract_scenes(
221
222
"callback_url" : callback_url ,
222
223
},
223
224
)
225
+ if not scenes_data :
226
+ return None
224
227
return self ._format_scene_collection (scenes_data .get ("scene_collection" ))
225
228
226
229
def get_scene_collection (self , collection_id : str ):
@@ -248,7 +251,7 @@ def index_scenes(
248
251
scenes : List [Scene ] = [],
249
252
force : bool = False ,
250
253
callback_url : str = None ,
251
- ) -> List [Scene ]:
254
+ ) -> List [Scene ] or None :
252
255
scenes_data = self ._connection .post (
253
256
path = f"{ ApiPath .video } /{ self .id } /{ ApiPath .index } /{ ApiPath .scene } " ,
254
257
data = {
@@ -260,7 +263,18 @@ def index_scenes(
260
263
"callback_url" : callback_url ,
261
264
},
262
265
)
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
+ ]
264
278
265
279
def get_scene_indexes (self ) -> List :
266
280
index_data = self ._connection .get (
@@ -269,11 +283,23 @@ def get_scene_indexes(self) -> List:
269
283
270
284
return index_data .get ("scene_indexes" , [])
271
285
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 :
273
287
index_data = self ._connection .get (
274
288
path = f"{ ApiPath .video } /{ self .id } /{ ApiPath .index } /{ ApiPath .scene } /{ scene_index_id } "
275
289
)
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
+ ]
277
303
278
304
def delete_scene_index (self , scene_index_id : str ) -> None :
279
305
self ._connection .delete (
0 commit comments