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.
Files changed (270) hide show
  1. agent_recipes/__init__.py +27 -0
  2. agent_recipes/recipe_runtime/__init__.py +28 -0
  3. agent_recipes/recipe_runtime/core.py +385 -0
  4. agent_recipes/templates/ai-ab-hook-tester/recipe.yaml +45 -0
  5. agent_recipes/templates/ai-ab-hook-tester/tools.py +169 -0
  6. agent_recipes/templates/ai-angle-generator/recipe.yaml +49 -0
  7. agent_recipes/templates/ai-angle-generator/tools.py +182 -0
  8. agent_recipes/templates/ai-api-doc-generator/README.md +59 -0
  9. agent_recipes/templates/ai-api-doc-generator/TEMPLATE.yaml +29 -0
  10. agent_recipes/templates/ai-api-tester/README.md +60 -0
  11. agent_recipes/templates/ai-api-tester/TEMPLATE.yaml +29 -0
  12. agent_recipes/templates/ai-audio-enhancer/README.md +59 -0
  13. agent_recipes/templates/ai-audio-enhancer/TEMPLATE.yaml +28 -0
  14. agent_recipes/templates/ai-audio-normalizer/README.md +13 -0
  15. agent_recipes/templates/ai-audio-normalizer/TEMPLATE.yaml +44 -0
  16. agent_recipes/templates/ai-audio-splitter/README.md +14 -0
  17. agent_recipes/templates/ai-audio-splitter/TEMPLATE.yaml +47 -0
  18. agent_recipes/templates/ai-background-music-generator/README.md +59 -0
  19. agent_recipes/templates/ai-background-music-generator/TEMPLATE.yaml +28 -0
  20. agent_recipes/templates/ai-background-remover/README.md +60 -0
  21. agent_recipes/templates/ai-background-remover/TEMPLATE.yaml +27 -0
  22. agent_recipes/templates/ai-barcode-scanner/README.md +60 -0
  23. agent_recipes/templates/ai-barcode-scanner/TEMPLATE.yaml +26 -0
  24. agent_recipes/templates/ai-blog-generator/README.md +59 -0
  25. agent_recipes/templates/ai-blog-generator/TEMPLATE.yaml +28 -0
  26. agent_recipes/templates/ai-brief-generator/recipe.yaml +52 -0
  27. agent_recipes/templates/ai-brief-generator/tools.py +231 -0
  28. agent_recipes/templates/ai-broll-builder/recipe.yaml +47 -0
  29. agent_recipes/templates/ai-broll-builder/tools.py +204 -0
  30. agent_recipes/templates/ai-calendar-scheduler/README.md +60 -0
  31. agent_recipes/templates/ai-calendar-scheduler/TEMPLATE.yaml +29 -0
  32. agent_recipes/templates/ai-changelog-generator/README.md +14 -0
  33. agent_recipes/templates/ai-changelog-generator/TEMPLATE.yaml +46 -0
  34. agent_recipes/templates/ai-chart-generator/README.md +61 -0
  35. agent_recipes/templates/ai-chart-generator/TEMPLATE.yaml +32 -0
  36. agent_recipes/templates/ai-code-documenter/README.md +12 -0
  37. agent_recipes/templates/ai-code-documenter/TEMPLATE.yaml +37 -0
  38. agent_recipes/templates/ai-code-refactorer/README.md +59 -0
  39. agent_recipes/templates/ai-code-refactorer/TEMPLATE.yaml +28 -0
  40. agent_recipes/templates/ai-code-reviewer/README.md +59 -0
  41. agent_recipes/templates/ai-code-reviewer/TEMPLATE.yaml +31 -0
  42. agent_recipes/templates/ai-color-palette-extractor/README.md +60 -0
  43. agent_recipes/templates/ai-color-palette-extractor/TEMPLATE.yaml +27 -0
  44. agent_recipes/templates/ai-comment-miner/recipe.yaml +40 -0
  45. agent_recipes/templates/ai-comment-miner/tools.py +141 -0
  46. agent_recipes/templates/ai-commit-message-generator/README.md +59 -0
  47. agent_recipes/templates/ai-commit-message-generator/TEMPLATE.yaml +31 -0
  48. agent_recipes/templates/ai-content-calendar/recipe.yaml +43 -0
  49. agent_recipes/templates/ai-content-calendar/tools.py +170 -0
  50. agent_recipes/templates/ai-context-enricher/recipe.yaml +48 -0
  51. agent_recipes/templates/ai-context-enricher/tools.py +258 -0
  52. agent_recipes/templates/ai-contract-analyzer/README.md +60 -0
  53. agent_recipes/templates/ai-contract-analyzer/TEMPLATE.yaml +34 -0
  54. agent_recipes/templates/ai-csv-cleaner/README.md +13 -0
  55. agent_recipes/templates/ai-csv-cleaner/TEMPLATE.yaml +45 -0
  56. agent_recipes/templates/ai-cta-generator/recipe.yaml +54 -0
  57. agent_recipes/templates/ai-cta-generator/tools.py +174 -0
  58. agent_recipes/templates/ai-daily-news-show/recipe.yaml +103 -0
  59. agent_recipes/templates/ai-daily-news-show/tools.py +308 -0
  60. agent_recipes/templates/ai-data-anonymizer/README.md +60 -0
  61. agent_recipes/templates/ai-data-anonymizer/TEMPLATE.yaml +31 -0
  62. agent_recipes/templates/ai-data-profiler/README.md +14 -0
  63. agent_recipes/templates/ai-data-profiler/TEMPLATE.yaml +42 -0
  64. agent_recipes/templates/ai-dependency-auditor/README.md +12 -0
  65. agent_recipes/templates/ai-dependency-auditor/TEMPLATE.yaml +37 -0
  66. agent_recipes/templates/ai-doc-translator/README.md +12 -0
  67. agent_recipes/templates/ai-doc-translator/TEMPLATE.yaml +41 -0
  68. agent_recipes/templates/ai-duplicate-finder/README.md +59 -0
  69. agent_recipes/templates/ai-duplicate-finder/TEMPLATE.yaml +28 -0
  70. agent_recipes/templates/ai-ebook-converter/README.md +60 -0
  71. agent_recipes/templates/ai-ebook-converter/TEMPLATE.yaml +27 -0
  72. agent_recipes/templates/ai-email-parser/README.md +59 -0
  73. agent_recipes/templates/ai-email-parser/TEMPLATE.yaml +29 -0
  74. agent_recipes/templates/ai-etl-pipeline/README.md +60 -0
  75. agent_recipes/templates/ai-etl-pipeline/TEMPLATE.yaml +30 -0
  76. agent_recipes/templates/ai-excel-formula-generator/README.md +59 -0
  77. agent_recipes/templates/ai-excel-formula-generator/TEMPLATE.yaml +28 -0
  78. agent_recipes/templates/ai-face-blur/README.md +60 -0
  79. agent_recipes/templates/ai-face-blur/TEMPLATE.yaml +28 -0
  80. agent_recipes/templates/ai-fact-checker/recipe.yaml +52 -0
  81. agent_recipes/templates/ai-fact-checker/tools.py +279 -0
  82. agent_recipes/templates/ai-faq-generator/README.md +59 -0
  83. agent_recipes/templates/ai-faq-generator/TEMPLATE.yaml +28 -0
  84. agent_recipes/templates/ai-file-organizer/README.md +59 -0
  85. agent_recipes/templates/ai-file-organizer/TEMPLATE.yaml +29 -0
  86. agent_recipes/templates/ai-folder-packager/README.md +15 -0
  87. agent_recipes/templates/ai-folder-packager/TEMPLATE.yaml +48 -0
  88. agent_recipes/templates/ai-form-filler/README.md +60 -0
  89. agent_recipes/templates/ai-form-filler/TEMPLATE.yaml +30 -0
  90. agent_recipes/templates/ai-hashtag-optimizer/recipe.yaml +45 -0
  91. agent_recipes/templates/ai-hashtag-optimizer/tools.py +134 -0
  92. agent_recipes/templates/ai-hook-generator/recipe.yaml +50 -0
  93. agent_recipes/templates/ai-hook-generator/tools.py +177 -0
  94. agent_recipes/templates/ai-image-captioner/README.md +59 -0
  95. agent_recipes/templates/ai-image-captioner/TEMPLATE.yaml +28 -0
  96. agent_recipes/templates/ai-image-cataloger/README.md +13 -0
  97. agent_recipes/templates/ai-image-cataloger/TEMPLATE.yaml +39 -0
  98. agent_recipes/templates/ai-image-optimizer/README.md +13 -0
  99. agent_recipes/templates/ai-image-optimizer/TEMPLATE.yaml +43 -0
  100. agent_recipes/templates/ai-image-resizer/README.md +12 -0
  101. agent_recipes/templates/ai-image-resizer/TEMPLATE.yaml +39 -0
  102. agent_recipes/templates/ai-image-tagger/README.md +59 -0
  103. agent_recipes/templates/ai-image-tagger/TEMPLATE.yaml +28 -0
  104. agent_recipes/templates/ai-image-upscaler/README.md +60 -0
  105. agent_recipes/templates/ai-image-upscaler/TEMPLATE.yaml +27 -0
  106. agent_recipes/templates/ai-invoice-processor/README.md +60 -0
  107. agent_recipes/templates/ai-invoice-processor/TEMPLATE.yaml +34 -0
  108. agent_recipes/templates/ai-json-to-csv/README.md +12 -0
  109. agent_recipes/templates/ai-json-to-csv/TEMPLATE.yaml +36 -0
  110. agent_recipes/templates/ai-log-analyzer/README.md +59 -0
  111. agent_recipes/templates/ai-log-analyzer/TEMPLATE.yaml +28 -0
  112. agent_recipes/templates/ai-markdown-to-pdf/README.md +12 -0
  113. agent_recipes/templates/ai-markdown-to-pdf/TEMPLATE.yaml +40 -0
  114. agent_recipes/templates/ai-meeting-summarizer/README.md +59 -0
  115. agent_recipes/templates/ai-meeting-summarizer/TEMPLATE.yaml +32 -0
  116. agent_recipes/templates/ai-meta-tag-generator/README.md +59 -0
  117. agent_recipes/templates/ai-meta-tag-generator/TEMPLATE.yaml +28 -0
  118. agent_recipes/templates/ai-news-capture-pack/recipe.yaml +42 -0
  119. agent_recipes/templates/ai-news-capture-pack/tools.py +150 -0
  120. agent_recipes/templates/ai-news-crawler/recipe.yaml +99 -0
  121. agent_recipes/templates/ai-news-crawler/tools.py +417 -0
  122. agent_recipes/templates/ai-news-deduper/recipe.yaml +47 -0
  123. agent_recipes/templates/ai-news-deduper/tools.py +235 -0
  124. agent_recipes/templates/ai-newsletter-generator/README.md +59 -0
  125. agent_recipes/templates/ai-newsletter-generator/TEMPLATE.yaml +28 -0
  126. agent_recipes/templates/ai-note-summarizer/README.md +59 -0
  127. agent_recipes/templates/ai-note-summarizer/TEMPLATE.yaml +28 -0
  128. agent_recipes/templates/ai-pdf-summarizer/README.md +12 -0
  129. agent_recipes/templates/ai-pdf-summarizer/TEMPLATE.yaml +40 -0
  130. agent_recipes/templates/ai-pdf-to-markdown/README.md +19 -0
  131. agent_recipes/templates/ai-pdf-to-markdown/TEMPLATE.yaml +63 -0
  132. agent_recipes/templates/ai-performance-analyzer/recipe.yaml +45 -0
  133. agent_recipes/templates/ai-performance-analyzer/tools.py +159 -0
  134. agent_recipes/templates/ai-podcast-cleaner/README.md +117 -0
  135. agent_recipes/templates/ai-podcast-cleaner/TEMPLATE.yaml +117 -0
  136. agent_recipes/templates/ai-podcast-cleaner/agents.yaml +59 -0
  137. agent_recipes/templates/ai-podcast-cleaner/workflow.yaml +77 -0
  138. agent_recipes/templates/ai-podcast-transcriber/README.md +59 -0
  139. agent_recipes/templates/ai-podcast-transcriber/TEMPLATE.yaml +32 -0
  140. agent_recipes/templates/ai-post-copy-generator/recipe.yaml +41 -0
  141. agent_recipes/templates/ai-post-copy-generator/tools.py +105 -0
  142. agent_recipes/templates/ai-product-description-generator/README.md +59 -0
  143. agent_recipes/templates/ai-product-description-generator/TEMPLATE.yaml +28 -0
  144. agent_recipes/templates/ai-publisher-pack/recipe.yaml +44 -0
  145. agent_recipes/templates/ai-publisher-pack/tools.py +252 -0
  146. agent_recipes/templates/ai-qr-code-generator/README.md +60 -0
  147. agent_recipes/templates/ai-qr-code-generator/TEMPLATE.yaml +26 -0
  148. agent_recipes/templates/ai-regex-generator/README.md +59 -0
  149. agent_recipes/templates/ai-regex-generator/TEMPLATE.yaml +28 -0
  150. agent_recipes/templates/ai-repo-readme/README.md +13 -0
  151. agent_recipes/templates/ai-repo-readme/TEMPLATE.yaml +42 -0
  152. agent_recipes/templates/ai-report-generator/README.md +61 -0
  153. agent_recipes/templates/ai-report-generator/TEMPLATE.yaml +32 -0
  154. agent_recipes/templates/ai-resume-parser/README.md +60 -0
  155. agent_recipes/templates/ai-resume-parser/TEMPLATE.yaml +33 -0
  156. agent_recipes/templates/ai-rss-aggregator/README.md +60 -0
  157. agent_recipes/templates/ai-rss-aggregator/TEMPLATE.yaml +30 -0
  158. agent_recipes/templates/ai-schema-generator/README.md +12 -0
  159. agent_recipes/templates/ai-schema-generator/TEMPLATE.yaml +34 -0
  160. agent_recipes/templates/ai-screen-recorder/recipe.yaml +43 -0
  161. agent_recipes/templates/ai-screen-recorder/tools.py +184 -0
  162. agent_recipes/templates/ai-screenshot-capture/recipe.yaml +45 -0
  163. agent_recipes/templates/ai-screenshot-capture/tools.py +231 -0
  164. agent_recipes/templates/ai-screenshot-ocr/README.md +12 -0
  165. agent_recipes/templates/ai-screenshot-ocr/TEMPLATE.yaml +37 -0
  166. agent_recipes/templates/ai-script-writer/recipe.yaml +58 -0
  167. agent_recipes/templates/ai-script-writer/tools.py +297 -0
  168. agent_recipes/templates/ai-sentiment-analyzer/README.md +59 -0
  169. agent_recipes/templates/ai-sentiment-analyzer/TEMPLATE.yaml +28 -0
  170. agent_recipes/templates/ai-seo-optimizer/README.md +59 -0
  171. agent_recipes/templates/ai-seo-optimizer/TEMPLATE.yaml +28 -0
  172. agent_recipes/templates/ai-signal-ranker/recipe.yaml +54 -0
  173. agent_recipes/templates/ai-signal-ranker/tools.py +256 -0
  174. agent_recipes/templates/ai-sitemap-generator/README.md +59 -0
  175. agent_recipes/templates/ai-sitemap-generator/TEMPLATE.yaml +26 -0
  176. agent_recipes/templates/ai-sitemap-scraper/README.md +13 -0
  177. agent_recipes/templates/ai-sitemap-scraper/TEMPLATE.yaml +41 -0
  178. agent_recipes/templates/ai-slide-generator/README.md +60 -0
  179. agent_recipes/templates/ai-slide-generator/TEMPLATE.yaml +29 -0
  180. agent_recipes/templates/ai-slide-to-notes/README.md +12 -0
  181. agent_recipes/templates/ai-slide-to-notes/TEMPLATE.yaml +37 -0
  182. agent_recipes/templates/ai-social-media-generator/README.md +59 -0
  183. agent_recipes/templates/ai-social-media-generator/TEMPLATE.yaml +28 -0
  184. agent_recipes/templates/ai-sql-generator/README.md +59 -0
  185. agent_recipes/templates/ai-sql-generator/TEMPLATE.yaml +28 -0
  186. agent_recipes/templates/ai-subtitle-generator/README.md +59 -0
  187. agent_recipes/templates/ai-subtitle-generator/TEMPLATE.yaml +31 -0
  188. agent_recipes/templates/ai-test-generator/README.md +59 -0
  189. agent_recipes/templates/ai-test-generator/TEMPLATE.yaml +28 -0
  190. agent_recipes/templates/ai-translation-batch/README.md +59 -0
  191. agent_recipes/templates/ai-translation-batch/TEMPLATE.yaml +28 -0
  192. agent_recipes/templates/ai-url-to-markdown/README.md +14 -0
  193. agent_recipes/templates/ai-url-to-markdown/TEMPLATE.yaml +44 -0
  194. agent_recipes/templates/ai-video-chapter-generator/README.md +59 -0
  195. agent_recipes/templates/ai-video-chapter-generator/TEMPLATE.yaml +32 -0
  196. agent_recipes/templates/ai-video-compressor/README.md +59 -0
  197. agent_recipes/templates/ai-video-compressor/TEMPLATE.yaml +28 -0
  198. agent_recipes/templates/ai-video-editor/README.md +254 -0
  199. agent_recipes/templates/ai-video-editor/TEMPLATE.yaml +139 -0
  200. agent_recipes/templates/ai-video-editor/agents.yaml +36 -0
  201. agent_recipes/templates/ai-video-editor/requirements.txt +8 -0
  202. agent_recipes/templates/ai-video-editor/scripts/run.sh +10 -0
  203. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__init__.py +45 -0
  204. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__main__.py +8 -0
  205. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/__init__.cpython-312.pyc +0 -0
  206. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/cli.cpython-312.pyc +0 -0
  207. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/config.cpython-312.pyc +0 -0
  208. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/ffmpeg_probe.cpython-312.pyc +0 -0
  209. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/heuristics.cpython-312.pyc +0 -0
  210. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/llm_plan.cpython-312.pyc +0 -0
  211. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/models.cpython-312.pyc +0 -0
  212. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/pipeline.cpython-312.pyc +0 -0
  213. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/render.cpython-312.pyc +0 -0
  214. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/timeline.cpython-312.pyc +0 -0
  215. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/transcribe.cpython-312.pyc +0 -0
  216. agent_recipes/templates/ai-video-editor/src/ai_video_editor/__pycache__/utils.cpython-312.pyc +0 -0
  217. agent_recipes/templates/ai-video-editor/src/ai_video_editor/cli.py +343 -0
  218. agent_recipes/templates/ai-video-editor/src/ai_video_editor/config.py +102 -0
  219. agent_recipes/templates/ai-video-editor/src/ai_video_editor/ffmpeg_probe.py +92 -0
  220. agent_recipes/templates/ai-video-editor/src/ai_video_editor/heuristics.py +119 -0
  221. agent_recipes/templates/ai-video-editor/src/ai_video_editor/llm_plan.py +277 -0
  222. agent_recipes/templates/ai-video-editor/src/ai_video_editor/models.py +343 -0
  223. agent_recipes/templates/ai-video-editor/src/ai_video_editor/pipeline.py +287 -0
  224. agent_recipes/templates/ai-video-editor/src/ai_video_editor/render.py +274 -0
  225. agent_recipes/templates/ai-video-editor/src/ai_video_editor/timeline.py +278 -0
  226. agent_recipes/templates/ai-video-editor/src/ai_video_editor/transcribe.py +233 -0
  227. agent_recipes/templates/ai-video-editor/src/ai_video_editor/utils.py +222 -0
  228. agent_recipes/templates/ai-video-editor/src/input.mov +0 -0
  229. agent_recipes/templates/ai-video-editor/src/out.mp4 +0 -0
  230. agent_recipes/templates/ai-video-editor/tests/test_heuristics.py +130 -0
  231. agent_recipes/templates/ai-video-editor/tests/test_models.py +152 -0
  232. agent_recipes/templates/ai-video-editor/tests/test_timeline.py +105 -0
  233. agent_recipes/templates/ai-video-editor/workflow.yaml +51 -0
  234. agent_recipes/templates/ai-video-highlight-extractor/README.md +60 -0
  235. agent_recipes/templates/ai-video-highlight-extractor/TEMPLATE.yaml +33 -0
  236. agent_recipes/templates/ai-video-merger/recipe.yaml +40 -0
  237. agent_recipes/templates/ai-video-merger/tools.py +172 -0
  238. agent_recipes/templates/ai-video-thumbnails/README.md +16 -0
  239. agent_recipes/templates/ai-video-thumbnails/TEMPLATE.yaml +53 -0
  240. agent_recipes/templates/ai-video-to-gif/README.md +14 -0
  241. agent_recipes/templates/ai-video-to-gif/TEMPLATE.yaml +64 -0
  242. agent_recipes/templates/ai-voice-cloner/README.md +59 -0
  243. agent_recipes/templates/ai-voice-cloner/TEMPLATE.yaml +31 -0
  244. agent_recipes/templates/ai-voiceover-generator/recipe.yaml +41 -0
  245. agent_recipes/templates/ai-voiceover-generator/tools.py +194 -0
  246. agent_recipes/templates/ai-watermark-adder/README.md +59 -0
  247. agent_recipes/templates/ai-watermark-adder/TEMPLATE.yaml +26 -0
  248. agent_recipes/templates/ai-watermark-remover/README.md +60 -0
  249. agent_recipes/templates/ai-watermark-remover/TEMPLATE.yaml +32 -0
  250. agent_recipes/templates/data-transformer/README.md +75 -0
  251. agent_recipes/templates/data-transformer/TEMPLATE.yaml +63 -0
  252. agent_recipes/templates/data-transformer/agents.yaml +70 -0
  253. agent_recipes/templates/data-transformer/workflow.yaml +92 -0
  254. agent_recipes/templates/shorts-generator/README.md +61 -0
  255. agent_recipes/templates/shorts-generator/TEMPLATE.yaml +65 -0
  256. agent_recipes/templates/shorts-generator/agents.yaml +66 -0
  257. agent_recipes/templates/shorts-generator/workflow.yaml +86 -0
  258. agent_recipes/templates/transcript-generator/README.md +103 -0
  259. agent_recipes/templates/transcript-generator/TEMPLATE.yaml +57 -0
  260. agent_recipes/templates/transcript-generator/agents.yaml +62 -0
  261. agent_recipes/templates/transcript-generator/workflow.yaml +82 -0
  262. agent_recipes/templates/video-editor/README.md +70 -0
  263. agent_recipes/templates/video-editor/TEMPLATE.yaml +55 -0
  264. agent_recipes/templates/video-editor/agents.yaml +68 -0
  265. agent_recipes/templates/video-editor/workflow.yaml +92 -0
  266. agent_recipes-0.0.5.dist-info/METADATA +145 -0
  267. agent_recipes-0.0.5.dist-info/RECORD +269 -0
  268. agent_recipes-0.0.5.dist-info/WHEEL +5 -0
  269. agent_recipes-0.0.5.dist-info/top_level.txt +1 -0
  270. /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,60 @@
