Work  /  VinylFlow

Thirty minutes a record, times a few hundred records.

VinylFlow turns half an hour of manual audio work into about three minutes. Open source, shipped, and running on other people's machines.

Client Own product
Engagement Product design, build and launch
Year 2026 · Live
Disciplines Python · FastAPI · Audio DSP · Desktop · Open source
The VinylFlow homepage: the headline Digitize vinyl 10x faster on a dark background, with Install VinylFlow and View on GitHub buttons.
The product homepage at vinylflow.app.
01 / The problem

Ten steps of manual work, repeated once per album, forever.

Digitising vinyl by hand is a chore that scales badly.

Recording a record to a digital file is easy. Everything after that is not. Record in Audacity, find the track boundaries by eye, split, export each track, look up the release, type in the metadata, find the cover art, embed it, rename everything into vinyl numbering.

That's 20–30 minutes per album. Across a few hundred records, it's a weekend project that never ends.

20–30
minutes per album, by hand
~3
minutes per album with VinylFlow
10×
the throughput, same result
02 / The approach

Automate the mechanical steps. Keep a human on the judgement calls.

Detect, match, tag. And an editor for when detection is wrong.

The pipeline finds track boundaries by silence detection, matches the recording against Discogs for metadata and artwork, then writes tagged, correctly numbered files out the other end.

Detection is right most of the time, and mixed records have no gaps to find, so it can't always be. VinylFlow ships a duration-based fallback and a waveform editor where you drag the track boundaries yourself. Automation does the boring 90 per cent; you handle the rest.

Distribution got the same treatment. Asking people to install Python loses most of them, so it ships three ways: packaged desktop apps, a Docker image for self-hosting, and plain Python for people who want it.

Upload your recording, let it detect the tracks, pick the album from Discogs, and hit process. Done. VinylFlow README
03 / What was built

A real product: installed, documented and supported.

The build

  • Audio pipeline in Python. Silence detection for track boundaries, duration-based splitting as fallback, output to FLAC, MP3 320 or AIFF.
  • Discogs integration. Visual release search with artwork, metadata and track listings. Tagging becomes a click.
  • Waveform editor for correcting track boundaries by hand.
  • Proper vinyl numbering (A1, A2, B1, B2), with cover art downloaded and embedded automatically.
  • Batch queue with live progress over WebSockets. A stack of records processes unattended.
  • FastAPI backend with a browser UI, so you can drive it from a phone at the turntable.
  • Packaged desktop apps via PyInstaller and pywebview, with a PySide6 fallback for Windows machines without WebView2.
  • Docker image for self-hosting, and setup docs for all three install paths.
  • A test suite covering the pipeline, tagging, boundaries, session state and audio endpoints.
04 / The outcome

Shipped, and in use by strangers.

Live, open source, in other people's hands.

VinylFlow launched publicly in 2026 and is live at vinylflow.app, with the source on GitHub. About 90 commits took it from first prototype to a packaged, documented, cross-platform release.

The problem it was built for is solved. A record goes from turntable to tagged files in about three minutes.

~90
commits from prototype to release
3
install paths: desktop, Docker, Python
7
test modules covering the pipeline

Got something to build?

Start a conversation