agent-recipes 0.0.5__py3-none-any.whl
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.
- agent_recipes/__init__.py +27 -0
- agent_recipes/recipe_runtime/__init__.py +28 -0
- agent_recipes/recipe_runtime/core.py +385 -0
- agent_recipes/templates/ai-ab-hook-tester/recipe.yaml +45 -0
- agent_recipes/templates/ai-ab-hook-tester/tools.py +169 -0
- agent_recipes/templates/ai-angle-generator/recipe.yaml +49 -0
- agent_recipes/templates/ai-angle-generator/tools.py +182 -0
- agent_recipes/templates/ai-api-doc-generator/README.md +59 -0
- agent_recipes/templates/ai-api-doc-generator/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-api-tester/README.md +60 -0
- agent_recipes/templates/ai-api-tester/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-audio-enhancer/README.md +59 -0
- agent_recipes/templates/ai-audio-enhancer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-audio-normalizer/README.md +13 -0
- agent_recipes/templates/ai-audio-normalizer/TEMPLATE.yaml +44 -0
- agent_recipes/templates/ai-audio-splitter/README.md +14 -0
- agent_recipes/templates/ai-audio-splitter/TEMPLATE.yaml +47 -0
- agent_recipes/templates/ai-background-music-generator/README.md +59 -0
- agent_recipes/templates/ai-background-music-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-background-remover/README.md +60 -0
- agent_recipes/templates/ai-background-remover/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-barcode-scanner/README.md +60 -0
- agent_recipes/templates/ai-barcode-scanner/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-blog-generator/README.md +59 -0
- agent_recipes/templates/ai-blog-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-brief-generator/recipe.yaml +52 -0
- agent_recipes/templates/ai-brief-generator/tools.py +231 -0
- agent_recipes/templates/ai-broll-builder/recipe.yaml +47 -0
- agent_recipes/templates/ai-broll-builder/tools.py +204 -0
- agent_recipes/templates/ai-calendar-scheduler/README.md +60 -0
- agent_recipes/templates/ai-calendar-scheduler/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-changelog-generator/README.md +14 -0
- agent_recipes/templates/ai-changelog-generator/TEMPLATE.yaml +46 -0
- agent_recipes/templates/ai-chart-generator/README.md +61 -0
- agent_recipes/templates/ai-chart-generator/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-code-documenter/README.md +12 -0
- agent_recipes/templates/ai-code-documenter/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-code-refactorer/README.md +59 -0
- agent_recipes/templates/ai-code-refactorer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-code-reviewer/README.md +59 -0
- agent_recipes/templates/ai-code-reviewer/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-color-palette-extractor/README.md +60 -0
- agent_recipes/templates/ai-color-palette-extractor/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-comment-miner/recipe.yaml +40 -0
- agent_recipes/templates/ai-comment-miner/tools.py +141 -0
- agent_recipes/templates/ai-commit-message-generator/README.md +59 -0
- agent_recipes/templates/ai-commit-message-generator/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-content-calendar/recipe.yaml +43 -0
- agent_recipes/templates/ai-content-calendar/tools.py +170 -0
- agent_recipes/templates/ai-context-enricher/recipe.yaml +48 -0
- agent_recipes/templates/ai-context-enricher/tools.py +258 -0
- agent_recipes/templates/ai-contract-analyzer/README.md +60 -0
- agent_recipes/templates/ai-contract-analyzer/TEMPLATE.yaml +34 -0
- agent_recipes/templates/ai-csv-cleaner/README.md +13 -0
- agent_recipes/templates/ai-csv-cleaner/TEMPLATE.yaml +45 -0
- agent_recipes/templates/ai-cta-generator/recipe.yaml +54 -0
- agent_recipes/templates/ai-cta-generator/tools.py +174 -0
- agent_recipes/templates/ai-daily-news-show/recipe.yaml +103 -0
- agent_recipes/templates/ai-daily-news-show/tools.py +308 -0
- agent_recipes/templates/ai-data-anonymizer/README.md +60 -0
- agent_recipes/templates/ai-data-anonymizer/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-data-profiler/README.md +14 -0
- agent_recipes/templates/ai-data-profiler/TEMPLATE.yaml +42 -0
- agent_recipes/templates/ai-dependency-auditor/README.md +12 -0
- agent_recipes/templates/ai-dependency-auditor/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-doc-translator/README.md +12 -0
- agent_recipes/templates/ai-doc-translator/TEMPLATE.yaml +41 -0
- agent_recipes/templates/ai-duplicate-finder/README.md +59 -0
- agent_recipes/templates/ai-duplicate-finder/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-ebook-converter/README.md +60 -0
- agent_recipes/templates/ai-ebook-converter/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-email-parser/README.md +59 -0
- agent_recipes/templates/ai-email-parser/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-etl-pipeline/README.md +60 -0
- agent_recipes/templates/ai-etl-pipeline/TEMPLATE.yaml +30 -0
- agent_recipes/templates/ai-excel-formula-generator/README.md +59 -0
- agent_recipes/templates/ai-excel-formula-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-face-blur/README.md +60 -0
- agent_recipes/templates/ai-face-blur/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-fact-checker/recipe.yaml +52 -0
- agent_recipes/templates/ai-fact-checker/tools.py +279 -0
- agent_recipes/templates/ai-faq-generator/README.md +59 -0
- agent_recipes/templates/ai-faq-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-file-organizer/README.md +59 -0
- agent_recipes/templates/ai-file-organizer/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-folder-packager/README.md +15 -0
- agent_recipes/templates/ai-folder-packager/TEMPLATE.yaml +48 -0
- agent_recipes/templates/ai-form-filler/README.md +60 -0
- agent_recipes/templates/ai-form-filler/TEMPLATE.yaml +30 -0
- agent_recipes/templates/ai-hashtag-optimizer/recipe.yaml +45 -0
- agent_recipes/templates/ai-hashtag-optimizer/tools.py +134 -0
- agent_recipes/templates/ai-hook-generator/recipe.yaml +50 -0
- agent_recipes/templates/ai-hook-generator/tools.py +177 -0
- agent_recipes/templates/ai-image-captioner/README.md +59 -0
- agent_recipes/templates/ai-image-captioner/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-image-cataloger/README.md +13 -0
- agent_recipes/templates/ai-image-cataloger/TEMPLATE.yaml +39 -0
- agent_recipes/templates/ai-image-optimizer/README.md +13 -0
- agent_recipes/templates/ai-image-optimizer/TEMPLATE.yaml +43 -0
- agent_recipes/templates/ai-image-resizer/README.md +12 -0
- agent_recipes/templates/ai-image-resizer/TEMPLATE.yaml +39 -0
- agent_recipes/templates/ai-image-tagger/README.md +59 -0
- agent_recipes/templates/ai-image-tagger/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-image-upscaler/README.md +60 -0
- agent_recipes/templates/ai-image-upscaler/TEMPLATE.yaml +27 -0
- agent_recipes/templates/ai-invoice-processor/README.md +60 -0
- agent_recipes/templates/ai-invoice-processor/TEMPLATE.yaml +34 -0
- agent_recipes/templates/ai-json-to-csv/README.md +12 -0
- agent_recipes/templates/ai-json-to-csv/TEMPLATE.yaml +36 -0
- agent_recipes/templates/ai-log-analyzer/README.md +59 -0
- agent_recipes/templates/ai-log-analyzer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-markdown-to-pdf/README.md +12 -0
- agent_recipes/templates/ai-markdown-to-pdf/TEMPLATE.yaml +40 -0
- agent_recipes/templates/ai-meeting-summarizer/README.md +59 -0
- agent_recipes/templates/ai-meeting-summarizer/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-meta-tag-generator/README.md +59 -0
- agent_recipes/templates/ai-meta-tag-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-news-capture-pack/recipe.yaml +42 -0
- agent_recipes/templates/ai-news-capture-pack/tools.py +150 -0
- agent_recipes/templates/ai-news-crawler/recipe.yaml +99 -0
- agent_recipes/templates/ai-news-crawler/tools.py +417 -0
- agent_recipes/templates/ai-news-deduper/recipe.yaml +47 -0
- agent_recipes/templates/ai-news-deduper/tools.py +235 -0
- agent_recipes/templates/ai-newsletter-generator/README.md +59 -0
- agent_recipes/templates/ai-newsletter-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-note-summarizer/README.md +59 -0
- agent_recipes/templates/ai-note-summarizer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-pdf-summarizer/README.md +12 -0
- agent_recipes/templates/ai-pdf-summarizer/TEMPLATE.yaml +40 -0
- agent_recipes/templates/ai-pdf-to-markdown/README.md +19 -0
- agent_recipes/templates/ai-pdf-to-markdown/TEMPLATE.yaml +63 -0
- agent_recipes/templates/ai-performance-analyzer/recipe.yaml +45 -0
- agent_recipes/templates/ai-performance-analyzer/tools.py +159 -0
- agent_recipes/templates/ai-podcast-cleaner/README.md +117 -0
- agent_recipes/templates/ai-podcast-cleaner/TEMPLATE.yaml +117 -0
- agent_recipes/templates/ai-podcast-cleaner/agents.yaml +59 -0
- agent_recipes/templates/ai-podcast-cleaner/workflow.yaml +77 -0
- agent_recipes/templates/ai-podcast-transcriber/README.md +59 -0
- agent_recipes/templates/ai-podcast-transcriber/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-post-copy-generator/recipe.yaml +41 -0
- agent_recipes/templates/ai-post-copy-generator/tools.py +105 -0
- agent_recipes/templates/ai-product-description-generator/README.md +59 -0
- agent_recipes/templates/ai-product-description-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-publisher-pack/recipe.yaml +44 -0
- agent_recipes/templates/ai-publisher-pack/tools.py +252 -0
- agent_recipes/templates/ai-qr-code-generator/README.md +60 -0
- agent_recipes/templates/ai-qr-code-generator/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-regex-generator/README.md +59 -0
- agent_recipes/templates/ai-regex-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-repo-readme/README.md +13 -0
- agent_recipes/templates/ai-repo-readme/TEMPLATE.yaml +42 -0
- agent_recipes/templates/ai-report-generator/README.md +61 -0
- agent_recipes/templates/ai-report-generator/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-resume-parser/README.md +60 -0
- agent_recipes/templates/ai-resume-parser/TEMPLATE.yaml +33 -0
- agent_recipes/templates/ai-rss-aggregator/README.md +60 -0
- agent_recipes/templates/ai-rss-aggregator/TEMPLATE.yaml +30 -0
- agent_recipes/templates/ai-schema-generator/README.md +12 -0
- agent_recipes/templates/ai-schema-generator/TEMPLATE.yaml +34 -0
- agent_recipes/templates/ai-screen-recorder/recipe.yaml +43 -0
- agent_recipes/templates/ai-screen-recorder/tools.py +184 -0
- agent_recipes/templates/ai-screenshot-capture/recipe.yaml +45 -0
- agent_recipes/templates/ai-screenshot-capture/tools.py +231 -0
- agent_recipes/templates/ai-screenshot-ocr/README.md +12 -0
- agent_recipes/templates/ai-screenshot-ocr/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-script-writer/recipe.yaml +58 -0
- agent_recipes/templates/ai-script-writer/tools.py +297 -0
- agent_recipes/templates/ai-sentiment-analyzer/README.md +59 -0
- agent_recipes/templates/ai-sentiment-analyzer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-seo-optimizer/README.md +59 -0
- agent_recipes/templates/ai-seo-optimizer/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-signal-ranker/recipe.yaml +54 -0
- agent_recipes/templates/ai-signal-ranker/tools.py +256 -0
- agent_recipes/templates/ai-sitemap-generator/README.md +59 -0
- agent_recipes/templates/ai-sitemap-generator/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-sitemap-scraper/README.md +13 -0
- agent_recipes/templates/ai-sitemap-scraper/TEMPLATE.yaml +41 -0
- agent_recipes/templates/ai-slide-generator/README.md +60 -0
- agent_recipes/templates/ai-slide-generator/TEMPLATE.yaml +29 -0
- agent_recipes/templates/ai-slide-to-notes/README.md +12 -0
- agent_recipes/templates/ai-slide-to-notes/TEMPLATE.yaml +37 -0
- agent_recipes/templates/ai-social-media-generator/README.md +59 -0
- agent_recipes/templates/ai-social-media-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-sql-generator/README.md +59 -0
- agent_recipes/templates/ai-sql-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-subtitle-generator/README.md +59 -0
- agent_recipes/templates/ai-subtitle-generator/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-test-generator/README.md +59 -0
- agent_recipes/templates/ai-test-generator/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-translation-batch/README.md +59 -0
- agent_recipes/templates/ai-translation-batch/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-url-to-markdown/README.md +14 -0
- agent_recipes/templates/ai-url-to-markdown/TEMPLATE.yaml +44 -0
- agent_recipes/templates/ai-video-chapter-generator/README.md +59 -0
- agent_recipes/templates/ai-video-chapter-generator/TEMPLATE.yaml +32 -0
- agent_recipes/templates/ai-video-compressor/README.md +59 -0
- agent_recipes/templates/ai-video-compressor/TEMPLATE.yaml +28 -0
- agent_recipes/templates/ai-video-editor/README.md +254 -0
- agent_recipes/templates/ai-video-editor/TEMPLATE.yaml +139 -0
- agent_recipes/templates/ai-video-editor/agents.yaml +36 -0
- agent_recipes/templates/ai-video-editor/requirements.txt +8 -0
- agent_recipes/templates/ai-video-editor/scripts/run.sh +10 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__init__.py +45 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__main__.py +8 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/__init__.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/cli.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/config.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/ffmpeg_probe.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/heuristics.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/llm_plan.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/models.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/pipeline.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/render.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/timeline.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/transcribe.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/utils.cpython-312.pyc +0 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/cli.py +343 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/config.py +102 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/ffmpeg_probe.py +92 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/heuristics.py +119 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/llm_plan.py +277 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/models.py +343 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/pipeline.py +287 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/render.py +274 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/timeline.py +278 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/transcribe.py +233 -0
- agent_recipes/templates/ai-video-editor/src/ai_video_editor/utils.py +222 -0
- agent_recipes/templates/ai-video-editor/src/input.mov +0 -0
- agent_recipes/templates/ai-video-editor/src/out.mp4 +0 -0
- agent_recipes/templates/ai-video-editor/tests/test_heuristics.py +130 -0
- agent_recipes/templates/ai-video-editor/tests/test_models.py +152 -0
- agent_recipes/templates/ai-video-editor/tests/test_timeline.py +105 -0
- agent_recipes/templates/ai-video-editor/workflow.yaml +51 -0
- agent_recipes/templates/ai-video-highlight-extractor/README.md +60 -0
- agent_recipes/templates/ai-video-highlight-extractor/TEMPLATE.yaml +33 -0
- agent_recipes/templates/ai-video-merger/recipe.yaml +40 -0
- agent_recipes/templates/ai-video-merger/tools.py +172 -0
- agent_recipes/templates/ai-video-thumbnails/README.md +16 -0
- agent_recipes/templates/ai-video-thumbnails/TEMPLATE.yaml +53 -0
- agent_recipes/templates/ai-video-to-gif/README.md +14 -0
- agent_recipes/templates/ai-video-to-gif/TEMPLATE.yaml +64 -0
- agent_recipes/templates/ai-voice-cloner/README.md +59 -0
- agent_recipes/templates/ai-voice-cloner/TEMPLATE.yaml +31 -0
- agent_recipes/templates/ai-voiceover-generator/recipe.yaml +41 -0
- agent_recipes/templates/ai-voiceover-generator/tools.py +194 -0
- agent_recipes/templates/ai-watermark-adder/README.md +59 -0
- agent_recipes/templates/ai-watermark-adder/TEMPLATE.yaml +26 -0
- agent_recipes/templates/ai-watermark-remover/README.md +60 -0
- agent_recipes/templates/ai-watermark-remover/TEMPLATE.yaml +32 -0
- agent_recipes/templates/data-transformer/README.md +75 -0
- agent_recipes/templates/data-transformer/TEMPLATE.yaml +63 -0
- agent_recipes/templates/data-transformer/agents.yaml +70 -0
- agent_recipes/templates/data-transformer/workflow.yaml +92 -0
- agent_recipes/templates/shorts-generator/README.md +61 -0
- agent_recipes/templates/shorts-generator/TEMPLATE.yaml +65 -0
- agent_recipes/templates/shorts-generator/agents.yaml +66 -0
- agent_recipes/templates/shorts-generator/workflow.yaml +86 -0
- agent_recipes/templates/transcript-generator/README.md +103 -0
- agent_recipes/templates/transcript-generator/TEMPLATE.yaml +57 -0
- agent_recipes/templates/transcript-generator/agents.yaml +62 -0
- agent_recipes/templates/transcript-generator/workflow.yaml +82 -0
- agent_recipes/templates/video-editor/README.md +70 -0
- agent_recipes/templates/video-editor/TEMPLATE.yaml +55 -0
- agent_recipes/templates/video-editor/agents.yaml +68 -0
- agent_recipes/templates/video-editor/workflow.yaml +92 -0
- agent_recipes-0.0.5.dist-info/METADATA +145 -0
- agent_recipes-0.0.5.dist-info/RECORD +269 -0
- agent_recipes-0.0.5.dist-info/WHEEL +5 -0
- agent_recipes-0.0.5.dist-info/top_level.txt +1 -0
- /236/326/177nE/243/231/214/232/265/322m/201/253/353/022C/372/321/266/b/225^=/272/017t/262/3337/310@/315wb/341pB/277z/216/330/314/004/265B/213/375/236/203/026/373/307/354z41/347#/374q/262/22589/032/276 /277/244Vh/322/017/004/224/215/004/367/377/375/335/n +0 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# AI Video Editor Recipe
|
|
2
|
+
|
|
3
|
+
End-to-end AI-powered video editing that automatically cleans up your videos by removing filler words, repetitions, tangents, and long silences.
|
|
4
|
+
|
|
5
|
+
**This is a self-contained recipe** - no modifications to praisonai or praisonaiagents required.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- **Automatic Transcription**: Word-level timestamps using OpenAI Whisper
|
|
10
|
+
- **Filler Word Removal**: Removes "um", "uh", "like", "you know", etc.
|
|
11
|
+
- **Repetition Detection**: Removes stutters and repeated phrases
|
|
12
|
+
- **Tangent Removal**: LLM-based detection of off-topic content
|
|
13
|
+
- **Silence Removal**: Removes long pauses above configurable threshold
|
|
14
|
+
- **Caption Generation**: SRT files or burned-in captions
|
|
15
|
+
- **Edit Decision List**: Professional EDL output for further editing
|
|
16
|
+
|
|
17
|
+
## Requirements
|
|
18
|
+
|
|
19
|
+
### System Dependencies
|
|
20
|
+
|
|
21
|
+
- **FFmpeg**: Required for video processing
|
|
22
|
+
```bash
|
|
23
|
+
# macOS
|
|
24
|
+
brew install ffmpeg
|
|
25
|
+
|
|
26
|
+
# Linux (Ubuntu/Debian)
|
|
27
|
+
sudo apt install ffmpeg
|
|
28
|
+
|
|
29
|
+
# Windows
|
|
30
|
+
# Download from https://ffmpeg.org/download.html
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Python Dependencies
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pip install openai
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Environment Variables
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
export OPENAI_API_KEY="your-key-here"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Quick Start
|
|
46
|
+
|
|
47
|
+
### Using Recipe CLI (Recommended)
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Navigate to recipe directory
|
|
51
|
+
cd /path/to/Agent-Recipes/agent_recipes/templates/ai-video-editor/src
|
|
52
|
+
|
|
53
|
+
# Check dependencies
|
|
54
|
+
python -m ai_video_editor.cli doctor
|
|
55
|
+
|
|
56
|
+
# Edit a video
|
|
57
|
+
python -m ai_video_editor.cli edit input.mp4 --preset podcast --output out.mp4
|
|
58
|
+
|
|
59
|
+
# Probe video metadata
|
|
60
|
+
python -m ai_video_editor.cli probe input.mp4
|
|
61
|
+
|
|
62
|
+
# Generate transcript only
|
|
63
|
+
python -m ai_video_editor.cli transcript input.mp4 --output transcript.srt
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Using PraisonAI Templates
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# List available templates
|
|
70
|
+
praisonai templates list
|
|
71
|
+
|
|
72
|
+
# Run the template
|
|
73
|
+
praisonai templates run ai-video-editor input.mp4 --output edited.mp4
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Using Python API
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
import sys
|
|
80
|
+
sys.path.insert(0, "/path/to/Agent-Recipes/agent_recipes/templates/ai-video-editor/src")
|
|
81
|
+
|
|
82
|
+
from ai_video_editor import edit, probe, transcript
|
|
83
|
+
|
|
84
|
+
# Simple edit
|
|
85
|
+
result = edit(
|
|
86
|
+
input_path="input.mp4",
|
|
87
|
+
preset="podcast",
|
|
88
|
+
output_path="out.mp4",
|
|
89
|
+
verbose=True
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
print(f"Output: {result.output_path}")
|
|
93
|
+
print(f"Saved: {result.time_saved:.1f}s")
|
|
94
|
+
|
|
95
|
+
# Custom settings
|
|
96
|
+
result = edit(
|
|
97
|
+
input_path="meeting.mp4",
|
|
98
|
+
remove_fillers=True,
|
|
99
|
+
remove_repetitions=True,
|
|
100
|
+
remove_tangents=True,
|
|
101
|
+
target_length="30m",
|
|
102
|
+
captions="srt",
|
|
103
|
+
verbose=True
|
|
104
|
+
)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Presets
|
|
108
|
+
|
|
109
|
+
| Preset | Fillers | Repetitions | Tangents | Silence Threshold |
|
|
110
|
+
|--------|---------|-------------|----------|-------------------|
|
|
111
|
+
| podcast | ✓ | ✓ | ✗ | 700ms |
|
|
112
|
+
| meeting | ✓ | ✓ | ✓ | 1000ms |
|
|
113
|
+
| course | ✓ | ✓ | ✗ | 500ms |
|
|
114
|
+
| clean | ✓ | ✓ | ✓ | 600ms |
|
|
115
|
+
|
|
116
|
+
## Output Files
|
|
117
|
+
|
|
118
|
+
After editing, you'll find these files in the working directory:
|
|
119
|
+
|
|
120
|
+
- `*_edited.mp4` - Final edited video
|
|
121
|
+
- `transcript.txt` - Plain text transcript
|
|
122
|
+
- `captions.srt` - SRT caption file
|
|
123
|
+
- `edit_plan.json` - Detailed edit plan with segments
|
|
124
|
+
- `edit_decision_list.edl` - Professional EDL file
|
|
125
|
+
- `report.json` - Complete processing report
|
|
126
|
+
|
|
127
|
+
## CLI Reference
|
|
128
|
+
|
|
129
|
+
### `edit` Command
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
python -m ai_video_editor.cli edit <input> [options]
|
|
133
|
+
|
|
134
|
+
Options:
|
|
135
|
+
--output, -o PATH Output video path
|
|
136
|
+
--preset PRESET Edit preset (podcast, meeting, course, clean)
|
|
137
|
+
--remove-fillers Remove filler words
|
|
138
|
+
--remove-repetitions Remove repeated phrases
|
|
139
|
+
--remove-tangents Remove off-topic content
|
|
140
|
+
--auto-crop MODE Crop mode (off, center, face)
|
|
141
|
+
--target-length TIME Target duration (e.g., 6m, 90s)
|
|
142
|
+
--captions MODE Caption mode (off, srt, burn)
|
|
143
|
+
--provider PROVIDER Transcription provider (openai, local, auto)
|
|
144
|
+
--no-llm Use simple pattern matching
|
|
145
|
+
--force Overwrite output if exists
|
|
146
|
+
--json-report PATH Save JSON report
|
|
147
|
+
--verbose, -v Enable verbose output
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### `probe` Command
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
python -m ai_video_editor.cli probe <input> [--json]
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### `transcript` Command
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
python -m ai_video_editor.cli transcript <input> [options]
|
|
160
|
+
|
|
161
|
+
Options:
|
|
162
|
+
--output, -o PATH Output file path
|
|
163
|
+
--format FORMAT Output format (srt, txt, json)
|
|
164
|
+
--provider PROVIDER Transcription provider
|
|
165
|
+
--language LANG Language code (default: en)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### `doctor` Command
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
python -m ai_video_editor.cli doctor
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## How It Works
|
|
175
|
+
|
|
176
|
+
1. **Probe**: Extract video metadata (duration, resolution, fps)
|
|
177
|
+
2. **Transcribe**: Generate word-level timestamps using Whisper
|
|
178
|
+
3. **Analyze**: LLM identifies segments to remove (or simple pattern matching with --no-llm)
|
|
179
|
+
4. **Optimize**: Snap cuts to word boundaries, apply padding
|
|
180
|
+
5. **Render**: Concatenate kept segments with FFmpeg
|
|
181
|
+
6. **Report**: Generate transcript, captions, and edit report
|
|
182
|
+
|
|
183
|
+
## Tips
|
|
184
|
+
|
|
185
|
+
- **Start with podcast preset** for general content
|
|
186
|
+
- **Use meeting preset** for recordings with off-topic discussion
|
|
187
|
+
- **Set target_length** to automatically prioritize cuts
|
|
188
|
+
- **Enable verbose mode** to see progress details
|
|
189
|
+
- **Check edit_plan.json** to review what was removed
|
|
190
|
+
- **Use --no-llm** for faster processing without API calls (after transcription)
|
|
191
|
+
|
|
192
|
+
## Troubleshooting
|
|
193
|
+
|
|
194
|
+
### FFmpeg not found
|
|
195
|
+
|
|
196
|
+
Install FFmpeg for your platform:
|
|
197
|
+
```bash
|
|
198
|
+
# macOS
|
|
199
|
+
brew install ffmpeg
|
|
200
|
+
|
|
201
|
+
# Ubuntu
|
|
202
|
+
sudo apt install ffmpeg
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### API key error
|
|
206
|
+
|
|
207
|
+
Set your OpenAI API key:
|
|
208
|
+
```bash
|
|
209
|
+
export OPENAI_API_KEY="sk-..."
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Long videos timing out
|
|
213
|
+
|
|
214
|
+
For videos over 25MB audio, the system automatically chunks the transcription.
|
|
215
|
+
For very long videos (>2 hours), consider splitting first.
|
|
216
|
+
|
|
217
|
+
### Check all dependencies
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
python -m ai_video_editor.cli doctor
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Architecture
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
ai-video-editor/
|
|
227
|
+
├── TEMPLATE.yaml # Template metadata for discovery
|
|
228
|
+
├── README.md # This file
|
|
229
|
+
├── agents.yaml # Agent definitions
|
|
230
|
+
├── workflow.yaml # Workflow definition
|
|
231
|
+
├── requirements.txt # Python dependencies
|
|
232
|
+
├── src/
|
|
233
|
+
│ └── ai_video_editor/ # Self-contained Python package
|
|
234
|
+
│ ├── __init__.py
|
|
235
|
+
│ ├── __main__.py # Entry point for python -m
|
|
236
|
+
│ ├── cli.py # CLI implementation
|
|
237
|
+
│ ├── pipeline.py # Main orchestrator
|
|
238
|
+
│ ├── config.py # Presets and configuration
|
|
239
|
+
│ ├── models.py # Data models
|
|
240
|
+
│ ├── utils.py # Utilities
|
|
241
|
+
│ ├── ffmpeg_probe.py
|
|
242
|
+
│ ├── transcribe.py
|
|
243
|
+
│ ├── heuristics.py
|
|
244
|
+
│ ├── llm_plan.py
|
|
245
|
+
│ ├── timeline.py
|
|
246
|
+
│ └── render.py
|
|
247
|
+
├── tests/ # Unit tests
|
|
248
|
+
├── examples/ # Example configurations
|
|
249
|
+
└── scripts/ # Helper scripts
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## License
|
|
253
|
+
|
|
254
|
+
Apache-2.0
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
name: ai-video-editor
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: |
|
|
4
|
+
End-to-end AI-powered video editor that automatically:
|
|
5
|
+
- Understands video content through transcription
|
|
6
|
+
- Removes filler words (um, uh, like, you know)
|
|
7
|
+
- Removes word repetitions and stutters
|
|
8
|
+
- Identifies and removes tangent/off-topic segments
|
|
9
|
+
- Removes long silences
|
|
10
|
+
- Generates transcripts, captions, and edit decision lists
|
|
11
|
+
- Produces polished final video output
|
|
12
|
+
|
|
13
|
+
This is a SELF-CONTAINED recipe that runs independently.
|
|
14
|
+
No modifications to praisonai or praisonaiagents required.
|
|
15
|
+
|
|
16
|
+
author: praisonai
|
|
17
|
+
license: Apache-2.0
|
|
18
|
+
tags: [video, editing, ai, transcription, filler-removal, podcast, meeting, course]
|
|
19
|
+
|
|
20
|
+
requires:
|
|
21
|
+
tools: [shell_tool]
|
|
22
|
+
packages: [praisonai-tools]
|
|
23
|
+
env: [OPENAI_API_KEY]
|
|
24
|
+
tools_sources:
|
|
25
|
+
- praisonai_tools.video
|
|
26
|
+
external:
|
|
27
|
+
- name: ffmpeg
|
|
28
|
+
check: "ffmpeg -version"
|
|
29
|
+
install_hint: "brew install ffmpeg (macOS) or apt install ffmpeg (Linux)"
|
|
30
|
+
|
|
31
|
+
workflow: workflow.yaml
|
|
32
|
+
agents: agents.yaml
|
|
33
|
+
|
|
34
|
+
config:
|
|
35
|
+
input:
|
|
36
|
+
type: string
|
|
37
|
+
required: true
|
|
38
|
+
description: Input video file path
|
|
39
|
+
output:
|
|
40
|
+
type: string
|
|
41
|
+
description: Output video file path (default: input_edited.mp4)
|
|
42
|
+
preset:
|
|
43
|
+
type: string
|
|
44
|
+
default: podcast
|
|
45
|
+
enum: [podcast, meeting, course, clean]
|
|
46
|
+
description: Edit preset determining removal aggressiveness
|
|
47
|
+
remove_fillers:
|
|
48
|
+
type: boolean
|
|
49
|
+
default: true
|
|
50
|
+
description: Remove filler words (um, uh, like, etc.)
|
|
51
|
+
remove_repetitions:
|
|
52
|
+
type: boolean
|
|
53
|
+
default: true
|
|
54
|
+
description: Remove repeated phrases and stutters
|
|
55
|
+
remove_tangents:
|
|
56
|
+
type: boolean
|
|
57
|
+
default: false
|
|
58
|
+
description: Remove off-topic content (LLM-based)
|
|
59
|
+
remove_silence:
|
|
60
|
+
type: boolean
|
|
61
|
+
default: true
|
|
62
|
+
description: Remove long silences
|
|
63
|
+
target_length:
|
|
64
|
+
type: string
|
|
65
|
+
description: Target output duration (e.g., 6m, 90s)
|
|
66
|
+
verbose:
|
|
67
|
+
type: boolean
|
|
68
|
+
default: false
|
|
69
|
+
description: Enable verbose output
|
|
70
|
+
|
|
71
|
+
defaults:
|
|
72
|
+
preset: podcast
|
|
73
|
+
remove_fillers: true
|
|
74
|
+
remove_repetitions: true
|
|
75
|
+
remove_tangents: false
|
|
76
|
+
remove_silence: true
|
|
77
|
+
verbose: false
|
|
78
|
+
|
|
79
|
+
cli:
|
|
80
|
+
command: ai-video-editor
|
|
81
|
+
args:
|
|
82
|
+
- name: input
|
|
83
|
+
positional: true
|
|
84
|
+
required: true
|
|
85
|
+
description: Input video file
|
|
86
|
+
- name: --output
|
|
87
|
+
short: -o
|
|
88
|
+
description: Output video file
|
|
89
|
+
- name: --preset
|
|
90
|
+
short: -p
|
|
91
|
+
default: podcast
|
|
92
|
+
description: Edit preset (podcast, meeting, course, clean)
|
|
93
|
+
- name: --remove-fillers
|
|
94
|
+
flag: true
|
|
95
|
+
description: Remove filler words
|
|
96
|
+
- name: --remove-repetitions
|
|
97
|
+
flag: true
|
|
98
|
+
description: Remove repeated phrases
|
|
99
|
+
- name: --remove-tangents
|
|
100
|
+
flag: true
|
|
101
|
+
description: Remove off-topic content
|
|
102
|
+
- name: --target-length
|
|
103
|
+
description: Target duration (e.g., 6m, 90s)
|
|
104
|
+
- name: --verbose
|
|
105
|
+
short: -v
|
|
106
|
+
flag: true
|
|
107
|
+
description: Enable verbose output
|
|
108
|
+
examples:
|
|
109
|
+
- "python -m ai_video_editor.cli edit input.mp4 --preset podcast --output out.mp4"
|
|
110
|
+
- "python -m ai_video_editor.cli edit input.mp4 --remove-fillers --remove-tangents"
|
|
111
|
+
- "python -m ai_video_editor.cli probe input.mp4"
|
|
112
|
+
- "python -m ai_video_editor.cli transcript input.mp4 --output transcript.srt"
|
|
113
|
+
- "praisonai templates run ai-video-editor input.mp4 --output edited.mp4"
|
|
114
|
+
|
|
115
|
+
outputs:
|
|
116
|
+
- name: output_video
|
|
117
|
+
type: file
|
|
118
|
+
description: Final edited video file
|
|
119
|
+
- name: transcript
|
|
120
|
+
type: file
|
|
121
|
+
description: Plain text transcript
|
|
122
|
+
- name: captions
|
|
123
|
+
type: file
|
|
124
|
+
description: SRT caption file
|
|
125
|
+
- name: edit_plan
|
|
126
|
+
type: file
|
|
127
|
+
description: JSON edit plan with segments
|
|
128
|
+
- name: edl
|
|
129
|
+
type: file
|
|
130
|
+
description: Edit Decision List file
|
|
131
|
+
- name: report
|
|
132
|
+
type: file
|
|
133
|
+
description: Full JSON report with all metadata
|
|
134
|
+
|
|
135
|
+
# Self-contained execution
|
|
136
|
+
# This recipe can be run via:
|
|
137
|
+
# 1. praisonai templates run ai-video-editor <input> --output <output>
|
|
138
|
+
# 2. python -m ai_video_editor.cli edit <input> --output <output>
|
|
139
|
+
# 3. ./scripts/run.sh <input> --output <output>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
framework: praisonai
|
|
2
|
+
topic: AI Video Editing Pipeline
|
|
3
|
+
roles:
|
|
4
|
+
video_editor:
|
|
5
|
+
role: Video Editor
|
|
6
|
+
goal: Edit videos by removing fillers, repetitions, tangents, and silences
|
|
7
|
+
backstory: |
|
|
8
|
+
I am an AI video editor that uses praisonai_tools.video to process videos.
|
|
9
|
+
I can analyze video content, transcribe audio, identify segments to remove,
|
|
10
|
+
and render polished final output.
|
|
11
|
+
tasks:
|
|
12
|
+
edit_video:
|
|
13
|
+
description: |
|
|
14
|
+
Edit the input video using AI analysis:
|
|
15
|
+
1. Probe video to get metadata
|
|
16
|
+
2. Transcribe audio with word-level timestamps
|
|
17
|
+
3. Analyze content to identify segments to remove
|
|
18
|
+
4. Optimize timeline and render final video
|
|
19
|
+
|
|
20
|
+
Input video: {input}
|
|
21
|
+
Output path: {output}
|
|
22
|
+
Preset: {preset}
|
|
23
|
+
|
|
24
|
+
Run the video editing CLI:
|
|
25
|
+
python -m praisonai_tools.video edit "{input}" --preset {preset} --output "{output}" -v
|
|
26
|
+
expected_output: |
|
|
27
|
+
Edited video file with:
|
|
28
|
+
- Filler words removed
|
|
29
|
+
- Repetitions removed
|
|
30
|
+
- Silences trimmed
|
|
31
|
+
- Transcript and captions generated
|
|
32
|
+
- Edit decision list created
|
|
33
|
+
tools:
|
|
34
|
+
- shell_tool
|
|
35
|
+
|
|
36
|
+
dependencies: []
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# AI Video Editor - Shell wrapper
|
|
3
|
+
# Usage: ./run.sh edit input.mp4 --preset podcast --output out.mp4
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
RECIPE_DIR="$(dirname "$SCRIPT_DIR")"
|
|
7
|
+
SRC_DIR="$RECIPE_DIR/src"
|
|
8
|
+
|
|
9
|
+
# Run the CLI
|
|
10
|
+
cd "$SRC_DIR" && python -m ai_video_editor.cli "$@"
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AI Video Editor - Self-contained recipe for PraisonAI
|
|
3
|
+
|
|
4
|
+
This module provides end-to-end AI-powered video editing:
|
|
5
|
+
- Transcription with word-level timestamps
|
|
6
|
+
- Filler word detection and removal
|
|
7
|
+
- Repetition detection
|
|
8
|
+
- Tangent/off-topic segment identification
|
|
9
|
+
- Timeline optimization
|
|
10
|
+
- FFmpeg-based rendering
|
|
11
|
+
|
|
12
|
+
Usage:
|
|
13
|
+
python -m ai_video_editor.cli edit input.mp4 --preset podcast
|
|
14
|
+
python -m ai_video_editor.cli probe input.mp4
|
|
15
|
+
python -m ai_video_editor.cli transcript input.mp4
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
__version__ = "1.0.0"
|
|
19
|
+
|
|
20
|
+
from .pipeline import edit, probe, transcript
|
|
21
|
+
from .config import PRESETS, EditConfig
|
|
22
|
+
from .models import (
|
|
23
|
+
Word,
|
|
24
|
+
Segment,
|
|
25
|
+
SegmentCategory,
|
|
26
|
+
EditPlan,
|
|
27
|
+
VideoProbeResult,
|
|
28
|
+
TranscriptResult,
|
|
29
|
+
VideoEditResult,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
__all__ = [
|
|
33
|
+
"edit",
|
|
34
|
+
"probe",
|
|
35
|
+
"transcript",
|
|
36
|
+
"PRESETS",
|
|
37
|
+
"EditConfig",
|
|
38
|
+
"Word",
|
|
39
|
+
"Segment",
|
|
40
|
+
"SegmentCategory",
|
|
41
|
+
"EditPlan",
|
|
42
|
+
"VideoProbeResult",
|
|
43
|
+
"TranscriptResult",
|
|
44
|
+
"VideoEditResult",
|
|
45
|
+
]
|
agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/__init__.cpython-312.pyc
ADDED
|
Binary file
|
|
Binary file
|
agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/config.cpython-312.pyc
ADDED
|
Binary file
|
agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/ffmpeg_probe.cpython-312.pyc
ADDED
|
Binary file
|
agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/heuristics.cpython-312.pyc
ADDED
|
Binary file
|
agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/llm_plan.cpython-312.pyc
ADDED
|
Binary file
|
agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/models.cpython-312.pyc
ADDED
|
Binary file
|
agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/pipeline.cpython-312.pyc
ADDED
|
Binary file
|
agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/render.cpython-312.pyc
ADDED
|
Binary file
|
agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/timeline.cpython-312.pyc
ADDED
|
Binary file
|