import pysrt import pandas as pd import chardet from pathlib import Path def parse_srt_to_df(filepath: str) -> pd.DataFrame: print(f"Загружаю {filepath}") raw = Path(filepath).read_bytes()[:4096] enc = chardet.detect(raw)["encoding"] subs = pysrt.open(filepath, encoding=enc) rows = [] for sub in subs: text = sub.text.replace('\n', ' ').strip() if text: rows.append({ "start": sub.start.to_time(), "end": sub.end.to_time(), "text": text }) return pd.DataFrame(rows)