All work
Featured case study

Music Fetch

A local-first music recognition tool for noisy web video, playlists, and local files — one engine behind a CLI, an HTTP API, a TUI, and a native macOS app.

PythonSwiftUIyt-dlpffmpeg

Music Fetch answers one question — what is this track? — for messy inputs: web video, playlists, and local media files. The same engine is exposed four ways, so it fits however I happen to be working.

What it does

  • music-fetch analyze for direct command-line analysis of a URL or a local file.
  • music-fetch serve for a small local HTTP API.
  • music-fetch tui for an interactive terminal UI.
  • A native Music Fetch.app SwiftUI interface for macOS.

How it works

It's built for macOS first and leans on ffmpeg and yt-dlp, so ingestion follows whatever sites yt-dlp supports. Recognition is local-first and free-first: unofficial Shazam matching and local fingerprinting come first, with hosted services (AudD, ACRCloud) only as an optional fallback when you supply credentials. Vocal/instrumental separation is available to clean up noisy audio before matching.

It's the only one of my projects that's fully public — the code is on GitHub.