Skip to content

Video Utils

Video utilities for duration probing.

This module provides utility functions for working with video files, including whole-video duration resolution used by keyframe extraction. Per-timestamp frame decoding lives in FrameExtractionProcessor.

get_video_duration_seconds(video_attachment)

Probe video duration in seconds from attachment bytes or a local file URL.

Parameters:

Name Type Description Default
video_attachment Attachment

Source video attachment.

required

Returns:

Type Description
float | None

float | None: Duration in seconds, or None when probing fails.

resolve_video_duration(video_attachment, explicit_duration=None)

Resolve whole-video duration from explicit input, metadata, or probing.

Resolution order: 1. explicit_duration when provided and positive. 2. video_duration / duration keys on attachment.metadata. 3. Container metadata probed from attachment bytes (hachoir, then OpenCV fallback).

Parameters:

Name Type Description Default
video_attachment Attachment

Source video attachment.

required
explicit_duration float | None

Caller-provided duration in seconds.

None

Returns:

Type Description
float | None

float | None: Resolved duration in seconds, or None when unavailable.