Inspiration
As a student, it is often a struggle to find the right playlist while studying. Hence, I wanted to build a tool that actually understands your current room/environment/vibe.
What it does
Vibify captures your real-world environment through photos, local weather, or color, and uses Gemini to curate a soundtrack perfectly matched to your current vibe.
How we built it
I built the frontend with Streamlit and the backend logic using Python and Gemini-3.5-flash model. Instead of typing text prompts, users can give the AI real-world context: a photo of their room, a specific color, or live weather data from Open-Meteo. Gemini processes this and returns a formatted JSON object which contains a mood summary, a custom UI color palette, and track metadata. It will then pull the album cover from iTunes and stream the full audio directly from YouTube.
Challenges we ran into
API Quota Limits: I initially integrated the YouTube Data API to fetch playable audio, but there was a daily quota limit. I instead wrote a regex script that gets the raw HTML of YouTube search results to extract the video IDs, bypassing the API entirely.
Weather Data: There were several edge cases to consider when handling location data, such as user typos or identically named cities in different countries. To address this, I chained two APIs together: first using the Open-Meteo Geocoding API to strictly validate the city name and extract the exact region, then passing that cleaned data to wttr.in to fetch the actual meteorological conditions. I also built custom error handling because the weather service would occasionally crash or return raw HTML instead of the expected data format.
Accomplishments that we're proud of
Successfully bypassing the YouTube API limits by using a regex scraper to extract full audio links from raw HTML.
What we learned
I learned how to make the AI control the UI and logic of the app instead of just acting like a chatbot. I also learned how to validate and geocode location data before passing it to secondary APIs.
What's next for Vibify
I plan on adding additional features such as adding time of day, calendar events, or microphone audio to capture the room's energy levels/vibe.
Log in or sign up for Devpost to join the conversation.