1
+ # Video Highlight Extractor
2
+
3
+ Auto-detect and extract key moments/highlights from long videos
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install agent-recipes
9
+ ```
10
+
11
+ ## CLI Usage
12
+
13
+ ```bash
14
+ # Basic usage
15
+ praison recipes run ai-video-highlight-extractor <input>
16
+
17
+ # With output directory
18
+ praison recipes run ai-video-highlight-extractor <input> --output ./output/
19
+
20
+ # Dry run (check dependencies only)
21
+ praison recipes run ai-video-highlight-extractor <input> --dry-run
22
+
23
+ # Show recipe info
24
+ praison recipes info ai-video-highlight-extractor
25
+
26
+ # Check dependencies
27
+ praison recipes doctor ai-video-highlight-extractor
28
+ ```
29
+
30
+ ## Python Usage
31
+
32
+ ```python
33
+ from praisonaiagents import Agent
34
+ from agent_recipes import load_recipe
35
+
36
+ # Load and run recipe
37
+ recipe = load_recipe("ai-video-highlight-extractor")
38
+ result = recipe.run(input="<your-input>")
39
+ print(result)
40
+ ```
41
+
42
+ ## Requirements
43
+
44
+ ### Packages
45
+ - ffmpeg-python
46
+ - openai
47
+
48
+ ### Environment Variables
49
+ - OPENAI_API_KEY
50
+
51
+ ### External Tools
52
+ - ffmpeg
53
+
54
+ ## Tags
55
+
56
+ `video`, `highlights`, `extraction`
57
+
58
+ ## License
59
+
60
+ Apache-2.0
@@ -0,0 +1,33 @@
1
+ name: ai-video-highlight-extractor
2
+ version: "1.0.0"
3
+ description: Auto-detect and extract key moments/highlights from long videos
4
+ author: praison
5
+ license: Apache-2.0
6
+ tags:
7
+ - video
8
+ - highlights
9
+ - extraction
10
+
11
+ requires:
12
+ tools:
13
+ - media_tool
14
+ - whisper_tool
15
+ - llm_tool
16
+ packages:
17
+ - ffmpeg-python
18
+ - openai
19
+ env:
20
+ - OPENAI_API_KEY
21
+ external:
22
+ - ffmpeg
23
+
24
+ cli:
25
+ command: praison recipes run ai-video-highlight-extractor
26
+ examples:
27
+ - praison recipes run ai-video-highlight-extractor <input>
28
+ - praison recipes run ai-video-highlight-extractor <input> --output ./output/
29
+ - praison recipes run ai-video-highlight-extractor <input> --dry-run
30
+
31
+ safety:
32
+ dry_run_default: true
33
+ overwrites_files: true
@@ -0,0 +1,40 @@
1
+ name: ai-video-merger
2
+ version: 1.0.0
3
+ description: Merge voice audio with video, sync audio and video tracks
4
+ author: PraisonAI
5
+ tags:
6
+ - video
7
+ - audio
8
+ - merge
9
+ - sync
10
+
11
+ config:
12
+ output_format: mp4
13
+ audio_sync: true
14
+ normalize_audio: true
15
+
16
+ input:
17
+ type: object
18
+ properties:
19
+ video_path:
20
+ type: string
21
+ audio_path:
22
+ type: string
23
+
24
+ output:
25
+ type: object
26
+ properties:
27
+ merged_path:
28
+ type: string
29
+
30
+ requires:
31
+ external:
32
+ - ffmpeg
33
+
34
+ workflow:
35
+ agents:
36
+ - name: merger
37
+ role: Video Audio Merger
38
+ tools:
39
+ - merge_audio_video
40
+ - sync_tracks
@@ -0,0 +1,172 @@
1
+ """
2
+ AI Video Merger Tools
3
+
4
+ Merge and sync audio with video:
5
+ - Audio/video merging
6
+ - Track synchronization
7
+ - Audio normalization
8
+ """
9
+
10
+ import logging
11
+ import os
12
+ import subprocess
13
+ from datetime import datetime
14
+ from typing import Any, Dict, Optional
15
+
16
+ logger = logging.getLogger(__name__)
17
+
18
+
19
+ def merge_audio_video(
20
+ video_path: str,
21
+ audio_path: str,
22
+ output_path: Optional[str] = None,
23
+ replace_audio: bool = True,
24
+ normalize: bool = True,
25
+ ) -> Dict[str, Any]:
26
+ """
27
+ Merge audio track with video.
28
+
29
+ Args:
30
+ video_path: Path to video file
31
+ audio_path: Path to audio file
32
+ output_path: Output file path
33
+ replace_audio: Replace existing audio
34
+ normalize: Normalize audio levels
35
+
36
+ Returns:
37
+ Dictionary with output info
38
+ """
39
+ if not os.path.exists(video_path):
40
+ return {"error": f"Video not found: {video_path}"}
41
+ if not os.path.exists(audio_path):
42
+ return {"error": f"Audio not found: {audio_path}"}
43
+
44
+ if not output_path:
45
+ timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
46
+ output_path = f"merged_{timestamp}.mp4"
47
+
48
+ try:
49
+ if replace_audio:
50
+ # Replace audio entirely
51
+ cmd = [
52
+ "ffmpeg", "-y",
53
+ "-i", video_path,
54
+ "-i", audio_path,
55
+ "-c:v", "copy",
56
+ "-c:a", "aac",
57
+ "-map", "0:v:0",
58
+ "-map", "1:a:0",
59
+ "-shortest",
60
+ output_path
61
+ ]
62
+ else:
63
+ # Mix audio tracks
64
+ cmd = [
65
+ "ffmpeg", "-y",
66
+ "-i", video_path,
67
+ "-i", audio_path,
68
+ "-filter_complex", "[0:a][1:a]amix=inputs=2:duration=first[a]",
69
+ "-c:v", "copy",
70
+ "-map", "0:v:0",
71
+ "-map", "[a]",
72
+ output_path
73
+ ]
74
+
75
+ result = subprocess.run(cmd, capture_output=True, text=True)
76
+
77
+ if result.returncode != 0:
78
+ logger.warning(f"FFmpeg stderr: {result.stderr}")
79
+
80
+ if os.path.exists(output_path):
81
+ return {
82
+ "path": output_path,
83
+ "video_source": video_path,
84
+ "audio_source": audio_path,
85
+ "size_bytes": os.path.getsize(output_path),
86
+ }
87
+ else:
88
+ return {"error": "Output file not created"}
89
+
90
+ except Exception as e:
91
+ logger.error(f"Error merging: {e}")
92
+ return {"error": str(e)}
93
+
94
+
95
+ def sync_tracks(
96
+ video_path: str,
97
+ audio_path: str,
98
+ output_path: Optional[str] = None,
99
+ audio_offset: float = 0.0,
100
+ ) -> Dict[str, Any]:
101
+ """
102
+ Sync audio track with video with offset adjustment.
103
+
104
+ Args:
105
+ video_path: Path to video file
106
+ audio_path: Path to audio file
107
+ output_path: Output file path
108
+ audio_offset: Audio offset in seconds (positive = delay audio)
109
+
110
+ Returns:
111
+ Dictionary with output info
112
+ """
113
+ if not output_path:
114
+ timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
115
+ output_path = f"synced_{timestamp}.mp4"
116
+
117
+ try:
118
+ if audio_offset >= 0:
119
+ # Delay audio
120
+ cmd = [
121
+ "ffmpeg", "-y",
122
+ "-i", video_path,
123
+ "-itsoffset", str(audio_offset),
124
+ "-i", audio_path,
125
+ "-c:v", "copy",
126
+ "-c:a", "aac",
127
+ "-map", "0:v:0",
128
+ "-map", "1:a:0",
129
+ "-shortest",
130
+ output_path
131
+ ]
132
+ else:
133
+ # Delay video (advance audio)
134
+ cmd = [
135
+ "ffmpeg", "-y",
136
+ "-itsoffset", str(-audio_offset),
137
+ "-i", video_path,
138
+ "-i", audio_path,
139
+ "-c:v", "copy",
140
+ "-c:a", "aac",
141
+ "-map", "0:v:0",
142
+ "-map", "1:a:0",
143
+ "-shortest",
144
+ output_path
145
+ ]
146
+
147
+ subprocess.run(cmd, capture_output=True, check=True)
148
+
149
+ return {
150
+ "path": output_path,
151
+ "audio_offset": audio_offset,
152
+ }
153
+
154
+ except Exception as e:
155
+ logger.error(f"Error syncing: {e}")
156
+ return {"error": str(e)}
157
+
158
+
159
+ def get_duration(file_path: str) -> float:
160
+ """Get duration of audio/video file in seconds."""
161
+ try:
162
+ cmd = [
163
+ "ffprobe",
164
+ "-v", "error",
165
+ "-show_entries", "format=duration",
166
+ "-of", "default=noprint_wrappers=1:nokey=1",
167
+ file_path
168
+ ]
169
+ result = subprocess.run(cmd, capture_output=True, text=True, check=True)
170
+ return float(result.stdout.strip())
171
+ except Exception:
172
+ return 0.0
@@ -0,0 +1,16 @@
1
+ # AI Video Thumbnails
2
+
3
+ Extract thumbnails from video with AI-selected best frame.
4
+
5
+ ## Usage
6
+ ```bash
7
+ praison run ai-video-thumbnails video.mp4
8
+ praison run ai-video-thumbnails video.mp4 --count 10
9
+ praison run ai-video-thumbnails video.mp4 --interval 30
10
+ ```
11
+
12
+ ## Output
13
+ - `thumbnails/` - Extracted frames
14
+ - `best-frame.jpg` - AI-selected best thumbnail
15
+ - `grid.jpg` - Contact sheet
16
+ - `frames.json` - Frame metadata
@@ -0,0 +1,53 @@
1
+ name: ai-video-thumbnails
2
+ version: "1.0.0"
3
+ description: Extract thumbnails from video with AI-selected best frame.
4
+ author: praisonai
5
+ license: Apache-2.0
6
+ tags: [video, thumbnails, frames, extraction]
7
+
8
+ requires:
9
+ tools: [shell_tool]
10
+ packages: [praisonai-tools]
11
+ env: [OPENAI_API_KEY]
12
+ external:
13
+ - name: ffmpeg
14
+ check: "ffmpeg -version"
15
+
16
+ config:
17
+ input:
18
+ type: string
19
+ required: true
20
+ output:
21
+ type: string
22
+ interval:
23
+ type: number
24
+ default: 10
25
+ count:
26
+ type: integer
27
+
28
+ cli:
29
+ command: ai-video-thumbnails
30
+ args:
31
+ - name: input
32
+ positional: true
33
+ required: true
34
+ - name: --output
35
+ short: -o
36
+ - name: --interval
37
+ default: "10"
38
+ - name: --count
39
+ examples:
40
+ - "praison run ai-video-thumbnails video.mp4"
41
+ - "praison run ai-video-thumbnails video.mp4 --count 10"
42
+
43
+ outputs:
44
+ - name: thumbnails/
45
+ type: directory
46
+ - name: best-frame.jpg
47
+ type: file
48
+ - name: grid.jpg
49
+ type: file
50
+ - name: frames.json
51
+ type: file
52
+ - name: run.json
53
+ type: file
@@ -0,0 +1,14 @@
1
+ # AI Video to GIF
2
+
3
+ Convert video to optimized GIF with palette optimization.
4
+
5
+ ## Usage
6
+ ```bash
7
+ praison run ai-video-to-gif video.mp4
8
+ praison run ai-video-to-gif video.mp4 --start 10 --duration 3 --fps 15
9
+ ```
10
+
11
+ ## Output
12
+ - `output.gif` - Optimized GIF
13
+ - `thumbnail.jpg` - Best frame thumbnail
14
+ - `run.json` - Execution metadata
@@ -0,0 +1,64 @@
1
+ name: ai-video-to-gif
2
+ version: "1.0.0"
3
+ description: |
4
+ Convert video to optimized GIF with AI-selected best frames.
5
+ Creates high-quality GIFs with palette optimization.
6
+
7
+ author: praisonai
8
+ license: Apache-2.0
9
+ tags: [video, gif, conversion, optimization]
10
+
11
+ requires:
12
+ tools: [shell_tool]
13
+ packages: [praisonai-tools]
14
+ external:
15
+ - name: ffmpeg
16
+ check: "ffmpeg -version"
17
+ install_hint: "brew install ffmpeg"
18
+
19
+ config:
20
+ input:
21
+ type: string
22
+ required: true
23
+ output:
24
+ type: string
25
+ start:
26
+ type: number
27
+ default: 0
28
+ duration:
29
+ type: number
30
+ default: 5
31
+ fps:
32
+ type: integer
33
+ default: 10
34
+ width:
35
+ type: integer
36
+ default: 480
37
+
38
+ cli:
39
+ command: ai-video-to-gif
40
+ args:
41
+ - name: input
42
+ positional: true
43
+ required: true
44
+ - name: --output
45
+ short: -o
46
+ - name: --start
47
+ default: "0"
48
+ - name: --duration
49
+ default: "5"
50
+ - name: --fps
51
+ default: "10"
52
+ - name: --width
53
+ default: "480"
54
+ examples:
55
+ - "praison run ai-video-to-gif video.mp4"
56
+ - "praison run ai-video-to-gif video.mp4 --start 10 --duration 3"
57
+
58
+ outputs:
59
+ - name: output.gif
60
+ type: file
61
+ - name: thumbnail.jpg
62
+ type: file
63
+ - name: run.json
64
+ type: file
@@ -0,0 +1,59 @@
1
+ # Voice Cloner
2
+
3
+ Clone voice from sample for TTS narration (CONSENT REQUIRED)
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install agent-recipes
9
+ ```
10
+
11
+ ## CLI Usage
12
+
13
+ ```bash
14
+ # Basic usage
15
+ praison recipes run ai-voice-cloner <input>
16
+
17
+ # With output directory
18
+ praison recipes run ai-voice-cloner <input> --output ./output/
19
+
20
+ # Dry run (check dependencies only)
21
+ praison recipes run ai-voice-cloner <input> --dry-run
22
+
23
+ # Show recipe info
24
+ praison recipes info ai-voice-cloner
25
+
26
+ # Check dependencies
27
+ praison recipes doctor ai-voice-cloner
28
+ ```
29
+
30
+ ## Python Usage
31
+
32
+ ```python
33
+ from praisonaiagents import Agent
34
+ from agent_recipes import load_recipe
35
+
36
+ # Load and run recipe
37
+ recipe = load_recipe("ai-voice-cloner")
38
+ result = recipe.run(input="<your-input>")
39
+ print(result)
40
+ ```
41
+
42
+ ## Requirements
43
+
44
+ ### Packages
45
+ - openai
46
+
47
+ ### Environment Variables
48
+ - OPENAI_API_KEY
49
+
50
+ ### External Tools
51
+ - None
52
+
53
+ ## Tags
54
+
55
+ `audio`, `voice`, `tts`, `cloning`
56
+
57
+ ## License
58
+
59
+ Apache-2.0
@@ -0,0 +1,31 @@
1
+ name: ai-voice-cloner
2
+ version: "1.0.0"
3
+ description: Clone voice from sample for TTS narration (CONSENT REQUIRED)
4
+ author: praison
5
+ license: Apache-2.0
6
+ tags:
7
+ - audio
8
+ - voice
9
+ - tts
10
+ - cloning
11
+
12
+ requires:
13
+ tools:
14
+ - llm_tool
15
+ packages:
16
+ - openai
17
+ env:
18
+ - OPENAI_API_KEY
19
+
20
+ cli:
21
+ command: praison recipes run ai-voice-cloner
22
+ examples:
23
+ - praison recipes run ai-voice-cloner <input>
24
+ - praison recipes run ai-voice-cloner <input> --output ./output/
25
+ - praison recipes run ai-voice-cloner <input> --dry-run
26
+
27
+ safety:
28
+ dry_run_default: true
29
+ overwrites_files: true
30
+ requires_consent: true
31
+ consent_message: "Voice cloning requires explicit consent from the voice owner."
@@ -0,0 +1,41 @@
1
+ name: ai-voiceover-generator
2
+ version: 1.0.0
3
+ description: Generate voice overs from text using TTS APIs
4
+ author: PraisonAI
5
+ tags:
6
+ - audio
7
+ - voice
8
+ - tts
9
+ - speech
10
+
11
+ config:
12
+ voice: alloy
13
+ model: tts-1
14
+ speed: 1.0
15
+ output_format: mp3
16
+
17
+ input:
18
+ type: object
19
+ properties:
20
+ text:
21
+ type: string
22
+ voice:
23
+ type: string
24
+
25
+ output:
26
+ type: object
27
+ properties:
28
+ audio_path:
29
+ type: string
30
+
31
+ requires:
32
+ env:
33
+ - OPENAI_API_KEY
34
+
35
+ workflow:
36
+ agents:
37
+ - name: voiceover_agent
38
+ role: Voice Over Generator
39
+ tools:
40
+ - generate_voiceover
41
+ - generate_speech