Files
clean-broken-tgvideos/plan-for-tgvideo

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 数据集人工复核。