AI-powered video analysis and knowledge extraction tool
Project description
PlanOpticon
AI-powered video analysis and knowledge extraction.
PlanOpticon processes video recordings into structured knowledge — transcripts, diagrams, action items, key points, and knowledge graphs. It auto-discovers available models across OpenAI, Anthropic, and Gemini, and produces rich multi-format output.
Features
- Multi-provider AI — Auto-discovers and routes to the best available model across OpenAI, Anthropic, and Google Gemini
- Smart frame extraction — Change detection for transitions + periodic capture for slow-evolving content (document scrolling, screen shares)
- People frame filtering — OpenCV face detection automatically removes webcam/video conference frames, keeping only shared content
- Diagram extraction — Vision model classification detects flowcharts, architecture diagrams, charts, and whiteboards
- Knowledge graphs — Extracts entities and relationships, builds and merges knowledge graphs across videos
- Action item detection — Finds commitments, tasks, and follow-ups with assignees and deadlines
- Batch processing — Process entire folders of videos with merged knowledge graphs and cross-referencing
- Rich output — Markdown, HTML, PDF reports. Mermaid diagrams, SVG/PNG renderings, JSON manifests
- Cloud sources — Fetch videos from Google Drive and Dropbox shared folders
- Checkpoint/resume — Pipeline resumes from where it left off if interrupted
- Screengrab fallback — When extraction isn't perfect, captures frames with captions — something is always better than nothing
Quick Start
# Install
pip install planopticon
# Analyze a single video
planopticon analyze -i meeting.mp4 -o ./output
# Process a folder of videos
planopticon batch -i ./recordings -o ./output --title "Weekly Meetings"
# See available AI models
planopticon list-models
Installation
From PyPI
pip install planopticon
# With all extras (PDF, cloud sources, GPU)
pip install planopticon[all]
From Source
git clone https://github.com/ConflictHQ/PlanOpticon.git
cd PlanOpticon
pip install -e ".[dev]"
Binary Download
Download standalone binaries (no Python required) from GitHub Releases.
Requirements
- Python 3.10+
- FFmpeg (
brew install ffmpeg/apt install ffmpeg) - At least one API key:
OPENAI_API_KEY,ANTHROPIC_API_KEY, orGEMINI_API_KEY
Output Structure
output/
├── manifest.json # Single source of truth
├── transcript/
│ ├── transcript.json # Full transcript with timestamps
│ ├── transcript.txt # Plain text
│ └── transcript.srt # Subtitles
├── frames/ # Content frames (people filtered out)
├── diagrams/ # Detected diagrams + mermaid code
├── captures/ # Screengrab fallbacks
└── results/
├── analysis.md # Markdown report
├── analysis.html # HTML report
├── analysis.pdf # PDF report
├── knowledge_graph.json # Entities and relationships
├── key_points.json # Extracted key points
└── action_items.json # Tasks and follow-ups
Processing Depth
| Depth | What you get |
|---|---|
basic |
Transcription, key points, action items |
standard |
+ Diagram extraction (10 frames), knowledge graph, full reports |
comprehensive |
+ More frames analyzed (20), deeper extraction |
Documentation
Full documentation at planopticon.dev
License
MIT License — Copyright (c) 2026 CONFLICT LLC
Project details
Release history Release notifications | RSS feed
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 planopticon-0.2.0.tar.gz.
File metadata
- Download URL: planopticon-0.2.0.tar.gz
- Upload date:
- Size: 81.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4d3a59580fa743548e4ab4cef18e6ba4602278415549db45d66c91c1828e9c4
|
|
| MD5 |
e073805c37278ccab26acb612a12235c
|
|
| BLAKE2b-256 |
a6d140bd1c5c349570e1cb6d8b892624be3ec869e6e322936a45afaad7c4b287
|
Provenance
The following attestation bundles were made for planopticon-0.2.0.tar.gz:
Publisher:
publish.yml on ConflictHQ/PlanOpticon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
planopticon-0.2.0.tar.gz -
Subject digest:
c4d3a59580fa743548e4ab4cef18e6ba4602278415549db45d66c91c1828e9c4 - Sigstore transparency entry: 953415861
- Sigstore integration time:
-
Permalink:
ConflictHQ/PlanOpticon@41f82a631ee49b13b50be47675a1e26d5c5fec62 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/ConflictHQ
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@41f82a631ee49b13b50be47675a1e26d5c5fec62 -
Trigger Event:
release
-
Statement type:
File details
Details for the file planopticon-0.2.0-py3-none-any.whl.
File metadata
- Download URL: planopticon-0.2.0-py3-none-any.whl
- Upload date:
- Size: 79.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7cc56cccbc4fe8c8a3c99b03b631c4cf281553090a19b462227ca61b0a98da5
|
|
| MD5 |
4787f7fadfa956db5aa5fc56346e0d50
|
|
| BLAKE2b-256 |
a16e38a4a1def42f31efc9d4863ce42371e4e9e5ea2a8020534c811aef340699
|
Provenance
The following attestation bundles were made for planopticon-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on ConflictHQ/PlanOpticon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
planopticon-0.2.0-py3-none-any.whl -
Subject digest:
d7cc56cccbc4fe8c8a3c99b03b631c4cf281553090a19b462227ca61b0a98da5 - Sigstore transparency entry: 953415866
- Sigstore integration time:
-
Permalink:
ConflictHQ/PlanOpticon@41f82a631ee49b13b50be47675a1e26d5c5fec62 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/ConflictHQ
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@41f82a631ee49b13b50be47675a1e26d5c5fec62 -
Trigger Event:
release
-
Statement type: