All work

KTT2 Song Finder.

Finds song mentions in KTT2 Music conversations and turns reviewed Spotify matches into private playlists.

Role
Creator & full-stack engineer
When
2026
Built with
React, TypeScript, Express, SQLite, Spotify API, OpenAI API

KTT2 Song Finder is a local web app for turning music recommendations in KTT2 threads into a private Spotify playlist. A scan reads recent conversations and presents candidate tracks for review.

  • Scans recent music threads
  • Rules first, optional AI for informal mentions
  • Review before Spotify playlist export

How it works.

  1. Read KTT2

    A paced crawler reads recent KTT2 Music threads and stores resumable scans in SQLite.

  2. Extract songs

    Spotify links and artist–title patterns come first, with an optional OpenAI fallback.

  3. Review & export

    Uncertain Spotify matches wait for review before export to a private playlist.

The challenge

Recommendations in discussion threads are easy to miss and hard to collect. Song names appear in different formats, and a fuzzy Spotify result should not silently become a playlist track.

What I did

I built a crawler for recent threads and replies, removed quoted text, extracted explicit Spotify links and artist-title patterns, and used an optional OpenAI fallback for less structured mentions. Clear matches can be accepted automatically; uncertain results remain reviewable before export.

Under the hood

A React and TypeScript frontend talks to an Express API. SQLite stores scans, posts, mentions, and resumable jobs. The worker handles collection, extraction, and Spotify matching in stages; Spotify OAuth is used to create a private playlist after review. The app runs locally and needs user-provided Spotify credentials.

Where it landed

The local workflow can scan conversations, preserve partial results when a stage fails, and turn selected matches into a private playlist. It identifies itself to the source site, limits request frequency, and stops on access challenges.