## MODIFIED Requirements ### Requirement: Video Content Analysis The system SHALL provide functionality to analyze video content using Alibaba Cloud DashScope MultiModal API. The system SHALL extract video frames at a configurable fps rate. The system SHALL call the DashScope API with the video file using the correct local file path format (`file://{absolute_path}`) as specified in DashScope documentation. The system SHALL save the analysis results to MongoDB. #### Scenario: Successful Video Analysis - **WHEN** a user requests analysis for an uploaded video - **THEN** the system SHALL read the video file from local storage - **AND** the system SHALL construct the file path in the format `file://{absolute_path}` where `absolute_path` is the absolute path string of the video file - **AND** the system SHALL call DashScope MultiModalConversation API with the correctly formatted file path and fps parameter (default: 2) - **AND** the system SHALL receive the analysis result from the API - **AND** the system SHALL save the analysis result to MongoDB with video_id, analysis_type, content, fps, and created_at - **AND** the system SHALL update the video status to "analyzed" - **AND** the system SHALL return the analysis result to the user #### Scenario: Analysis API Failure - **WHEN** the DashScope API call fails (network error, API error, invalid file path format, etc.) - **THEN** the system SHALL handle the error gracefully - **AND** the system SHALL update the video status to "failed" - **AND** the system SHALL return an appropriate error message to the user - **AND** the system SHALL log the error with detailed information for debugging ### Requirement: Video Summary Generation The system SHALL provide functionality to generate a summary of video content. The system SHALL use the DashScope API to analyze the video using the correct local file path format (`file://{absolute_path}`) and generate a summary based on a predefined prompt template. The system SHALL save the summary to MongoDB. #### Scenario: Successful Summary Generation - **WHEN** a user requests a summary for an analyzed video - **THEN** the system SHALL construct the file path in the format `file://{absolute_path}` - **AND** the system SHALL call the DashScope API with the correctly formatted video file path and summary prompt - **AND** the system SHALL receive the summary text from the API - **AND** the system SHALL save the summary to MongoDB with video_id, summary_text, and created_at - **AND** the system SHALL return the summary to the user ### Requirement: Video Comparison The system SHALL provide functionality to compare content between multiple videos. The system SHALL extract content from each video using the correct local file path format (`file://{absolute_path}`). The system SHALL generate a comparison analysis highlighting similarities and differences. The system SHALL save the comparison result to MongoDB. #### Scenario: Successful Video Comparison - **WHEN** a user requests comparison between two or more videos - **THEN** the system SHALL construct file paths for each video in the format `file://{absolute_path}` - **AND** the system SHALL call the DashScope API with multiple correctly formatted video file paths and comparison prompt - **AND** the system SHALL generate a comparison result - **AND** the system SHALL save the comparison to MongoDB with video_ids, comparison_result, and created_at - **AND** the system SHALL return the comparison result to the user