diff --git a/python_core/services/template_manager.py b/python_core/services/template_manager.py index 3d180fb..4e4ce88 100644 --- a/python_core/services/template_manager.py +++ b/python_core/services/template_manager.py @@ -409,14 +409,31 @@ class TemplateManager: # Extract segments if 'segments' in track_data: for segment_data in track_data['segments']: + # Extract time information from target_timerange + target_timerange = segment_data.get('target_timerange', {}) + start_time_us = target_timerange.get('start', 0) # 微秒 + duration_us = target_timerange.get('duration', 0) # 微秒 + + # Convert microseconds to seconds + start_time = start_time_us / 1000000.0 + duration = duration_us / 1000000.0 + end_time = start_time + duration + + # Get material reference for resource path + material_id = segment_data.get('material_id', '') + resource_path = '' + if material_id: + # TODO: Look up material path from materials list + resource_path = f"material_{material_id}" + segment = { 'id': segment_data.get('id', ''), 'type': segment_data.get('type', 'video'), - 'name': segment_data.get('name', 'Unnamed Segment'), - 'start_time': segment_data.get('start_time', 0), - 'end_time': segment_data.get('end_time', 0), - 'duration': segment_data.get('duration', 0), - 'resource_path': segment_data.get('resource_path', ''), + 'name': segment_data.get('name', f'Segment {len(track["segments"]) + 1}'), + 'start_time': start_time, + 'end_time': end_time, + 'duration': duration, + 'resource_path': resource_path, 'properties': segment_data.get('properties', {}), 'effects': segment_data.get('effects', []) }