planopticon 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. planopticon-0.2.0/LICENSE +21 -0
  2. planopticon-0.2.0/MANIFEST.in +4 -0
  3. planopticon-0.2.0/PKG-INFO +174 -0
  4. planopticon-0.2.0/README.md +101 -0
  5. planopticon-0.2.0/planopticon.egg-info/PKG-INFO +174 -0
  6. planopticon-0.2.0/planopticon.egg-info/SOURCES.txt +69 -0
  7. planopticon-0.2.0/planopticon.egg-info/dependency_links.txt +1 -0
  8. planopticon-0.2.0/planopticon.egg-info/entry_points.txt +2 -0
  9. planopticon-0.2.0/planopticon.egg-info/requires.txt +53 -0
  10. planopticon-0.2.0/planopticon.egg-info/top_level.txt +1 -0
  11. planopticon-0.2.0/pyproject.toml +112 -0
  12. planopticon-0.2.0/requirements.txt +49 -0
  13. planopticon-0.2.0/setup.cfg +4 -0
  14. planopticon-0.2.0/setup.py +4 -0
  15. planopticon-0.2.0/tests/test_action_detector.py +225 -0
  16. planopticon-0.2.0/tests/test_agent.py +169 -0
  17. planopticon-0.2.0/tests/test_api_cache.py +83 -0
  18. planopticon-0.2.0/tests/test_audio_extractor.py +120 -0
  19. planopticon-0.2.0/tests/test_batch.py +247 -0
  20. planopticon-0.2.0/tests/test_cloud_sources.py +206 -0
  21. planopticon-0.2.0/tests/test_content_analyzer.py +211 -0
  22. planopticon-0.2.0/tests/test_diagram_analyzer.py +183 -0
  23. planopticon-0.2.0/tests/test_frame_extractor.py +62 -0
  24. planopticon-0.2.0/tests/test_json_parsing.py +72 -0
  25. planopticon-0.2.0/tests/test_models.py +236 -0
  26. planopticon-0.2.0/tests/test_output_structure.py +144 -0
  27. planopticon-0.2.0/tests/test_pipeline.py +93 -0
  28. planopticon-0.2.0/tests/test_prompt_templates.py +113 -0
  29. planopticon-0.2.0/tests/test_providers.py +129 -0
  30. planopticon-0.2.0/tests/test_rendering.py +259 -0
  31. planopticon-0.2.0/video_processor/__init__.py +0 -0
  32. planopticon-0.2.0/video_processor/agent/__init__.py +5 -0
  33. planopticon-0.2.0/video_processor/agent/orchestrator.py +436 -0
  34. planopticon-0.2.0/video_processor/analyzers/__init__.py +0 -0
  35. planopticon-0.2.0/video_processor/analyzers/action_detector.py +196 -0
  36. planopticon-0.2.0/video_processor/analyzers/content_analyzer.py +162 -0
  37. planopticon-0.2.0/video_processor/analyzers/diagram_analyzer.py +265 -0
  38. planopticon-0.2.0/video_processor/api/__init__.py +1 -0
  39. planopticon-0.2.0/video_processor/cli/__init__.py +0 -0
  40. planopticon-0.2.0/video_processor/cli/commands.py +564 -0
  41. planopticon-0.2.0/video_processor/cli/output_formatter.py +249 -0
  42. planopticon-0.2.0/video_processor/extractors/__init__.py +17 -0
  43. planopticon-0.2.0/video_processor/extractors/audio_extractor.py +237 -0
  44. planopticon-0.2.0/video_processor/extractors/frame_extractor.py +339 -0
  45. planopticon-0.2.0/video_processor/extractors/text_extractor.py +293 -0
  46. planopticon-0.2.0/video_processor/integrators/__init__.py +0 -0
  47. planopticon-0.2.0/video_processor/integrators/knowledge_graph.py +320 -0
  48. planopticon-0.2.0/video_processor/integrators/plan_generator.py +188 -0
  49. planopticon-0.2.0/video_processor/models.py +208 -0
  50. planopticon-0.2.0/video_processor/output_structure.py +110 -0
  51. planopticon-0.2.0/video_processor/pipeline.py +363 -0
  52. planopticon-0.2.0/video_processor/providers/__init__.py +6 -0
  53. planopticon-0.2.0/video_processor/providers/anthropic_provider.py +110 -0
  54. planopticon-0.2.0/video_processor/providers/base.py +57 -0
  55. planopticon-0.2.0/video_processor/providers/discovery.py +87 -0
  56. planopticon-0.2.0/video_processor/providers/gemini_provider.py +219 -0
  57. planopticon-0.2.0/video_processor/providers/manager.py +250 -0
  58. planopticon-0.2.0/video_processor/providers/openai_provider.py +213 -0
  59. planopticon-0.2.0/video_processor/providers/whisper_local.py +134 -0
  60. planopticon-0.2.0/video_processor/sources/__init__.py +5 -0
  61. planopticon-0.2.0/video_processor/sources/base.py +68 -0
  62. planopticon-0.2.0/video_processor/sources/dropbox_source.py +233 -0
  63. planopticon-0.2.0/video_processor/sources/google_drive.py +356 -0
  64. planopticon-0.2.0/video_processor/utils/__init__.py +0 -0
  65. planopticon-0.2.0/video_processor/utils/api_cache.py +236 -0
  66. planopticon-0.2.0/video_processor/utils/export.py +196 -0
  67. planopticon-0.2.0/video_processor/utils/json_parsing.py +58 -0
  68. planopticon-0.2.0/video_processor/utils/prompt_templates.py +324 -0
  69. planopticon-0.2.0/video_processor/utils/rendering.py +132 -0
  70. planopticon-0.2.0/video_processor/utils/usage_tracker.py +198 -0
  71. planopticon-0.2.0/video_processor/utils/visualization.py +0 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 CONFLICT LLC. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,4 @@
