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.
| Overview | Top Charts |
|---|---|
![]() |
![]() |
| Attachment Index | Attachment Moments Timeline |
|---|---|
![]() |
![]() |
| Streaks Timeline - Artists | Streaks Timeline - Albums |
|---|---|
![]() |
![]() |
git clone https://github.com/shsiddhant/memory.fm.git
cd memory.fm
pip install .
cd apps
uvicorn api.main:app --reload
cd apps/web
npm install
npm run dev
Then open:
- Import full listening history from Last.fm
- Incremental sync after initial import
- (Planned) Spotify import support
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.
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
Explore your favorites across time:
- Top artists, albums, and tracks
- Flexible time filters:
- Weekly / Monthly / Yearly
- Custom date ranges
Measure how concentrated your listening is within a time period.
- High attachment -> focused listening (few artists on repeat)
- Low attachment -> more exploratory listening
- Identify peaks in emotional or musical focus.
- Revisit phases where certain track, albums, or artists dominated your listening.
-
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.
- Time-of-day and seasonal patterns
- Last.fm imports
- Incremental sync after initial import
- Spotify imports
- Recent Activity and Summary
- Top Charts (Artists / Albums / Tracks)
- Rényi entropy
- Attachment Index
- Streaks
- Time of Day / Season based analysis
- Overview dashboard
- Activity heatmap
- Insights and visualization
- Attachment Index
- Streaks Timeline
- Streaks Cards
- Memory Attachments and Timeline integration
- Spotify wrapped but make it nerdier
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
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.
This project is licensed under the MIT License.
Thanks to Felix Hagemans (felhag) for creating lastfmstats, which inspired parts of this project.






