TG Video Check
针对 Telegram 导出场景的视频损坏检测 CLI,优先识别被中断下载导致的半截视频文件。
当前能力
- 递归扫描一个或多个目录中的常见视频扩展名
- 使用 SQLite 落盘扫描状态,并基于
path + size + mtime复用旧结果 - stage1 使用
ffprobe做容器级快速校验 - stage2 只对可疑文件使用
ffmpeg做定向采样或完整确认 - 输出 JSONL / CSV 报告
基本用法
uv run tgvideo-check scan D:\Exports\ChatA D:\Exports\ChatB --profile tg-hdd
常用参数:
--db:指定 SQLite 状态库--export-jsonl/--export-csv:导出结果报告--stage1-workers/--stage2-workers:覆盖 profile 默认 worker 数--queue-limit:限制单阶段批次大小,避免把待处理文件一次性堆进内存--full-decode-confirm:对 stage2 强制使用完整解码确认
性能 Smoke
仓库内提供了 tests/test_perf_smoke.py,默认跳过,不把环境波动硬编码成普通单测。
手动运行方式:
$env:TGVIDEO_RUN_PERF_SMOKE='1'
uv run pytest tests/test_perf_smoke.py -q
这个 smoke 目前只做两件事:
- 生成一批最小测试视频
- 分别跑
stage1_workers=1和stage1_workers=2,确认基线采集流程可执行
它不是严格 benchmark;真正的默认参数取舍,仍应基于真实 HDD 数据集人工复核。