Spaces:
Sleeping
Sleeping
| """API response models.""" | |
| from pydantic import BaseModel, Field | |
| from typing import Optional, Dict, List | |
| from datetime import datetime | |
| class ExtractionResponse(BaseModel): | |
| """Response for direct extraction.""" | |
| file_path: str | |
| media_type: str | |
| filename: str | |
| processing_time: float | |
| file_size: int | |
| class JobCreatedResponse(BaseModel): | |
| """Response when a background job is created.""" | |
| job_id: str | |
| external_job_id: Optional[str] = None | |
| status: str | |
| message: str | |
| check_url: str | |
| file_size_mb: float | |
| class JobStatusResponse(BaseModel): | |
| """Response for job status check.""" | |
| job_id: str | |
| external_job_id: Optional[str] = None | |
| status: str | |
| created_at: datetime | |
| updated_at: datetime | |
| filename: Optional[str] = None | |
| file_size_mb: Optional[float] = None | |
| output_format: Optional[str] = None | |
| quality: Optional[str] = None | |
| processing_time: Optional[float] = None | |
| error: Optional[str] = None | |
| download_url: Optional[str] = None | |
| class ErrorResponse(BaseModel): | |
| """Standard error response.""" | |
| error: str | |
| details: Optional[str] = None | |
| code: Optional[str] = None | |
| class AuthenticationErrorResponse(BaseModel): | |
| """Authentication error response.""" | |
| error: str = "Authentication required" | |
| details: Optional[str] = None | |
| code: str = "AUTHENTICATION_ERROR" | |
| class ValidationErrorResponse(BaseModel): | |
| """Validation error response.""" | |
| error: str = "Validation failed" | |
| details: Optional[str] = None | |
| code: str = "VALIDATION_ERROR" | |
| field: Optional[str] = None | |
| class DuplicateJobIdErrorResponse(BaseModel): | |
| """Duplicate external job ID error response.""" | |
| error: str = "Duplicate external job ID" | |
| details: Optional[str] = None | |
| code: str = "DUPLICATE_EXTERNAL_JOB_ID" | |
| external_job_id: Optional[str] = None | |
| class ApiInfoResponse(BaseModel): | |
| """API information response.""" | |
| version: str | |
| supported_video_formats: List[str] | |
| supported_audio_formats: List[str] | |
| quality_levels: List[str] | |
| max_direct_response_size_mb: float | |
| endpoints: Dict[str, str] |