Fast Video Analyzer
Fast Video Analyzer turns a video into a chronological record of its spoken content, visible text, and representative frames. It uses supplied subtitles or Whisper ASR for speech, OCR for text in frames, and scene detection to choose where to capture screenshots.
Each run writes one Markdown report and a folder of linked screenshots, crops, and supporting data. Read it to review a recording without repeatedly scrubbing through the video, or use it as source material for an LLM or AI agent.
Output
- A time-ordered report with timestamps, transcript blocks, visible text, and selected frames.
- Supplied subtitles or a locally generated Whisper transcript.
- Full-size screenshots and OCR crops linked from the report.
- A project folder containing the report, images, and validation data for later review.
Installation
Prerequisites
- Python: 3.10, 3.11, or 3.12
- FFmpeg & FFprobe: Must be available on your system
PATH.
Install
pip install "git+https://github.com/berdan-labs/fast-video-analyzer.git"
Install from source
git clone https://github.com/berdan-labs/fast-video-analyzer.git
cd fast-video-analyzer
pip install -e ".[asr,ocr]"
Verify your local environment:
fast-video-analyzer doctor --offline
Create a support bundle when asking for help. It contains sanitized capability metadata only; it does not copy source media, transcripts, screenshots, generated projects, credentials, or filesystem paths:
fast-video-analyzer diagnostic-bundle --output fast-video-analyzer-diagnostic.zip
Quickstart
Analyze a video with an existing subtitle file:
fast-video-analyzer run "path/to/video.mp4" \
--subtitle "path/to/video.srt" \
--preset strict \
--offline
If no subtitles are provided, run with offline Whisper ASR:
fast-video-analyzer run "path/to/video.mp4" \
--subtitle-mode force-asr \
--preset strict \
--offline
The installed wheel also keeps the historical entrypoints working:
long-video-analyzer doctor --offline
video-script-reconstructor doctor --offline
All three entrypoints invoke the same parser and implementation. Nested
compatibility aliases such as review bundle batch-create and
review bundle create-batch are covered by the CLI compatibility tests.
Python API
from pathlib import Path
from video_script_reconstructor.pipeline import run_pipeline
result = run_pipeline(
input_value=Path("recording.mp4"),
output_root=Path("outputs"),
subtitles=[Path("recording.srt")],
preset="strict",
)
print(f"Report: {result.markdown_path}")
print(f"Output directory: {result.project_dir}")
print(f"Status: {result.status}")
Output structure
Outputs are written alongside the source video by default:
<video_stem> (Analyzer Outputs)/
├── <video_stem>.md # Chronological Markdown notes with linked evidence
├── evidence/
│ ├── full/ # Full-resolution scene keyframes
│ └── crops/ # OCR bounding crops (code, slides, text)
└── .state/ # JSON state manifests, checksums, and audit receipts
Validation and review
Verify output integrity against timeline rules and image pixel hashes:
fast-video-analyzer validate "path/to/video (Analyzer Outputs)"
fast-video-analyzer review list "path/to/video (Analyzer Outputs)"
Privacy and security
Media processing, frame extraction, and local model inference run without telemetry or cloud calls. Subtitles and OCR text are treated as untrusted input and escaped in Markdown deliverables.
Development
uv sync --locked --extra dev
uv run python scripts/verify_repo.py
uv run ruff format --check scripts/verify_repo.py
uv run ruff check src tests scripts
uv run mypy src/video_script_reconstructor
uv run pytest tests/unit tests/integration -q
The full mandatory acceptance gate also includes the end-to-end, mutation, and packaging suites:
uv run pytest tests/e2e tests/mutation tests/packaging -q
See CONTRIBUTING.md, OPERATIONS.md, docs/releasing.md, docs/runbooks.md, and SUPPORT.md for maintainer and contributor workflows.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fast_video_analyzer-0.1.0.tar.gz.
File metadata
- Download URL: fast_video_analyzer-0.1.0.tar.gz
- Upload date:
- Size: 913.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c432f8eef0d7d536124a758b917b0aadcc83fdf13918f459e1b9d0e2cb77d52
|
|
| MD5 |
64ac8ef5ad35107286fa5959e6b4b582
|
|
| BLAKE2b-256 |
3dcf271cf69c65fa7d013e659ac926a03028f454d4ebe6dac01d13b993252cda
|
Provenance
The following attestation bundles were made for fast_video_analyzer-0.1.0.tar.gz:
Publisher:
release.yml on berdan-labs/fast-video-analyzer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fast_video_analyzer-0.1.0.tar.gz -
Subject digest:
8c432f8eef0d7d536124a758b917b0aadcc83fdf13918f459e1b9d0e2cb77d52 - Sigstore transparency entry: 2527550338
- Sigstore integration time:
-
Permalink:
berdan-labs/fast-video-analyzer@50ecd0528d42774e2ed88380f372384aeee8a065 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/berdan-labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@50ecd0528d42774e2ed88380f372384aeee8a065 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file fast_video_analyzer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fast_video_analyzer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 471.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f31a1c8be3f2a30d8f03ceba2b4cec152f35608937ab7a4f5febb3823a6b2a37
|
|
| MD5 |
8d51e1adfb31ca8bd959dd4dfa209f87
|
|
| BLAKE2b-256 |
ef1f95f0379e66d58ffc5e13f6e6668e089730cc948f293326cef2512e3b4123
|
Provenance
The following attestation bundles were made for fast_video_analyzer-0.1.0-py3-none-any.whl:
Publisher:
release.yml on berdan-labs/fast-video-analyzer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fast_video_analyzer-0.1.0-py3-none-any.whl -
Subject digest:
f31a1c8be3f2a30d8f03ceba2b4cec152f35608937ab7a4f5febb3823a6b2a37 - Sigstore transparency entry: 2527550573
- Sigstore integration time:
-
Permalink:
berdan-labs/fast-video-analyzer@50ecd0528d42774e2ed88380f372384aeee8a065 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/berdan-labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@50ecd0528d42774e2ed88380f372384aeee8a065 -
Trigger Event:
workflow_dispatch
-
Statement type: