Skip to content

shsiddhant/memory.fm

Repository files navigation

memory.fm

Live

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 - Tracks Streaks - Albums
Streaks Timeline - Artists Streaks Timeline - Albums

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

Running Locally

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

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
    • Attachment Moments Timeline
    • Streaks Timeline
    • Streaks Cards

4. Ideas

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

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