Skip to content

shsiddhant/memory.fm

Repository files navigation

memory.fm

Python Version from PEP 621 TOML FastAPI React GitHub Actions Workflow Status LICENSE: MIT

music meets memory

memory.fm is a web application for exploring music listening history from Last.fm and Spotify.

Instead of focusing only on aggregate stats, it surfaces long-term and local patterns such as attachment, repetition, and obsessive listening, to help you revisit periods of your life through music.

Preview

Overview Top Charts
User Overview Dashboard User Overview Dashboard
Attachment Index Attachment Moments Timeline
Attachment Index Attachment Moments Timeline
Streaks Timeline - Artists Streaks Timeline - Albums
Streaks Timeline - Artists Streaks Timeline - Albums

Quick Start

Clone and install

git clone https://github.com/shsiddhant/memory.fm.git
cd memory.fm
pip install .

Run backend

cd apps
uvicorn api.main:app --reload

Run frontend

cd apps/web
npm install
npm run dev

Then open:

http://localhost:5173

Features

Data Import & Sync

  • Import full listening history from Last.fm
  • Incremental sync after initial import
  • (Planned) Spotify import support

Behavioral Analytics

memory.fm focuses on listening behavior modeling instead of summary stats.

It surfaces patterns like:

  • Attachment: how strongly you gravitate toward specific artists or tracks
  • Repetition: how often you return to the same music
  • Obsessive listening: short bursts of intense focus

These patterns help you rediscover periods of your life through music.

Overview

A high-level snapshot of your listening history:

  • Key summary statistics
  • Activity heatmap (when you listened most)
  • Quick preview of top artists, albums, and tracks

User Overview Dashboard

Top Charts

Explore your favorites across time:

  • Top artists, albums, and tracks
  • Flexible time filters:
    • Weekly / Monthly / Yearly
    • Custom date ranges

User Top Charts

Attachment

Measure how concentrated your listening is within a time period.

  • High attachment -> focused listening (few artists on repeat)
  • Low attachment -> more exploratory listening

Attachment Index

Timeline of Attachment Moments

  • Identify peaks in emotional or musical focus.
  • Revisit phases where certain track, albums, or artists dominated your listening.

Attachment Timeline

Streaks

  • Detect periods of intense, repeated listening to a single artist, album, or track. Streaks often correspond to emotionally significant moments or phases.

  • With Streaks Timeline, you can view an interactive, color-coded timeline of your listening streaks.

Streaks Timeline

Coming Soon

  • Time-of-day and seasonal patterns

Roadmap

1. Data Imports

  • Last.fm imports
  • Incremental sync after initial import
  • Spotify imports

2. Core Analytics Engine

  • Recent Activity and Summary
  • Top Charts (Artists / Albums / Tracks)
  • Rényi entropy
  • Attachment Index
  • Streaks
  • Time of Day / Season based analysis

3. Front-end (React)

  • Overview dashboard
  • Activity heatmap
  • Insights and visualization
    • Attachment Index
    • Streaks Timeline
    • Streaks Cards

4. Ideas

  • Memory Attachments and Timeline integration
  • Spotify wrapped but make it nerdier

Vision

An earlier experimental version (v0.8.5) of memory.fm explored deeper behavioral analytics and more experimental visualizations.

You can check out a demo at: https://memoryfm-demo.streamlit.app/

It introduced early versions of:

  • Attachment Index (listening concentration over time)
  • Streaks (intensity bursts in listening behavior)
  • Streaks Timeline (color coded timeline of streaks across years)

The current rewrite is an architectural rebuild, focusing on:

  • Stable import pipeline (Last.fm + future Spotify support) using SQLAlchemy.
  • Modern FastAPI back-end and web UI (React)
  • Extensible analytics layer

Contributing

Contributions are welcome, especially in visualizations and front-end improvements.

If you find a bug or have a feature request, please open an issue using the appropriate template in the issue tracker.

See CONTRIBUTING.md for setup details.

License

This project is licensed under the MIT License.

Acknowledgements

Thanks to Felix Hagemans (felhag) for creating lastfmstats, which inspired parts of this project.

About

memory.fm is a web application for exploring music listening history from Last.fm and Spotify.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors