Skip to content
swagdotshPublic

About

Native last.fm scrobbler for macOS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

21 Commits

Folders and files

Repository files navigation

image

scrap

An open-source native scrobbler for macOS and Windows (beta). Requires macOS 14.6 (Sonoma) and above or Windows 10 21H2 and above.


GitHub Issues GitHub Repo stars GitHub repo size GitHub top language

scrap website

Features

Scrobbling

  • 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

Listening & discovery

  • 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

Your last.fm account

  • 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

Desktop controls

  • 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.

Requirements

macOS

  • 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 (beta)

  • Windows 10 21H2 or above
  • Apple Music for playback (works whether you're subscribed or not)
  • A last.fm account

Setting Up

macOS

  1. Download scrap-v1.2-universal.zip from Releases (or get it from the website that works too)
  2. Extract the ZIP and drag Scrap.app into your Applications folder
  3. Open scrap
  4. Open Apple Music and play something
  5. Allow scrap to access Music when macOS asks
  6. 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.


macOS updates

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.

Building from Source

macOS

You'll need Xcode 27 and your own last.fm API credentials.

  1. Clone the repo
  2. Create a .env file in the project root:
LASTFM_API_KEY=your_api_key
LASTFM_SHARED_SECRET=your_shared_secret
  1. Open scrap.xcodeproj in Xcode
  2. Select the scrap scheme and your Mac as the destination
  3. 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.

Windows (beta)

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-sdk

If 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_secret

Build, 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.exe

In 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.


Common Issues

Nothing playing

  • 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)

Connected, but songs aren't scrobbling

  • Make sure scrobbling isn't paused
  • Keep scrap running while you listen
  • Check your internet connection
  • Use Retry pending if there are queued scrobbles

Closed the window, but scrap is still running

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.

last.fm app credentials are missing

If you're building from source, check that .env contains both required values, then rebuild the app.

Support

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.

Contributing

Contributions are welcome: bug fixes, platform improvements, docs, etc.

Suggested workflow:

  1. Fork the repo
  2. Create a feature branch
  3. Make changes
  4. Open a PR with a clear description and testing notes

About

Native last.fm scrobbler for macOS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Contributors

Languages