1
+ include LICENSE
2
+ include README.md
3
+ include requirements.txt
4
+ recursive-include video_processor *.py
@@ -0,0 +1,174 @@
1
+ Metadata-Version: 2.4
2
+ Name: planopticon
3
+ Version: 0.2.0
4
+ Summary: AI-powered video analysis and knowledge extraction tool
5
+ Author: CONFLICT LLC
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://planopticon.dev
8
+ Project-URL: Documentation, https://planopticon.dev
9
+ Project-URL: Repository, https://github.com/conflict-llc/PlanOpticon
10
+ Project-URL: Issues, https://github.com/conflict-llc/PlanOpticon/issues
11
+ Keywords: video,analysis,ai,knowledge-extraction,transcription,diagrams
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Multimedia :: Video
22
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
+ Requires-Python: >=3.10
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: numpy>=1.24.0
27
+ Requires-Dist: opencv-python>=4.8.0
28
+ Requires-Dist: scipy>=1.10.0
29
+ Requires-Dist: pillow>=10.0.0
30
+ Requires-Dist: matplotlib>=3.7.0
31
+ Requires-Dist: pydantic>=2.0.0
32
+ Requires-Dist: tqdm>=4.66.0
33
+ Requires-Dist: colorlog>=6.7.0
34
+ Requires-Dist: click>=8.1.0
35
+ Requires-Dist: librosa>=0.10.0
36
+ Requires-Dist: soundfile>=0.12.0
37
+ Requires-Dist: openai>=1.0.0
38
+ Requires-Dist: anthropic>=0.5.0
39
+ Requires-Dist: google-genai>=1.0.0
40
+ Requires-Dist: markdown>=3.4.0
41
+ Requires-Dist: mermaid-py>=0.5.0
42
+ Requires-Dist: plotly>=5.18.0
43
+ Requires-Dist: kaleido>=0.2.1
44
+ Requires-Dist: python-dotenv>=1.0.0
45
+ Requires-Dist: requests>=2.31.0
46
+ Requires-Dist: tenacity>=8.2.0
47
+ Provides-Extra: pdf
48
+ Requires-Dist: weasyprint>=60.0; extra == "pdf"
49
+ Provides-Extra: gpu
50
+ Requires-Dist: torch>=2.0.0; extra == "gpu"
51
+ Requires-Dist: torchvision>=0.15.0; extra == "gpu"
52
+ Provides-Extra: gdrive
53
+ Requires-Dist: google-auth>=2.0.0; extra == "gdrive"
54
+ Requires-Dist: google-auth-oauthlib>=1.0.0; extra == "gdrive"
55
+ Requires-Dist: google-api-python-client>=2.0.0; extra == "gdrive"
56
+ Provides-Extra: dropbox
57
+ Requires-Dist: dropbox>=12.0.0; extra == "dropbox"
58
+ Provides-Extra: cloud
59
+ Requires-Dist: planopticon[gdrive]; extra == "cloud"
60
+ Requires-Dist: planopticon[dropbox]; extra == "cloud"
61
+ Provides-Extra: dev
62
+ Requires-Dist: pytest>=7.3.0; extra == "dev"
63
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
64
+ Requires-Dist: black>=23.3.0; extra == "dev"
65
+ Requires-Dist: isort>=5.12.0; extra == "dev"
66
+ Requires-Dist: mypy>=1.3.0; extra == "dev"
67
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
68
+ Provides-Extra: all
69
+ Requires-Dist: planopticon[pdf]; extra == "all"
70
+ Requires-Dist: planopticon[cloud]; extra == "all"
71
+ Requires-Dist: planopticon[dev]; extra == "all"
72
+ Dynamic: license-file
73
+
74
+ # PlanOpticon
75
+
76
+ **AI-powered video analysis and knowledge extraction.**
77
+
78
+ 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.
79
+
80
+ ## Features
81
+
82
+ - **Multi-provider AI** — Auto-discovers and routes to the best available model across OpenAI, Anthropic, and Google Gemini
83
+ - **Smart frame extraction** — Change detection for transitions + periodic capture for slow-evolving content (document scrolling, screen shares)
84
+ - **People frame filtering** — OpenCV face detection automatically removes webcam/video conference frames, keeping only shared content
85
+ - **Diagram extraction** — Vision model classification detects flowcharts, architecture diagrams, charts, and whiteboards
86
+ - **Knowledge graphs** — Extracts entities and relationships, builds and merges knowledge graphs across videos
87
+ - **Action item detection** — Finds commitments, tasks, and follow-ups with assignees and deadlines
88
+ - **Batch processing** — Process entire folders of videos with merged knowledge graphs and cross-referencing
89
+ - **Rich output** — Markdown, HTML, PDF reports. Mermaid diagrams, SVG/PNG renderings, JSON manifests
90
+ - **Cloud sources** — Fetch videos from Google Drive and Dropbox shared folders
91
+ - **Checkpoint/resume** — Pipeline resumes from where it left off if interrupted
92
+ - **Screengrab fallback** — When extraction isn't perfect, captures frames with captions — something is always better than nothing
93
+
94
+ ## Quick Start
95
+
96
+ ```bash
97
+ # Install
98
+ pip install planopticon
99
+
100
+ # Analyze a single video
101
+ planopticon analyze -i meeting.mp4 -o ./output
102
+
103
+ # Process a folder of videos
104
+ planopticon batch -i ./recordings -o ./output --title "Weekly Meetings"
105
+
106
+ # See available AI models
107
+ planopticon list-models
108
+ ```
109
+
110
+ ## Installation
111
+
112
+ ### From PyPI
113
+
114
+ ```bash
115
+ pip install planopticon
116
+
117
+ # With all extras (PDF, cloud sources, GPU)
118
+ pip install planopticon[all]
119
+ ```
120
+
121
+ ### From Source
122
+
123
+ ```bash
124
+ git clone https://github.com/ConflictHQ/PlanOpticon.git
125
+ cd PlanOpticon
126
+ pip install -e ".[dev]"
127
+ ```
128
+
129
+ ### Binary Download
130
+
131
+ Download standalone binaries (no Python required) from [GitHub Releases](https://github.com/ConflictHQ/PlanOpticon/releases).
132
+
133
+ ### Requirements
134
+
135
+ - Python 3.10+
136
+ - FFmpeg (`brew install ffmpeg` / `apt install ffmpeg`)
137
+ - At least one API key: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, or `GEMINI_API_KEY`
138
+
139
+ ## Output Structure
140
+
141
+ ```
142
+ output/
143
+ ├── manifest.json # Single source of truth
144
+ ├── transcript/
145
+ │ ├── transcript.json # Full transcript with timestamps
146
+ │ ├── transcript.txt # Plain text
147
+ │ └── transcript.srt # Subtitles
148
+ ├── frames/ # Content frames (people filtered out)
149
+ ├── diagrams/ # Detected diagrams + mermaid code
150
+ ├── captures/ # Screengrab fallbacks
151
+ └── results/
152
+ ├── analysis.md # Markdown report
153
+ ├── analysis.html # HTML report
154
+ ├── analysis.pdf # PDF report
155
+ ├── knowledge_graph.json # Entities and relationships
156
+ ├── key_points.json # Extracted key points
157
+ └── action_items.json # Tasks and follow-ups
158
+ ```
159
+
160
+ ## Processing Depth
161
+
162
+ | Depth | What you get |
163
+ |-------|-------------|
164
+ | `basic` | Transcription, key points, action items |
165
+ | `standard` | + Diagram extraction (10 frames), knowledge graph, full reports |
166
+ | `comprehensive` | + More frames analyzed (20), deeper extraction |
167
+
168
+ ## Documentation
169
+
170
+ Full documentation at [planopticon.dev](https://planopticon.dev)
171
+
172
+ ## License
173
+
174
+ MIT License — Copyright (c) 2026 CONFLICT LLC
@@ -0,0 +1,101 @@
1
+ # PlanOpticon
2
+
3
+ **AI-powered video analysis and knowledge extraction.**
4
+
5
+ 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.
6
+
7
+ ## Features
8
+
9
+ - **Multi-provider AI** — Auto-discovers and routes to the best available model across OpenAI, Anthropic, and Google Gemini
10
+ - **Smart frame extraction** — Change detection for transitions + periodic capture for slow-evolving content (document scrolling, screen shares)
11
+ - **People frame filtering** — OpenCV face detection automatically removes webcam/video conference frames, keeping only shared content
12
+ - **Diagram extraction** — Vision model classification detects flowcharts, architecture diagrams, charts, and whiteboards
13
+ - **Knowledge graphs** — Extracts entities and relationships, builds and merges knowledge graphs across videos
14
+ - **Action item detection** — Finds commitments, tasks, and follow-ups with assignees and deadlines
15
+ - **Batch processing** — Process entire folders of videos with merged knowledge graphs and cross-referencing
16
+ - **Rich output** — Markdown, HTML, PDF reports. Mermaid diagrams, SVG/PNG renderings, JSON manifests
17
+ - **Cloud sources** — Fetch videos from Google Drive and Dropbox shared folders
18
+ - **Checkpoint/resume** — Pipeline resumes from where it left off if interrupted
19
+ - **Screengrab fallback** — When extraction isn't perfect, captures frames with captions — something is always better than nothing
20
+
21
+ ## Quick Start
22
+
23
+ ```bash
24
+ # Install
25
+ pip install planopticon
26
+
27
+ # Analyze a single video
28
+ planopticon analyze -i meeting.mp4 -o ./output
29
+
30
+ # Process a folder of videos
31
+ planopticon batch -i ./recordings -o ./output --title "Weekly Meetings"
32
+
33
+ # See available AI models
34
+ planopticon list-models
35
+ ```
36
+
37
+ ## Installation
38
+
39
+ ### From PyPI
40
+
41
+ ```bash
42
+ pip install planopticon
43
+
44
+ # With all extras (PDF, cloud sources, GPU)
45
+ pip install planopticon[all]
46
+ ```
47
+
48
+ ### From Source
49
+
50
+ ```bash
51
+ git clone https://github.com/ConflictHQ/PlanOpticon.git
52
+ cd PlanOpticon
53
+ pip install -e ".[dev]"
54
+ ```
55
+
56
+ ### Binary Download
57
+
58
+ Download standalone binaries (no Python required) from [GitHub Releases](https://github.com/ConflictHQ/PlanOpticon/releases).
59
+
60
+ ### Requirements
61
+
62
+ - Python 3.10+
63
+ - FFmpeg (`brew install ffmpeg` / `apt install ffmpeg`)
64
+ - At least one API key: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, or `GEMINI_API_KEY`
65
+
66
+ ## Output Structure
67
+
68
+ ```
69
+ output/
70
+ ├── manifest.json # Single source of truth
71
+ ├── transcript/
72
+ │ ├── transcript.json # Full transcript with timestamps
73
+ │ ├── transcript.txt # Plain text
74
+ │ └── transcript.srt # Subtitles
75
+ ├── frames/ # Content frames (people filtered out)
76
+ ├── diagrams/ # Detected diagrams + mermaid code
77
+ ├── captures/ # Screengrab fallbacks
78
+ └── results/
79
+ ├── analysis.md # Markdown report
80
+ ├── analysis.html # HTML report
81
+ ├── analysis.pdf # PDF report
82
+ ├── knowledge_graph.json # Entities and relationships
83
+ ├── key_points.json # Extracted key points
84
+ └── action_items.json # Tasks and follow-ups
85
+ ```
86
+
87
+ ## Processing Depth
88
+
89
+ | Depth | What you get |
90
+ |-------|-------------|
91
+ | `basic` | Transcription, key points, action items |
92
+ | `standard` | + Diagram extraction (10 frames), knowledge graph, full reports |
93
+ | `comprehensive` | + More frames analyzed (20), deeper extraction |
94
+
95
+ ## Documentation
96
+
97
+ Full documentation at [planopticon.dev](https://planopticon.dev)
98
+
99
+ ## License
100
+
101
+ MIT License — Copyright (c) 2026 CONFLICT LLC
@@ -0,0 +1,174 @@
1
+ Metadata-Version: 2.4
2
+ Name: planopticon
3
+ Version: 0.2.0
4
+ Summary: AI-powered video analysis and knowledge extraction tool
5
+ Author: CONFLICT LLC
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://planopticon.dev
8
+ Project-URL: Documentation, https://planopticon.dev
9
+ Project-URL: Repository, https://github.com/conflict-llc/PlanOpticon
10
+ Project-URL: Issues, https://github.com/conflict-llc/PlanOpticon/issues
11
+ Keywords: video,analysis,ai,knowledge-extraction,transcription,diagrams
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Multimedia :: Video
22
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
+ Requires-Python: >=3.10
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: numpy>=1.24.0
27
+ Requires-Dist: opencv-python>=4.8.0
28
+ Requires-Dist: scipy>=1.10.0
29
+ Requires-Dist: pillow>=10.0.0
30
+ Requires-Dist: matplotlib>=3.7.0
31
+ Requires-Dist: pydantic>=2.0.0
32
+ Requires-Dist: tqdm>=4.66.0
33
+ Requires-Dist: colorlog>=6.7.0
34
+ Requires-Dist: click>=8.1.0
35
+ Requires-Dist: librosa>=0.10.0
36
+ Requires-Dist: soundfile>=0.12.0
37
+ Requires-Dist: openai>=1.0.0
38
+ Requires-Dist: anthropic>=0.5.0
39
+ Requires-Dist: google-genai>=1.0.0
40
+ Requires-Dist: markdown>=3.4.0
41
+ Requires-Dist: mermaid-py>=0.5.0
42
+ Requires-Dist: plotly>=5.18.0
43
+ Requires-Dist: kaleido>=0.2.1
44
+ Requires-Dist: python-dotenv>=1.0.0
45
+ Requires-Dist: requests>=2.31.0
46
+ Requires-Dist: tenacity>=8.2.0
47
+ Provides-Extra: pdf
48
+ Requires-Dist: weasyprint>=60.0; extra == "pdf"
49
+ Provides-Extra: gpu
50
+ Requires-Dist: torch>=2.0.0; extra == "gpu"
51
+ Requires-Dist: torchvision>=0.15.0; extra == "gpu"
52
+ Provides-Extra: gdrive
53
+ Requires-Dist: google-auth>=2.0.0; extra == "gdrive"
54
+ Requires-Dist: google-auth-oauthlib>=1.0.0; extra == "gdrive"
55
+ Requires-Dist: google-api-python-client>=2.0.0; extra == "gdrive"
56
+ Provides-Extra: dropbox
57
+ Requires-Dist: dropbox>=12.0.0; extra == "dropbox"
58
+ Provides-Extra: cloud
59
+ Requires-Dist: planopticon[gdrive]; extra == "cloud"
60
+ Requires-Dist: planopticon[dropbox]; extra == "cloud"
61
+ Provides-Extra: dev
62
+ Requires-Dist: pytest>=7.3.0; extra == "dev"
63
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
64
+ Requires-Dist: black>=23.3.0; extra == "dev"
65
+ Requires-Dist: isort>=5.12.0; extra == "dev"
66
+ Requires-Dist: mypy>=1.3.0; extra == "dev"
67
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
68
+ Provides-Extra: all
69
+ Requires-Dist: planopticon[pdf]; extra == "all"
70
+ Requires-Dist: planopticon[cloud]; extra == "all"
71
+ Requires-Dist: planopticon[dev]; extra == "all"
72
+ Dynamic: license-file
73
+
74
+ # PlanOpticon
75
+
76
+ **AI-powered video analysis and knowledge extraction.**
77
+
78
+ 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.
79
+
80
+ ## Features
81
+
82
+ - **Multi-provider AI** — Auto-discovers and routes to the best available model across OpenAI, Anthropic, and Google Gemini
83
+ - **Smart frame extraction** — Change detection for transitions + periodic capture for slow-evolving content (document scrolling, screen shares)
84
+ - **People frame filtering** — OpenCV face detection automatically removes webcam/video conference frames, keeping only shared content
85
+ - **Diagram extraction** — Vision model classification detects flowcharts, architecture diagrams, charts, and whiteboards
86
+ - **Knowledge graphs** — Extracts entities and relationships, builds and merges knowledge graphs across videos
87
+ - **Action item detection** — Finds commitments, tasks, and follow-ups with assignees and deadlines
88
+ - **Batch processing** — Process entire folders of videos with merged knowledge graphs and cross-referencing
89
+ - **Rich output** — Markdown, HTML, PDF reports. Mermaid diagrams, SVG/PNG renderings, JSON manifests
90
+ - **Cloud sources** — Fetch videos from Google Drive and Dropbox shared folders
91
+ - **Checkpoint/resume** — Pipeline resumes from where it left off if interrupted
92
+ - **Screengrab fallback** — When extraction isn't perfect, captures frames with captions — something is always better than nothing
93
+
94
+ ## Quick Start
95
+
96
+ ```bash
97
+ # Install
98
+ pip install planopticon
99
+
100
+ # Analyze a single video
101
+ planopticon analyze -i meeting.mp4 -o ./output
102
+
103
+ # Process a folder of videos
104
+ planopticon batch -i ./recordings -o ./output --title "Weekly Meetings"
105
+
106
+ # See available AI models
107
+ planopticon list-models
108
+ ```
109
+
110
+ ## Installation
111
+
112
+ ### From PyPI
113
+
114
+ ```bash
115
+ pip install planopticon
116
+
117
+ # With all extras (PDF, cloud sources, GPU)
118
+ pip install planopticon[all]
119
+ ```
120
+
121
+ ### From Source
122
+
123
+ ```bash
124
+ git clone https://github.com/ConflictHQ/PlanOpticon.git
125
+ cd PlanOpticon
126
+ pip install -e ".[dev]"
127
+ ```
128
+
129
+ ### Binary Download
130
+
131
+ Download standalone binaries (no Python required) from [GitHub Releases](https://github.com/ConflictHQ/PlanOpticon/releases).
132
+
133
+ ### Requirements
134
+
135
+ - Python 3.10+
136
+ - FFmpeg (`brew install ffmpeg` / `apt install ffmpeg`)
137
+ - At least one API key: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, or `GEMINI_API_KEY`
138
+
139
+ ## Output Structure
140
+
141
+ ```
142
+ output/
143
+ ├── manifest.json # Single source of truth
144
+ ├── transcript/
145
+ │ ├── transcript.json # Full transcript with timestamps
146
+ │ ├── transcript.txt # Plain text
147
+ │ └── transcript.srt # Subtitles
148
+ ├── frames/ # Content frames (people filtered out)
149
+ ├── diagrams/ # Detected diagrams + mermaid code
150
+ ├── captures/ # Screengrab fallbacks
151
+ └── results/
152
+ ├── analysis.md # Markdown report
153
+ ├── analysis.html # HTML report
154
+ ├── analysis.pdf # PDF report
155
+ ├── knowledge_graph.json # Entities and relationships
156
+ ├── key_points.json # Extracted key points
157
+ └── action_items.json # Tasks and follow-ups
158
+ ```
159
+
160
+ ## Processing Depth
161
+
162
+ | Depth | What you get |
163
+ |-------|-------------|
164
+ | `basic` | Transcription, key points, action items |
165
+ | `standard` | + Diagram extraction (10 frames), knowledge graph, full reports |
166
+ | `comprehensive` | + More frames analyzed (20), deeper extraction |
167
+
168
+ ## Documentation
169
+
170
+ Full documentation at [planopticon.dev](https://planopticon.dev)
171
+
172
+ ## License
173
+
174
+ MIT License — Copyright (c) 2026 CONFLICT LLC
@@ -0,0 +1,69 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ requirements.txt
6
+ setup.py
7
+ planopticon.egg-info/PKG-INFO
8
+ planopticon.egg-info/SOURCES.txt
9
+ planopticon.egg-info/dependency_links.txt
10
+ planopticon.egg-info/entry_points.txt
11
+ planopticon.egg-info/requires.txt
12
+ planopticon.egg-info/top_level.txt
13
+ tests/test_action_detector.py
14
+ tests/test_agent.py
15
+ tests/test_api_cache.py
16
+ tests/test_audio_extractor.py
17
+ tests/test_batch.py
18
+ tests/test_cloud_sources.py
19
+ tests/test_content_analyzer.py
20
+ tests/test_diagram_analyzer.py
21
+ tests/test_frame_extractor.py
22
+ tests/test_json_parsing.py
23
+ tests/test_models.py
24
+ tests/test_output_structure.py
25
+ tests/test_pipeline.py
26
+ tests/test_prompt_templates.py
27
+ tests/test_providers.py
28
+ tests/test_rendering.py
29
+ video_processor/__init__.py
30
+ video_processor/models.py
31
+ video_processor/output_structure.py
32
+ video_processor/pipeline.py
33
+ video_processor/agent/__init__.py
34
+ video_processor/agent/orchestrator.py
35
+ video_processor/analyzers/__init__.py
36
+ video_processor/analyzers/action_detector.py
37
+ video_processor/analyzers/content_analyzer.py
38
+ video_processor/analyzers/diagram_analyzer.py
39
+ video_processor/api/__init__.py
40
+ video_processor/cli/__init__.py
41
+ video_processor/cli/commands.py
42
+ video_processor/cli/output_formatter.py
43
+ video_processor/extractors/__init__.py
44
+ video_processor/extractors/audio_extractor.py
45
+ video_processor/extractors/frame_extractor.py
46
+ video_processor/extractors/text_extractor.py
47
+ video_processor/integrators/__init__.py
48
+ video_processor/integrators/knowledge_graph.py
49
+ video_processor/integrators/plan_generator.py
50
+ video_processor/providers/__init__.py
51
+ video_processor/providers/anthropic_provider.py
52
+ video_processor/providers/base.py
53
+ video_processor/providers/discovery.py
54
+ video_processor/providers/gemini_provider.py
55
+ video_processor/providers/manager.py
56
+ video_processor/providers/openai_provider.py
57
+ video_processor/providers/whisper_local.py
58
+ video_processor/sources/__init__.py
59
+ video_processor/sources/base.py
60
+ video_processor/sources/dropbox_source.py
61
+ video_processor/sources/google_drive.py
62
+ video_processor/utils/__init__.py
63
+ video_processor/utils/api_cache.py
64
+ video_processor/utils/export.py
65
+ video_processor/utils/json_parsing.py
66
+ video_processor/utils/prompt_templates.py
67
+ video_processor/utils/rendering.py
68
+ video_processor/utils/usage_tracker.py
69
+ video_processor/utils/visualization.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ planopticon = video_processor.cli.commands:main
@@ -0,0 +1,53 @@
1
+ numpy>=1.24.0
2
+ opencv-python>=4.8.0
3
+ scipy>=1.10.0
4
+ pillow>=10.0.0
5
+ matplotlib>=3.7.0
6
+ pydantic>=2.0.0
7
+ tqdm>=4.66.0
8
+ colorlog>=6.7.0
9
+ click>=8.1.0
10
+ librosa>=0.10.0
11
+ soundfile>=0.12.0
12
+ openai>=1.0.0
13
+ anthropic>=0.5.0
14
+ google-genai>=1.0.0
15
+ markdown>=3.4.0
16
+ mermaid-py>=0.5.0
17
+ plotly>=5.18.0
18
+ kaleido>=0.2.1
19
+ python-dotenv>=1.0.0
20
+ requests>=2.31.0
21
+ tenacity>=8.2.0
22
+
23
+ [all]
24
+ planopticon[pdf]
25
+ planopticon[cloud]
26
+ planopticon[dev]
27
+
28
+ [cloud]
29
+ planopticon[gdrive]
30
+ planopticon[dropbox]
31
+
32
+ [dev]
33
+ pytest>=7.3.0
34
+ pytest-cov>=4.1.0
35
+ black>=23.3.0
36
+ isort>=5.12.0
37
+ mypy>=1.3.0
38
+ ruff>=0.1.0
39
+
40
+ [dropbox]
41
+ dropbox>=12.0.0
42
+
43
+ [gdrive]
44
+ google-auth>=2.0.0
45
+ google-auth-oauthlib>=1.0.0
46
+ google-api-python-client>=2.0.0
47
+
48
+ [gpu]
49
+ torch>=2.0.0
50
+ torchvision>=0.15.0
51
+
52
+ [pdf]
53
+ weasyprint>=60.0
@@ -0,0 +1 @@
1
+ video_processor