An open-source native scrobbler for macOS and Windows (beta). Requires macOS 14.6 (Sonoma) and above or Windows 10 21H2 and above.
- Scrobble songs playing in Apple Music or Spotify on macOS, and Apple Music on Windows, to last.fm
- Update your last.fm now-playing status
- Queue unsuccessful scrobbles for retry
- See how many times you've scrobbled an artist or track
- Artist biographies, tags & similar artists
- Artist top albums & tracks
- Album artwork and links to last.fm
- Recent scrobbles
- All-time top artists, albums & tracks
- Friends' recent listening activity
- Love / unlove the currently playing track
- Tag the current song or artist on Last.fm from the macOS menu bar’s right-click menu; view your tags and community tags before applying up to 10 new tags
- Menu bar / taskbar access
- Optional Dock icon (macOS)
- Open on logon, with scrobbling initialized even when no window opens (macOS)
- System, Light, or Dark appearance and adjustable menu bar background opacity in Settings → General (macOS)
- In-app macOS updates with Sparkle: daily checks, verified downloads, installation and relaunch, plus optional automatic installation
Note
Windows support is in beta and is mostly unsupported due to macOS being the main development platform.
- macOS 14.6 (Sonoma) or above
- Apple silicon or Intel Mac (universal build means works for both, but mayyy not be supported forever!)
- Apple Music or Spotify for playback
- A last.fm account
- Windows 10 21H2 or above
- Apple Music for playback (works whether you're subscribed or not)
- A last.fm account
- Download
scrap-v1.2-universal.zipfrom Releases (or get it from the website that works too) - Extract the ZIP and drag
Scrap.appinto your Applications folder - Open scrap
- Open Apple Music and play something
- Allow scrap to access Music when macOS asks
- Click Connect last.fm, approve access in your browser, then return to scrap and click I've approved it
That's it. Keep scrap running while you listen.
To scrobble Spotify on Mac, enable it in Preferences → Services. Spotify is off by default so it does not duplicate an existing Spotify–Last.fm connection.
To scrobble [untitled] on Mac, enable it in Preferences → Services and allow scrap in System Settings → Privacy & Security → Accessibility when prompted. Scrap uses the [untitled] project name as the Last.fm album name. [untitled] is off by default.
Important
The current macOS build isn't signed (because it's kinda 200$ a year). If macOS blocks it, go to System Settings -> Privacy & Security -> Open Anyway after trying to open it.
Visit Apple Support for more info.
Starting with 1.4, Settings → Updates can download and install updates inside Scrap. Daily checks are enabled by default; automatic download and installation can be enabled there too. Earlier versions need one final manual update to get this feature.
Maintainers: see Preparing and publishing updates for the signed release and feed workflow.
You'll need Xcode 27 and your own last.fm API credentials.
- Clone the repo
- Create a
.envfile in the project root:
LASTFM_API_KEY=your_api_key
LASTFM_SHARED_SECRET=your_shared_secret- Open
scrap.xcodeprojin Xcode - Select the
scrapscheme and your Mac as the destination - Build and run
The build copies the last.fm app configuration into the app bundle. People using your build connect their own last.fm accounts.
You'll need a 64-bit Windows PC, the .NET 10 SDK, Apple Music for Windows, and your own last.fm API credentials. The Windows App SDK version lives on the windows-app-sdk branch.
In PowerShell, clone the repository and switch branches:
git clone https://github.com/swagdotsh/scrap.git
cd scrap
git switch windows-app-sdkIf dotnet --version does not show version 10, install the SDK with winget install Microsoft.DotNet.SDK.10, then open a new PowerShell window in the scrap folder. Create a .env file in that folder with:
LASTFM_API_KEY=your_api_key
LASTFM_SHARED_SECRET=your_shared_secretBuild, test, and publish the app:
dotnet build windows/Scrap/Scrap.csproj -p:Platform=x64
dotnet run --project windows/Scrap.Tests/Scrap.Tests.csproj
dotnet publish windows/Scrap/Scrap.csproj -c Release -p:Platform=x64 -o windows/publish
.\windows\publish\Scrap.exeIn Scrap, choose Connect Last.fm, approve access in your browser, then return to the app and choose I've approved it. Play a track in Apple Music to check playback detection. Closing the window leaves Scrap running in the notification area. Keep the entire windows/publish folder together if you move the app; this is an unpackaged build with no installer.
Caution
Keep .env gitignored. The macOS build includes its contents in the app bundle, and the Windows build copies it beside the executable. Don't put personal account credentials in it.
- Make sure you're playing something in an enabled app (Apple Music or Spotify)
- Check System Settings -> Privacy & Security -> Automation (macOS)
- Allow scrap to access Music (macOS)
- Make sure scrobbling isn't paused
- Keep scrap running while you listen
- Check your internet connection
- Use Retry pending if there are queued scrobbles
That's normal. You can access it from the music-note icon in the menu bar (or on Windows, the scrap icon on the right of the taskbar)
To fully close it, choose Quit scrap from the menu.
If you're building from source, check that .env contains both required values, then rebuild the app.
If you're having issues, open an issue. Include your operating system, scrap version, and what happened.
For Windows reports, mention that you're using the beta.
Contributions are welcome: bug fixes, platform improvements, docs, etc.
Suggested workflow:
- Fork the repo
- Create a feature branch
- Make changes
- Open a PR with a clear description and testing notes