You liked hundreds of songs. Spotify plays the same ones. Resurface finds the ones you've forgotten.
Free to use · Requires a Spotify account ·
🎵 Welcome to Resurface
Your forgotten songs, rediscovered.
You know that feeling when a song comes on and you think "oh wow, I haven't heard this in forever" — and it completely makes your day?
Resurface is built for that moment. Spotify tends to play the same songs over and over. The hundreds of songs you saved years ago? They're buried. Resurface finds them and puts them right at the top, sorted by how long it's been since you heard them.
The longer you haven't heard a song, the higher it rises. You earn points for listening. It's part music app, part game.
How it works alongside Spotify
Resurface doesn't replace Spotify — it works with it. When you tap Play on a song, it plays through your Spotify app. Resurface acts as a smart remote control, tracking what you listen to and keeping score. You'll always need Spotify open in the background.
On your phone vs. your computer
📱 On iPhone
Add Resurface to your home screen from Safari for the best experience. When you tap Play, Spotify opens automatically and starts the song. Switch back to Resurface and the mini player will connect. Everything works smoothly once Spotify is running.
💻 On a computer
Open Spotify on your computer first, then open Resurface in your browser. Tap Play on any song — Resurface will control Spotify directly. Keep both open side by side for the smoothest experience.
About logging in with Spotify
When you tap Login, Spotify will ask you to grant Resurface a few permissions. Here's exactly what they mean:
✓Read your Liked Songs — so Resurface knows which songs to surface ✓Read your recently played — to calculate how long since you heard each song ✓Control Spotify playback — so the Play button actually plays music ✓Create a private playlist — for the Forgotten Playlist offline download feature
Resurface never sees your Spotify password. It never shares your data. It only uses these permissions to make the app work.
The mini player
When a song is playing, a mini player appears at the top — just like Spotify's. It shows the song title, artist, and a progress bar. You can tap anywhere on the progress bar to skip to that point in the song. The mini player has two buttons:
Skip — moves to the next forgotten song. If you skip early (under 30% of the song), it doesn't count as heard and comes back tomorrow. Skip after 30% and it counts as a partial listen worth 3 points.
Pause / Resume — pauses or resumes the song in Spotify. If Resume doesn't work, open the Spotify app first and then tap Resume.
The buttons explained
Sync — quickly checks your recent Spotify listening history and updates your song scores. Use this if you've been listening in Spotify outside of Resurface. Note: Spotify only tracks your last 50 plays, so if you listened to more than 50 songs since your last Sync, only the 50 most recent will be updated — sync after every listening session to stay accurate.
Forgotten Playlist — creates a private playlist in your Spotify account containing your 100 most-forgotten songs. Open Spotify and download it for offline listening — perfect for road trips or flights. After a listening session, tap Sync first, then tap Forgotten Playlist to refresh it — songs you've heard will drop out and new forgotten songs slide in. Then let Spotify re-sync the download and you'll have a fresh batch ready.
Full Refresh — reloads your entire song library from Spotify. Use this if you've added or removed songs from your Liked Songs and want Resurface to reflect the changes. Takes about a minute.
Flip Sort — switches the song list between "longest unheard first" (the default — your most forgotten songs at the top) and "most recently heard first" (a different way to browse).
Re-login — if something stops working, tap this to refresh your Spotify connection. You won't lose any of your data.
Skip behavior
Full listen — song is marked as heard today and drops off the forgotten list Skip after 30% — counts as a partial listen, song is marked heard Skip before 30% — doesn't count, song comes back tomorrow
⚙️ Settings
Resurface configuration and feedback
🎵 Your Spotify Setup
Resurface uses your Spotify Developer Client ID to connect to your account. After you have upgraded to Spotify Premium and set up your own Spotify Developer app, enter your Client ID here.
Found a bug? Have a suggestion? Join the Resurface community on Discord to share feedback, report issues, or just talk music.
Community is brand new — your feedback directly shapes the app.
☁️ Restore from Cloud
If your song list looks wrong or out of date on this device, use this to restore your listening history from the cloud backup. Your local data will be replaced with the most recent cloud save.
ℹ️ About
Version:
Built by Doug Sparks
Hosted on Cloudflare Pages Resurface is not affiliated with Spotify AB.
💡 Tips & Tricks
Get the most out of Resurface.
⏱ Tip 1: Sync often — but not too often
Spotify's API only gives us your 50 most recent plays. If you listen to more than 50 songs without tapping Sync, the oldest ones won't get credit in Resurface. Heavy listeners can hit that cap in less than a day — so make it a habit to tap Sync after every listening session.
That said, tapping Sync repeatedly in a short period can trigger Spotify's rate limits. If the Sync button shows a countdown timer, Spotify has asked us to wait — the button will re-enable automatically when the coast is clear. No need to keep tapping it.
🎧 Tip 2: Refresh your Forgotten Playlist after every Sync
After syncing, tap Forgotten Playlist. This rebuilds your playlist of the 100 most-forgotten songs and saves it directly in your Spotify account. The playlist is date-stamped (like Resurface - 062801) — month, day, and build number — so you can always tell exactly how fresh it is. The playlist description also includes the exact time it was built, which helps confirm you're looking at the latest version.
Download the playlist in Spotify for offline listening. Perfect for road trips, flights, or anywhere without signal. After your next sync, refresh it again — songs you've heard drop out and new forgotten ones slide in.
🔄 Tip 3: Use Flip Sort to prove it's working
When you're just starting out, the song list can feel overwhelming — hundreds of songs with no obvious order. Flip Sort is your sanity check.
Play a song, tap Sync, then tap Flip Sort. That song should appear right at the top under "most recently heard." That's Resurface recognizing you listened to it. It's a simple way to confirm everything is connected and working correctly.
🔁 Tip 4: Sync vs Full Refresh — know the difference
Sync is your everyday button. It updates your recent listening history and automatically picks up any new songs you've liked in Spotify since your last sync. Fast — use it all the time.
Full Refresh re-imports your entire Liked Songs library from scratch. It's slower (a minute or two for large libraries) but useful if something seems out of sync or your song counts look off. You shouldn't need it often.
🔆 Tip 5: DD — Duplicate Detection
Every song row has a DD button — short for Duplicate Detection. Spotify sometimes has multiple versions of the same song in its catalog (the original, a remaster, a live version, a tribute cover) and you might have liked more than one without realizing it.
Tap DD on any song to see if Resurface finds a duplicate in your library. If it does, you can choose: Hide this one — removes it from your list so only one version appears Keep both — marks them as intentionally different and stops asking
You can always change your mind — tap DD again to see the current status and switch.
🔍 Tip 6: RD — Replacement Discovery
The RD button stands for Replacement Discovery. If a song seems stuck at the top of your list even though you've listened to it — or if Spotify keeps playing a slightly different version — tap RD to search for the right version.
RD searches Spotify for alternative versions of the song: remasters, live recordings, different album releases. You can preview each candidate and swap it in with one tap. Your listening history carries over to the new version automatically.
🕵 Tip 7: Don't worry about Lost Songs — we handle them
Sometimes Spotify quietly removes songs from its catalog — possibly due to licensing or label decisions. Resurface flags these as Lost Songs and keeps track of them separately so they don't clutter your main list.
For each lost song, you have two options: Search for a replacement — we search Spotify by song title and artist. You get to preview candidates and pick the best match. Your listening history is preserved. Remove from Spotify — if the song is truly gone and there's no good replacement, remove it from your Liked Songs entirely with one tap.
📻 Tip 8: The radio station trick
Once you've been using Resurface for a while, try this: find your longest-forgotten song at the top of the list, open it in Spotify, and start a radio station from it. Spotify will queue up dozens of similar songs — and many of them will probably be other songs you already like but haven't played in years.
It's a great way to surface a whole batch of forgotten music at once. Just remember to come back and tap Sync afterward so Resurface can give you credit for everything you heard.
☁️ Tip 9: The Firebase indicator — 🟢 vs ☠️
In the stats bar at the top of the app you'll see Firebase: 🟢 or Firebase: ☠️. This tells you whether Resurface can reach its cloud backup service.
🟢 — Everything is connected. Your listening history is being backed up and synced across devices. ☠️ — Cloud sync is blocked. This usually means an ad blocker is preventing Resurface from connecting. A banner will appear with step-by-step instructions to fix it — usually just disabling your ad blocker for this site, which takes one click.
ℹ️ A note about the Now Playing bar
The Now Playing bar at the top of Resurface only appears when you start a song from within Resurface by tapping Play. If you start a song directly in the Spotify app, Resurface won't show it in the Now Playing bar — that's expected behavior, not a bug.
Your listening still counts! Just tap Sync after your session and Resurface will pick up everything you heard via Spotify's recent plays history.
A note from the developer: Resurface is an independent app, not affiliated with Spotify. It's currently in early access, which means you'll need to do a quick one-time setup with a free Spotify Developer account to use it. It's a few extra steps, but it's worth it — and the setup guide walks you through every click.
🎵
Set up Resurface
Resurface connects to your Spotify account through Spotify's free developer program. This is a one-time setup that takes about 5 minutes.
Step 1 of 3
Create a free Spotify Developer app
Open the Spotify Developer Dashboard with the button below and log in with your Spotify account.
Click Create app.
Fill in the form top to bottom:
App description — anything you like, such as "Rediscovering my Liked Songs".
App name — anything you like; "Resurface" works great.
When asked for an app type, choose Web API.
Save the app. You'll come straight back to it in Step 2 to add the callback URL, and again in Step 3 to copy your Client ID.
Why this is needed: Resurface is an independent app, so it connects to Spotify through a developer app that belongs to you. You also need an active Spotify Premium account — Spotify requires the owner of a developer app to have Premium, so the app you're about to create won't work at all without it, and it stops working if your Premium ever lapses. (Premium is separately what Spotify requires for playback control.)
In your new Spotify app's settings, find Redirect URIs and add this URL exactly as shown. Then click Save.
https://resurface-cmf.pages.dev/callback
Step 3 of 3
Enter your Client ID
Back in your Spotify app's settings, copy the Client ID — it's a 32-character code. Paste it below, then tap the button to log in.
Resurface is not affiliated with Spotify AB. Your Spotify password is never shared with Resurface.
🔧 Admin test mode active
🔴Console Errors0▲
Recent errors (newest first)
🎵 Did Spotify play a different version?
Spotify recently played by .
Is this the same song as by in your library?
⚠️ Your Spotify session has expired.
Resurface lost its connection to Spotify — your listening data is safe. Please re-login to continue.
⏳ Spotify needs a breather
You've hit Spotify's request limit. For light use this clears in minutes — but after heavy use it can take up to 24 hours. It will always clear on its own. Don't retry; each attempt resets the timer.
⚠️ Spotify connection issue detected. The app may be working with stale data. If your Forgotten Playlist doesn't appear in Spotify, wait a few minutes and try again.
🔇 Spotify isn't playing Resurface can't find an open Spotify player on this computer. Open Spotify and press play on any song so it wakes up, then come back here and press Play again.
☁️ Cloud backup temporarily unavailable
Your listening data is saved on this device, but couldn't sync to the cloud just now. Your data is safe — other devices may not see the latest changes until the next successful sync. This is usually a temporary network issue and resolves on its own.
🚫 Resurface can't connect to the cloud
An ad blocker (like uBlock Origin) is blocking the services Resurface needs to sync your listening history across devices. Without this, your data can't be backed up or kept in sync — and your song list may be wrong.
To fix this, allow these two domains in your ad blocker: apis.google.com firestore.googleapis.com
In uBlock Origin: click the uBlock icon in your browser toolbar → click the blue power button to disable it for this site → reload the page.
This only affects Resurface. Your ad blocker will keep working everywhere else.
🎵 Resurface
Library: - songs
Forgotten: - songs
Last synced: -
Firebase: ⏳
0:000:00
Nothing playing yet - click Play on any song
TEST MODE
Forgotten Songs
Sorted by longest unheard first
🕑 Why do some songs say thousands of days?
Resurface can only see what you've played since you started using it. Until a
song gets played through Resurface, it counts from the day it was added to your
library — so music you haven't touched in years shows a very large number. That's the
point: those are your forgotten songs.
Want to prove it's working? Play any song, then press
Flip Sort to sort by most recently heard. It jumps to
the top showing “Heard today.”
📂 Start with a Full Refresh
Resurface hasn't loaded your music yet. Full Refresh
imports your Spotify Liked Songs and is the one thing you need to run first —
it takes about a minute.
Sync is for later: it updates your listening scores, but it has
nothing to update until your library is imported.
Lost Songs
Songs that Spotify has removed from its catalog. Your listening history is preserved.
Tap "Search for replacement" to find a remaster, re-release, or alternative version on Spotify.
Artist Playlist
Create a Spotify playlist from all your liked songs by a specific artist.
Did you mean one of these?
Open Spotify to find your playlist.
Mass Like
Search Spotify's full catalog for an artist and add all their tracks to your Liked Songs at once.
Note: Prolific artists may have hundreds of albums. Each search uses significant Spotify API quota — limit to about 5 Mass Like searches per session to avoid hitting your daily limit.
API calls used today: 0 / ~700
Multiple artists found — which one?
Not sure which to pick?Search CacheAlbum CrawlFull Auto Crawl
Loading tracks…
This search has used Spotify API calls so far
(artist search, album listing, and checking what you already like).
The like operation will use more.
Total: .
Saving…
Admin Panel
🧪 Test Mode
Shows a console error monitor in the corner of the app — any unhandled errors will appear as a visible banner so you can catch them without keeping the console open.
Test mode is sticky and stays on until you turn it off here.
👤 New User Mode
Simulates the first-time user experience. Use this to test onboarding flows without creating a new Spotify account.
New User Mode is sticky and stays on until you exit it from the new user screen.
ℹ️ Admin Info
Your Spotify User ID (copy this to add future admins to Firebase):
Resurface
🔴 Error Log
Most recent 50 unhandled errors across all sessions. Only visible to admins.