setup.sh 依赖 nvm 安装 Node.js 22.8.0,环境不满足时可能失败;运行前需编辑 .env 填入 API key 等配置;默认后端 127.0.0.1:8000、前端 127.0.0.1:8080,端口可能被占用
git clone https://github.com/video-db/Director.git
cd Director
./setup.sh
make runREADME 未说明显存或 GPU 要求,仅要求 Python 3.9+、Node.js 22.8.0+ 和 npm,支持 Mac、Linux、Windows(WSL)
基于 VideoDB 的视频 Agent 框架,用自然语言编排搜索、剪辑、生成等复杂视频任务
用自然语言驱动视频处理与编辑的 AI Agent 框架,把搜索、RAG、文生视频等能力串成可编排的工作流。
核心能力
- 内置 20+ 可定制的视频 Agent,覆盖摘要、剪辑、配音、翻译
- Reasoning Engine 按上下文动态调度多个 Agent 协作
- 支持接入 LLM、数据库和 GenAI API 扩展能力
- 提供带视频播放的聊天式交互界面
- 基于 VideoDB 的 video-as-data 基础设施做索引与流式输出
容易踩的坑
- Firstv0.1.1最新正式版2024-12-03 · 2024-12-03 11:42 UTC
What's Changed
- Add agents and config endpoint by @ashish-spext in https://github.com/video-db/Director/pull/1
- Ankit/add agents by @ankit-v2-3 in https://github.com/video-db/Director/pull/2
- fix: prompt clip by @ankit-v2-3 in https://github.com/video-db/Director/pull/3
- cleanup fe by @0xrohitgarg in https://github.com/video-db/Director/pull/4
- bump videodb-chat by @0xrohitgarg in https://github.com/video-db/Director/pull/5
- Agents: Add stream video agent, minor update in sample agent. by @ashish-spext in https://github.com/video-db/Director/pull/6
- API: Add session delete endpoint. by @ashish-spext in https://github.com/video-db/Director/pull/8
- Ankit/add documentation by @ankit-v2-3 in https://github.com/video-db/Director/pull/9
- Added name parm for upload by @codeAshu in https://github.com/video-db/Director/pull/10
- bump videodb-chat to 0.0.5 & add keyboard shortcut by @0xrohitgarg in https://github.com/video-db/Director/pull/11
- Ankit/refactor by @ankit-v2-3 in https://github.com/video-db/Director/pull/7
- feat: add search data and shot data by @ankit-v2-3 in https://github.com/video-db/Director/pull/13
- activate nvm on run, and dont set installed nvm as default in setup by @0xrohitgarg in https://github.com/video-db/Director/pull/12
- Ashu/fix readme by @codeAshu in https://github.com/video-db/Director/pull/16
- improved readme for docs by @codeAshu in https://github.com/video-db/Director/pull/17
- Ankit/add documentation by @ankit-v2-3 in https://github.com/video-db/Director/pull/15
- build: upgrade videodb by @ankit-v2-3 in https://github.com/video-db/Director/pull/20
- Summarize reasoning engine response and misc by @ashish-spext in https://github.com/video-db/Director/pull/19
- Slack agent to send message to slack by @codeAshu in https://github.com/video-db/Director/pull/21
- Ankit/add documentation by @ankit-v2-3 in https://github.com/video-db/Director/pull/18
- Ankit/add claude by @ankit-v2-3 in https://github.com/video-db/Director/pull/22
- subtitle agent with VideoDB Timeline & OpenAI translation by @0xrohitgarg in https://github.com/video-db/Director/pull/14
- Add missing llm in slack_agent by @ashish-spext in https://github.com/video-db/Director/pull/23
- Name change by @ashish-spext in https://github.com/video-db/Director/pull/24
- Rename backend project name by @ashish-spext in https://github.com/video-db/Director/pull/25
- Fix location of director's dir by @ashish-spext in https://github.com/video-db/Director/pull/26
- update logo by @0xrohitgarg in https://github.com/video-db/Director/pull/28
- Final Cut message and status update by @ashish-spext in https://github.com/video-db/Director/pull/29
- Fix RE Final Response by @ashish-spext in https://github.com/video-db/Director/pull/31
- fix: handle llm error, bump videodb chat by @ankit-v2-3 in https://github.com/video-db/Director/pull/32
- Ashu/fix readme by @codeAshu in https://github.com/video-db/Director/pull/33
- Ankit/add issue template by @ankit-v2-3 in https://github.com/video-db/Director/pull/34
- Update README.md by @codeAshu in https://github.com/video-db/Director/pull/38
- Add actions for doc deployment and setup, README.md update etc. by @ashish-spext in https://github.com/video-db/Director/pull/39
- Minor update README.md by @ashish-spext in https://github.com/video-db/Director/pull/41
- Ankit/fix config check by @ankit-v2-3 in https://github.com/video-db/Director/pull/44
- Add local upload support and improve playlist exception by @ashish-spext in https://github.com/video-db/Director/pull/46
- Update README.md with Railway URL and minor spacing by @ashish-spext in https://github.com/video-db/Director/pull/47
- ProfanityRemoverAgent: Improve prompt and fix status bug by @ashish-spext in https://github.com/video-db/Director/pull/48
- Improve Frontend Makefile run command and Backend setup by @0xrohitgarg in https://github.com/video-db/Director/pull/50
- 54 add vision and multimodal search capab
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
🧐 What is The Director?
Think of Director as ChatGPT for videos. It is a framework to build video agents that can reason through complex video tasks like search, editing, compilation, generation etc & instantly stream the results.
For example, a simple natural language command like: Upload this video and send the highlights to my Slack, sets everything in motion - Director’s reasoning will orchestrate the different agents intelligently to complete the task for you.
Built on top of VideoDB’s ‘video-as-data’ infrastructure, Director enables you to:
- Summarize videos in seconds.
- Search for specific moments.
- Create clips instantly.
- Integrate top GenAI projects and APIs and create and edit content instantly.
- Add overlays, extract frames, and much more.
Built with flexibility in mind, Director is perfect for developers, creators, and teams looking to harness AI to simplify media workflows and unlock new possibilities. 📺 Watch: Intro video
https://github.com/user-attachments/assets/33e0e7b4-9eb2-4a26-8274-f96c2c1c3a48
⭐️ Key Features
🤖 20+ pre-built video agents that you can customize to
- Summarize videos in seconds.
- Generate full movies with voiceovers from a script.
- Search and index your media library.
- Organize and clip your content effortlessly.
- Dub and edit your audio and video with ease.
- Translate and add subtitle in any language.
- ....and a whole lot more >>
🎨 A New Way to Interact
Experience a sleek, chat-based interface with built-in video playback and intuitive controls. It’s like having a personal assistant for your media.
🥣 A mixing bowl of your GenAI APIs
Connect seamlessly with powerful AI tools like LLMs, databases, and GenAI APIs, while VideoDB ensures your video infrastructure is reliable and scalable for cloud storage, indexing and streaming your content effortlessly.
🧩 Customizable and Flexible
Easily add new agents and tools to your workflow. Whether you want to run it locally or on your cloud, The Director adapts to your needs.
😎 Agent Examples
⚙️ Architecture Overview
Director's architecture brings together:
-
Backend Reasoning Engine: Handles workflows and decision-making. Checkout the backend folder in director codebase.
-
Chat-Based UI: Engage with your media library conversationally. Check videodb-chat for the source code.
-
Video Player: Advanced playback and interaction tools. Check videodb-player for the details about the multi platform video player.
-
Collection View: Organize and browse your media effortlessly.
🧠 Reasoning Engine
At the heart of The Director is its Reasoning Engine, a powerful core that drives intelligent decision-making and dynamic workflows. It acts as the brain behind the agents, enabling them to process commands, interact with data, and deliver meaningful outputs.
How It Works
- Contextual Understanding: The engine analyzes user inputs and maintains context, ensuring smooth and coherent interactions with agents.
- Dynamic Agent Orchestration: Based on the user’s needs, it identifies and activates the right agents to complete tasks efficiently.
- Modular Processing: Tasks are broken into smaller steps, allowing agents to collaborate and deliver accurate results in real time.
Key Capabilities
- Multi-Agent Coordination: Seamlessly integrates multiple agents to handle complex workflows, such as summarizing, editing, and searching videos.
- Real-Time Updates: Provides live progress and feedback as tasks are being completed.
- Extensible Design: Easily adaptable to include custom logic or connect to external APIs for more advanced capabilities.
See It in Action
The Reasoning Engine works in tandem with the chat-based UI, making video interaction intuitive and efficient. For example:
- Input: "Create a clip of the funniest scene in this video and share it on Slack."
- Output: The engine orchestrates upload, scene detection, clipping, and sharing agents to deliver results seamlessly. Watch the video here
For a closer look, check out the detailed architecture diagram below:
🏃 Getting Started
Prerequisites
- Python 3.9 or higher
- Node.js 22.8.0 or higher
- npm
Installation
1. Clone the repository:
git clone https://github.com/video-db/Director.git
cd Director
2. Run the setup script:
./setup.sh
This script will:
- Install Node.js 22.8.0 using nvm
- Install Python and pip
- Set up virtual environments for both frontend and backend.
3. Configure the environment variables:
Edit the .env files to add your API keys and other configuration options.
Supported platforms:
- Mac
- Linux
- Windows (WSL)
💬 Running the Application
To start both the backend and frontend servers:
make run
-
Backend:
http://127.0.0.1:8000 -
Frontend:
http://127.0.0.1:8080
For specific tasks:
-
Backend only:
make run-be -
Frontend only:
make run-fe
📘 Creating a New Agent
Checkout hosted documentation at https://docs.director.videodb.io
To create a new agent in Director, follow these steps:
-
Copy the template: Duplicate
sample_agent.pyinDirector/backend/director/agents/and rename it. -
Update class details:
- Rename the class.
- Update
agent_nameanddescription
-
Implement logic:
- Update parameters and
docstring - Implement your agent's logic
- Update the run() method.
- Update parameters and
-
Handle output and status updates:
- Use appropriate content types (TextContent, VideoContent, ImageContent, SearchResultContent)
- Update
self.output_message.actionsfor progress indicators - Use
push_update()to emit progress events - Set content status (progress, success, error) and messages
-
Implement error handling:
- Set error status and messages if issues occur
-
Finalize the response:
- Call
self.output_message.publish()to emit final state and persist session - Return an
AgentResponsewith result, message, and data
- Call
-
Register the agent:
- Import your new agent class in
Director/backend/director/handler.py - Add it to the
self.agentslist inChatHandler
- Import your new agent class in
Remember to consider creating reusable tools if your agent's functionality could be shared across multiple agents.
📖 Documentation
Checkout hosted documentation at https://docs.director.videodb.io
Serve Locally
To serve the documentation on port 9000:
source backend/venv/bin/activate
make install-be
mkdocs serve -a localhost:9000
To build the documentation:
mkdocs build
🤝 Contributing
We welcome integrations from projects that can make video workflows easy and increase capabilities of the projects. Please check issues and discussions for details.
Any contributions you make are greatly appreciated. Here's the process:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request