Problem
I'm a computer science student, and I edit videos in my free time. My personal drive is filled with reference clips, videos and other files.
Often, I wonder what songs are being used in videos and want to find them later. But holding my phone to the speakers and trying to Shazam a song before the voiceover comes on is quite time consuming. Plus, I don't like uploading my project files to some random website just to identify a song.
Solution
So I built SonIQ (pronounced sonic). It's a local macOS app that runs entirely on your device. You drop a video in, it extracts the audio, generates a fingerprint, and matches it. The files never leave your Mac, and you can export the found tracks straight to your Spotify or YouTube playlists.
How I came up with the name
Here's the thought process behind the branding and logo:
Stack
- Tauri 2 + Rust + Objective-C
- React + Vite + TypeScript + Vanilla CSS + Framer Motion
- FFmpeg + Chromaprint
- AcoustID + MusicBrainz
- Spotify API
Building SonIQ
SonIQ was built for the OpenAI Build Challenge using Codex and GPT-5.6 models.
I ain't gonna lie, this was my first ever experience with Rust. It was a lot easier since I have a technical background in development and knew exactly what I wanted to build. So I had GPT-5.6 Terra write the audio extraction pipeline. Figuring out the exact FFmpeg flags for downmixing audio usually takes a lot of trial and error with the docs, but the output I got was beyond my expectations.
I used GPT-5.6 Terra for the hard parts of Tauri. Audio fingerprinting is heavy, and my first try completely froze the UI. GPT-5.6 Terra walked me through fixing it by moving the extraction to a background thread in Rust so the app stayed responsive. It also helped me out when I was building the macOS .dmg. Packaging external binaries in Tauri is confusing, but GPT-5.6 Terra gave me the exact config I needed so the app wouldn't instantly crash when someone else tried to run it.
Models Used In The Project
I also used the Gemini 3.1 Pro model as well, due to running out of credits for the GPT-5.6 model. It's a great model, but it couldn't keep up with the performance and quality output compared to the GPT-5.6 models.
- GPT-5.6 Luna (Extra High)
- GPT-5.6 Terra (Extra High, Ultra)
- Gemini 3.1 Pro
My Takeaways
Overall, it was a give and take process. I gotta say the GPT-5.6 models are powerful and hold a lot of potential. It's all in how you use it and the output you receive is pretty crazy. It was a great experience building SonIQ, and I hope you enjoy using it.
With this challenge, I've learned a lot about building desktop applications and project orchestration and documentation.
Built With
- ffmpeg
- framer-motion
- objective-c
- react
- rust
- spotify
- tauri
- typescript
- vite
Log in or sign up for Devpost to join the conversation.