Forgotten Songs
Sorted by longest unheard first
Your forgotten songs, rediscovered.
You liked hundreds of songs. Spotify plays the same ones.
Resurface finds the ones you've forgotten.
Free to use Β· Requires a Spotify account Β·
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.
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 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.
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.
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.
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.
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
Resurface configuration and feedback
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.
Don't have a Client ID? Create a free Spotify Developer app β add https://resurface-cmf.pages.dev/callback.html as a Redirect URI.
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.
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.
Version:
Built by Doug Sparks
Hosted on Cloudflare Pages
Resurface is not affiliated with Spotify AB.
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.
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
First, make sure you have an active Spotify Premium account β Resurface requires Premium to control playback. Then go to the Spotify Developer Dashboard and create a new app. The app name and description can be anything β "Resurface" works great. When asked for an app type, choose Web API.
Open Spotify Developer Dashboard βStep 2 of 3
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.html
Step 3 of 3
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
Sorted by longest unheard first
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.
π§ͺ 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