user.getRecentTracks endpoint every 30 seconds and
mirrors any new scrobble into your Rocksky timeline. Your existing Last.fm
setup keeps working unchanged.
Prerequisites
- A Rocksky account
- A Last.fm account that’s actively receiving scrobbles
- A Last.fm API key (free, instant — see below)
Setup
Create a Last.fm API account
Go to last.fm/api/account/create
and fill in the form. The “callback URL” and “application homepage” fields
can be anything — they aren’t used for read-only access.Copy the 32-character API key. You can ignore the shared secret —
user.getRecentTracks is a read-only endpoint and doesn’t need signed
requests.Open the Mirrors page
Sign in to Rocksky and open
rocksky.app/mirrors. Select the Last.fm
tab.
Enter your credentials
- Username — your Last.fm handle (the one in your profile URL,
e.g.
last.fm/user/<handle>). - Last.fm API key — the 32-character key from step 1.
What gets mirrored
- Completed scrobbles from
user.getRecentTracks, newest first. - Currently-playing tracks are skipped — Rocksky only mirrors plays that
have a
datetimestamp. - On first enable, a 24-hour backfill window is seeded so recent plays land too, not just future ones.
Dedup behaviour
Each candidate play is checked against your existing scrobbles within a ±120-second window. If you also scrobble to Rocksky directly (from Jellyfin, Navidrome, the browser extension, etc.), you won’t get duplicates — whichever arrives first wins.Rotating or removing the key
- Rotate — type a new API key into the field and save. The previous encrypted value is overwritten.
- Remove — clear the API key and save. The mirror source becomes unauthenticated and the worker exits.