
From a song to 3 films to watch, with their streaming availability.
Festival Scope is an online platform where audiences watch festival films and organisers build online festivals or virtual cinemas. We built Music2Watch: an engine that analyses the lyrics of a Spotify track, finds the films that echo it, checks where to watch them and ranks them by relevance.
A song and a film can relate in two ways: literally (the track is on the soundtrack) or through theme and mood (same story, same feeling). A good recommendation has to cover both.
And a recommendation is only valuable if the viewer can actually watch the film.
Each request chains song understanding, film discovery, availability checking and ranking. Everything is traced with Langfuse to monitor quality and cost.
Spotify search (title or ID), lyrics found via the Genius API (search) then extracted with Firecrawl, audio features via ReccoBeats (valence, energy…) and consolidated metadata from TheAudioDB and MusicBrainz.
An LLM analyses the lyrics and produces thematic queries (plot and “vibe”). Films come directly from the LLM and from a web search (Google or DuckDuckGo) filtered by the LLM, with a confidence score. Details are enriched through TMDB.
Films are looked up on JustWatch to check availability. Final ranking uses cosine similarity between lyrics and synopsis embeddings (text-embedding-3-small), or an LLM reranker depending on configuration. The top 3 are returned.
FastAPI API (song search, recommendations, availability, reranking) with rate limiting (10 requests/min, 100/day), Next.js interface and Streamlit demo, Langfuse tracing and a test script running on songs whose films are known.
OpenAI LLMs for analysis and ranking, music and film APIs for the data, and FastAPI to expose it all.