-
Notifications
You must be signed in to change notification settings - Fork 1
FAQ
Quick answers to common questions about foo_mac_scrobble.
It's a native macOS component for foobar2000 that automatically tracks (scrobbles) the music you play to your Last.fm profile. It features offline queueing, native preferences UI, and seamless integration with the Last.fm API.
Yes! Released under the MIT License. View the source code on GitHub.
- macOS 12 (Monterey) or later
- foobar2000 for macOS v2.0 or later
- A Last.fm account (free)
- Last.fm API credentials (free, from Last.fm)
No, this is macOS-specific. It uses native Cocoa frameworks and the macOS-specific foobar2000 SDK. For Windows, use the official foo_scrobble component.
- Visit https://www.last.fm/api/account/create
- Fill out the API account form
- You'll receive an API Key and API Secret
- Enter both in the component's preferences
These credentials are required for the component to communicate with Last.fm.
No. Once you've completed the authentication flow and see "Authenticated as: yourusername" in preferences, you can close your browser. The session persists across restarts.
No. The component supports one Last.fm account at a time. To switch accounts:
- Clear your session:
rm ~/Library/foobar2000-v2/lastfm_session.json - Restart foobar2000
- Authenticate with the new account
A track is scrobbled when:
- You've listened to at least 50% of the track (configurable)
- OR at least 30 seconds (Last.fm minimum requirement)
- The track has artist and title metadata
The default threshold is 50%, but you can adjust it in preferences.
If you skip before reaching the threshold, the track won't be scrobbled. This prevents partial listens from cluttering your Last.fm history.
Yes, but not in the same playback session. Each time you play a track from the beginning and reach the threshold, it's scrobbled again with a new timestamp.
Tracks are queued locally in a JSON file:
~/Library/foobar2000-v2/lastfm_scrobble_queue.json
When you reconnect to the internet, the queue is automatically processed and tracks are submitted to Last.fm.
Every 30 seconds. If you have pending tracks and you're online, they'll be submitted within 30-60 seconds.
Yes, open the queue file:
cat ~/Library/foobar2000-v2/lastfm_scrobble_queue.jsonOr enable debug logging and check the Console:
Last.fm: Queue initialized, X tracks loaded from disk
This is expected behavior. Last.fm redirects to a non-existent callback URL, which causes the error. Simply:
- Copy the full URL from your browser
- Paste it into the dialog in foobar2000
- Press OK
The component extracts the authentication token from the URL.
Indefinitely, unless:
- You explicitly log out or re-authenticate
- You revoke access on Last.fm website
- Last.fm invalidates the session (rare)
Sessions are stored in:
~/Library/foobar2000-v2/lastfm_session.json
Yes, it's stored in plain text in the session file:
cat ~/Library/foobar2000-v2/lastfm_session.jsonSecurity note: This file contains your session key. Don't share it publicly, as it grants access to your Last.fm account.
Delete the session file and restart foobar2000:
rm ~/Library/foobar2000-v2/lastfm_session.jsonThe component only collects data necessary for scrobbling:
- Track metadata (artist, title, album, etc.)
- Playback timestamps
- Your Last.fm username (for display in preferences)
No personal data is collected or shared beyond what's required by the Last.fm API.
Locally on your Mac:
- Session:
~/Library/foobar2000-v2/lastfm_session.json - Queue:
~/Library/foobar2000-v2/lastfm_scrobble_queue.json - Preferences:
~/Library/foobar2000-v2/config.sqlite
Nothing is sent anywhere except Last.fm.
Your API Secret is stored in foobar2000's preferences system. It's not encrypted, but it's only accessible to:
- You (file owner)
- foobar2000 (reading preferences)
Keep your ~/Library folder secure with macOS user account permissions.
That depends on your Last.fm privacy settings:
- Go to https://www.last.fm/settings/privacy
- Configure who can see your recent tracks
The component itself doesn't control visibility—Last.fm does.
Not yet. Currently, the component only supports scrobbling.
Yes! The component updates your "Now Playing" status on Last.fm when you start playing a track. This happens immediately when playback begins, before the track reaches the scrobble threshold. Your Last.fm profile will show what you're currently listening to in real-time.
Only if you're playing the streams through foobar2000. The component monitors foobar2000's playback, regardless of the source (local files, streams, etc.).
No, only Last.fm is supported. The component uses Last.fm's API exclusively.
Yes. The component batches requests (up to 50 tracks) and implements proper retry logic to avoid hitting rate limits.
See the comprehensive Troubleshooting Guide. Quick checks:
- Verify you're authenticated
- Enable debug logging
- Check the Console for errors
- Ensure you have internet connectivity
Possible causes:
- Component not installed correctly
- Incompatible macOS version (requires 12+)
- foobar2000 version too old (requires v2.0+)
See Installation Guide for detailed steps.
- Open Preferences → Tools → Last.fm Scrobbler
- Check "Enable Debug Logging"
- Open View → Console to see output
Using:
- C++ for core logic
- Objective-C++ for macOS UI
- foobar2000 SDK for integration
- Last.fm API for scrobbling
- Xcode for building
See Technical Overview for architecture details.
Absolutely! See the Contributing Guide for guidelines. Pull requests, bug reports, and feature requests are all welcome.
Yes, transparently. This project is developed collaboratively with AI assistance to balance rapid prototyping and engineering quality.
https://github.com/avelytchko/foo_mac_scrobble
| Feature | foo_mac_scrobble | Last.fm Desktop App |
|---|---|---|
| foobar2000 integration | ✅ Native | ❌ External |
| Offline queueing | ✅ Yes | ✅ Yes |
| macOS native UI | ✅ Yes | ✅ Yes |
| Open source | ✅ Yes | ❌ No |
| Requires foobar2000 | ✅ Yes | ❌ No |
This is the macOS equivalent of the Windows foo_scrobble component, with:
- Native macOS Cocoa UI
- Compiled for Apple Silicon + Intel
- Uses macOS-specific APIs
Functionally similar, but platform-specific implementations.
Last.fm's authentication flow expects a callback URL, but foobar2000 plugins can't easily register URL handlers. The URL-paste method is a workaround that:
- Works reliably across macOS versions
- Doesn't require system-level URL handler registration
- Is simple and user-verifiable
Yes! In preferences, adjust the "Scrobble after listening to" slider. Valid range: 1% to 100%.
Recommended: 50% (Last.fm's recommendation)
Yes. The component is a Universal Binary (arm64 + x86_64) and works natively on both Apple Silicon and Intel Macs.
Theoretically unlimited, but practically:
- Each track: ~200 bytes
- 1000 tracks: ~200 KB
- 10,000 tracks: ~2 MB
If your queue grows to 1000+ tracks, consider checking your network connection.
You can, but be careful:
- Use valid JSON syntax
- Include required fields:
artist,track,timestamp - Restart foobar2000 for changes to take effect
If the JSON is invalid, the component will log an error and start with an empty queue.
See Changelog in the wiki, or view releases on GitHub.
- Download the latest release
- Remove the old component via Preferences → Components
- Install the new component
- Restart foobar2000
Your session and queue are preserved during updates.
- Check the Troubleshooting Guide
- Browse the Wiki Home for all documentation
- Report bugs via GitHub Issues