23 lines
800 B
Python
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}")
|