Song Recs

open source
Song Recs preview
Mar 2026 - Mar 2026
TypeScriptNode.jsDiscordSpotifyPostgreSQLDockerdiscord.js

Discord music intelligence bot using Spotify audio feature vectors for cosine-similarity recommendations and Music DNA profiles

A TypeScript Discord bot that turns a server into a music ecosystem. Users import Spotify playlists and the bot stores 8 audio feature vectors (energy, danceability, valence, tempo, etc.) per track. A recommendation engine computes each user's taste vector and surfaces songs from others' playlists via cosine similarity and collaborative filtering. Commands surface Music DNA archetypes, music twins, taste distance scores, and a daily randomly-picked song.

Spotify-powered Discord music intelligence bot with cosine similarity recommendations. • Stack: TypeScript / Node.js 20+, discord.js v14, PostgreSQL via pg, Spotify Web API, node-cron, Docker Compose. • Data model: users, songs (with 8 audio features), playlists, taste_vectors (precomputed per user), user_similarity (pairwise cosine cache), daily_history. • Recommendation: Layer 1: content-based cosine similarity on taste vectors; Layer 2: collaborative filtering via users with similar vectors. • Music DNA: per-user archetype (Party Starter, Chill Wanderer, Indie Explorer, etc.) from energy, mood, danceability, acousticness averages; obscurity = 100 − average Spotify popularity. • Commands: /addplaylist, /recommend, /musicdna, /musictwin, /tastedistance, /compatibility, /discover, /tasteleaderboard, /tasteprofile. • Automation: daily-song cron job posts a random user's track to a configured channel.