timelapse.py 1.1 KB

123456789101112131415161718192021222324252627282930
  1. """Schemas for timelapse video processing."""
  2. from pydantic import BaseModel, Field
  3. class TimelapseInfoResponse(BaseModel):
  4. """Video metadata response."""
  5. duration: float = Field(description="Video duration in seconds")
  6. width: int = Field(description="Video width in pixels")
  7. height: int = Field(description="Video height in pixels")
  8. fps: float = Field(description="Frames per second")
  9. codec: str = Field(description="Video codec name")
  10. file_size: int = Field(description="File size in bytes")
  11. has_audio: bool = Field(description="Whether video has audio track")
  12. class ThumbnailResponse(BaseModel):
  13. """Timeline thumbnail response."""
  14. thumbnails: list[str] = Field(description="Base64 encoded JPEG thumbnails")
  15. timestamps: list[float] = Field(description="Timestamp for each thumbnail in seconds")
  16. class ProcessResponse(BaseModel):
  17. """Processing result response."""
  18. status: str = Field(description="Processing status: completed, error")
  19. output_path: str | None = Field(default=None, description="Relative path to output file")
  20. message: str = Field(description="Status message")