Files
video-pipeline/modules/date_utils.py
2025-07-23 11:52:09 -07:00

23 lines
800 B
Python

from datetime import datetime
from pathlib import Path
def parse_stream_date(path: Path) -> datetime:
"""
Extracts a datetime object from a stream session folder name.
Assumes the structure: Z:/YYYY.MM.DD[.N]/category/clip.mp4
Always returns the date from the stream folder (two levels up).
"""
session_folder = path.parent.parent # clip.mp4 → montages → 2025.06.20
folder_name = session_folder.name.strip()
date_parts = folder_name.split('.')[:3]
if len(date_parts) != 3:
raise ValueError(f"Invalid folder name format: {folder_name}")
date_str = '.'.join(date_parts)
try:
return datetime.strptime(date_str, '%Y.%m.%d')
except Exception as e:
raise ValueError(f"Failed to parse '{date_str}' from '{folder_name}': {e}")