Last.fm × Bluesky

Your listening history,
beautifully forged.

Pull your scrobbles. Craft a digest. Post a thread. ScrobbleForge turns raw listening data into polished, shareable weekly stories — automatically.

Last.fm API
Bluesky AT Protocol
Streamlit App
Auto-Scheduler
Python + pandas
Capabilities

Everything in one place.

From raw scrobble data to a polished Bluesky thread — ScrobbleForge handles the whole pipeline.

Last.fm Sync

Pulls your full scrobble history via the Last.fm API. Weekly and monthly windows. Top artists, tracks, albums, and total listening hours — all live.

Post Style Designer

Toggle emojis and play counts, choose sections (artists / tracks / albums), write a custom intro, set hashtags, and control how many entries appear. Your digest, your voice.

Bluesky Thread Publisher

One-click posting to Bluesky via the AT Protocol. ScrobbleForge builds a proper threaded reply chain — header post, artists, tracks, albums — not a wall of text.

Auto-Scheduler

Pick a day of the week and hour. ScrobbleForge runs a background thread that wakes up at the exact moment and posts without you lifting a finger. Start and stop any time.

Filters & Focus

Filter your digest by album, genre tag, or track keyword before generating. Drill into a specific release or era without changing your scrobble history.

Listening Insights

Unique artists and tracks, most active day, average scrobbles per day, and estimated listening hours. At-a-glance stats that put your period in context.

Pipeline

How it works.

1
Last.fm API
Connect & Pull
Enter your Last.fm username. ScrobbleForge fetches your scrobbles for the chosen period in real time.
2
pandas
Analyse & Rank
Raw play data is aggregated into ranked top artists, tracks, and albums. Filters applied if set.
3
Post Designer
Style & Preview
Customise the thread layout: emojis, counts, sections, intro text. Preview each post in the sidebar before sending.
4
AT Protocol
Post to Bluesky
The digest is sent as a proper reply chain on Bluesky. Or schedule it and let ScrobbleForge handle it every week.
Installation

Up and running in minutes.

ScrobbleForge is a local Python app. No server required — runs entirely on your machine.

1

Clone the repository

Get the source from GitHub and enter the project directory.

2

Install dependencies

One command installs Streamlit, pandas, and the API clients.

3

Configure your keys

Add your Last.fm API key and Bluesky credentials to .env.

LASTFM_API_KEY BSKY_HANDLE BSKY_PASSWORD
4

Launch the app

Run streamlit run app.py — the app opens in your browser at localhost:8501.

bash
# 1. Clone
git clone https://github.com/canayter/scrobbleforge
cd scrobbleforge
# 2. Install
pip install -r requirements.txt
# 3. Configure
cp .env.example .env
# Edit .env with your API keys
# 4. Run
streamlit run app.py
You can now view ScrobbleForge in your browser.
Local URL: http://localhost:8501