LLM-friendly Python video editing with JSON plans, local AI, and MCP tools. Exposes auto-edit primitives (analyze, catalog, validate, repair, render) as MCP tools for agent-driven video editing.
videopython exposes 9 video editing tools with complete input schemas and detailed descriptions (avg 180 chars). Naming is clear and verb-driven (analyze_, build_, export_, import_, validate_, repair_, run_, scene_). However, output schemas are not documented in the provided source, only input schemas are visible. Error handling descriptions exist but lack recovery guidance. Tool composition is sound: each tool has a single responsibility, and outputs chain naturally (analyze → build_catalog → validate/repair/run). No security issues detected (no credentials in params). Descriptions are LLM-optimized and include prerequisites and mode distinctions.
Analyze a source video (scenes, transcript, captions) and cache it for build_catalog. The default ``profile="editing"`` skips audio classification; the catalog (captions + transcript + face flag) is unaffected. ``profile="full"`` adds audio classification. The result reports whether each analyzer completed, was disabled, or failed. Call this once per source, then build_catalog.
Build and cache visual scenes, or speech passages with explicit speech settings. The first text block is the full catalog JSON (id/duration/shot_type/caption/ transcript per scene -- enough to shortlist from text alone). Up to ``_MAX_INLINE_KEYFRAMES`` downscaled keyframes follow; a final note names any scene ids whose images were omitted (fetch them with scene_keyframes). Pass ``sources`` to restrict to specific analyzed paths, or omit for all.
Verify the source and save its cached analysis, without inference.
Verify and cache a saved analysis; clear the catalog without starting models.
Repair the mechanical issues in an edit plan and normalize segment dimensions. Returns the resolved+repaired VideoEdit and a changelog, for inspection; ``edit`` is None with structured ``errors`` if the plan does not resolve. The returned ``edit`` is a concrete VideoEdit, not an EditPlan -- keep refining by adjusting the original by-id plan, not by resubmitting this output. run_edit applies the same repair before rendering.
Output schemas not documented. Tools return structured data (catalog JSON, keyframes, errors) but the response format is not specified in the provided source. LLMs cannot plan downstream calls without knowing what fields to expect.
Error recovery guidance missing. validate_edit and repair_edit return structured errors (code, unknown_scene_ids) but descriptions do not explain what the LLM should do next (e.g., 'If unknown_scene_ids, call build_catalog with the correct sources').
export_analysis and import_analysis descriptions are brief (70 chars) and lack context on when to use them vs. analyze_video. No guidance on the analysis file format or prerequisites.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2025-06-18+ | v2 |
Render an edit plan to an MP4 file (the path suffix is normalized to .mp4). Resolves scene ids, repairs + normalizes, validates, then renders. If the plan does not resolve or validation still fails, returns structured ``errors`` and ``output_path`` None instead of rendering.
Return downscaled keyframe images for specific catalog scene ids (use after build_catalog).
Return full transcript text by catalog ID, without the catalog excerpt limit.
Validate an edit plan (an EditPlan referencing catalog scene ids). Returns every problem at once as structured errors; ``valid`` is True when the list is empty. A schema-invalid plan or an unknown scene id is reported the same way (error ``code`` ``schema_invalid`` / ``unknown_scene_ids``).
scene_keyframes and scene_transcripts descriptions do not explain the relationship to build_catalog or mention the _MAX_INLINE_KEYFRAMES limit referenced in build_catalog. Dependency hints are missing.
No confirmation or dry-run pattern for destructive operations. run_edit renders to MP4 (irreversible) but does not offer a preview or confirmation step. Agents could accidentally overwrite files.