Inspiration
Music can completely change how a film scene feels. But finding the right track is often much harder than simply finding something that sounds good.
A filmmaker might find a perfect song for a scene, only to discover later that it is too expensive, unavailable in their territory, doesn't have the required sync rights, or can't be used commercially.
That felt like a real pain point worth solving.
Most of the focus in AI music tools is on generating or recommending music based on creativity. I wanted to look at the other side of the problem: What if the music recommendation also considered the practical constraints from the beginning?
That idea led to SyncAgent.
What it does
SyncAgent helps filmmakers find music candidates that fit a scene while checking them against configured pre-clearance requirements.
A filmmaker describes a scene in natural language and provides constraints such as budget, territory, and intended use. SyncAgent analyzes the scene, searches the music catalog, checks the candidates against deterministic rights rules, and ranks the tracks that pass.
The workflow is:
Filmmaker scene description
↓
Gemini scene analysis
↓
Structured creative requirements
↓
ClickHouse catalog search
↓## Inspiration
Music can completely change how a film scene feels. But finding the right track is often much harder than simply finding something that sounds good.
A filmmaker might find a perfect song for a scene, only to discover later that it is too expensive, unavailable in their territory, doesn't have the required sync rights, or can't be used commercially.
That felt like a real pain point worth solving.
Most of the focus in AI music tools is on **generating or recommending music based on creativity**. I wanted to look at the other side of the problem: *What if the music recommendation also considered the practical constraints from the beginning?*
That idea led to **SyncAgent**.
---
## What it does
SyncAgent helps filmmakers find music candidates that fit a scene while checking them against configured pre-clearance requirements.
A filmmaker describes a scene in natural language and provides constraints such as budget, territory, and intended use. SyncAgent analyzes the scene, searches the music catalog, checks the candidates against deterministic rights rules, and ranks the tracks that pass.
The workflow is:
```text
Filmmaker scene description
↓
Gemini scene analysis
↓
Structured creative requirements
↓
ClickHouse catalog search
↓
Deterministic rights validation
↓
Creative compatibility ranking
↓
Recommendations + rejection explanations
Gemini handles the creative understanding of the scene, while the rights checks are deterministic rather than asking an LLM to make legal decisions.
The result shows both the tracks that passed and the candidates that were rejected, along with the reason for rejection. This makes the recommendations easier to understand instead of simply returning a list of songs.
How I Built It
- Backend: Built with Python and FastAPI, using the Google GenAI / ADK framework for orchestrating the agent workflow.
- AI & Intelligence: Gemini via Vertex AI handles scene breakdown, emotional valence, and structured parameter extraction.
- Catalog & Storage: ClickHouse serves as the high-performance music catalog database for fast attribute and metadata filtering.
- Frontend: A React / Vite application designed around a focused cinematic interface: input scene details, set parameters, and inspect ranked/rejected tracks.
- Deployment: Hosted on Google Cloud Run with frontend and backend decoupling.
What I Learned
- LLMs for nuance, deterministic code for law: For creative tasks like interpreting cinematic mood or narrative pacing, an LLM excels. But for binary constraints like territory boundaries, maximum budgets, and synchronization clearance scopes, pure deterministic code is significantly more reliable, audit-friendly, and predictable.
- Cloud production builds: Handled cross-origin resource sharing (CORS), bake-in client environment variables at Vite build time, and service-to-service routing across decoupled Cloud Run instances.
Challenges
- Decoupled deployment pipeline: Reconciling dynamic environment configuration between decoupled Cloud Run services where Vite client bundles require production backend URLs during build time rather than runtime.
- Maintaining clear legal boundaries: Carefully scoping the tool so users don't mistake an algorithmic pre-screening for binding legal clearance. SyncAgent operates strictly as a pre-clearance triage system, not a definitive rights guarantor.
What's Next
- Direct video timeline upload with multimodal scene and tempo detection.
- Integration with live rights-holder and CMO/PRO licensing databases.
- Automated dynamic clearance inquiry generation and licensing platform APIs.
Disclaimer: SyncAgent is a pre-clearance workflow assistant, not a legal clearance system. Final licensing must always be verified with the relevant rights holder. Deterministic rights validation ↓ Creative compatibility ranking ↓ Recommendations + rejection explanations
Built With
- clickhouse
- docker
- fastapi
- gemini
- google-adk
- google-cloud
- google-cloud-run
- python
- react
- tailwind-css
- typescript
- vertex-ai
- vite
Log in or sign up for Devpost to join the conversation.