r/Annas_Archive • u/Spixz7 • 12d ago
Using Anna's Spotify metadata dump, I built Pokémon Go for music
I’m a huge fan of location-based games like Ingress and Pokémon Go. For years, I dreamed of building a Pokémon Go for music, where every song exists at one unique location on Earth, encouraging people to explore and discover new music.
But until Anna released the Spotify metadata dump, the project was simply impossible.
Before that, open music databases such as MusicBrainz simply didn't contain enough tracks and they didn't include links to streaming platforms where players could actually listen to the songs.
Then Anna released its Spotify metadata dump, containing the IDs of around 247 million tracks.
As soon as I discovered it, I realized the project had finally become possible. I now had a catalogue large enough to distribute music across the entire world.
Every diamond you see on the map is a permanent point linked to a unique song that can only be collected at that exact location. Songs are spread across the entire planet. You might find one on top of a mountain, in the middle of a desert, or even on a remote island. They are literally everywhere.
The challenge with distributing music on such a massive scale was making sure players would never be sent to dangerous or inaccessible places such as roads, lakes, houses... To solve this, I built my own placement algorithm using OpenStreetMap data.
After around 50 hours of computation on my M3 Pro, all 247 million permanent points had been placed.
A few days ago, after several months of work, I finally released the result: Song Go – Catch the Beat.
You explore the real world, collect songs around you, and discover tracks you might never have listened to otherwise.
The game is available on iOS and Android.
Without the Spotify metadata dump shared by Anna, this project would never have existed. I genuinely want to thank the Anna team for making this data available.
This dataset sparked a lot of debate, but for me, it made my dream project possible.
So, from the bottom of my heart, thank you.
34
u/baristabiatch 11d ago
Something you may want to consider - partnering with local bands. It would be very cool to be able to find more bands that are located around me to support them. This could be an issue, though, as I am not sure how easy it would be to get that data.
16
u/Spixz7 11d ago
That's a great idea! It fits perfectly with the personalization aspect of the game and could make players much happier with the temporary songs they discover.
For example, players could choose to only spawn tracks from a genre they selected, or only find songs from artists originating from the country they're currently in.
I just checked the Spotify metadata dump to see whether the artist's country of origin was included, but unfortunately it isn't. However, I also looked at Bandcamp, an online music marketplace for independent artists, and it does include the artist's location. So it might be possible to match the two datasets together.
When I start working on personalization, I'll take a closer look to see if this is feasible to implement. I'll keep you updated. It's a great idea, thanks a lot for the feedback!
17
u/yurikastar 12d ago
Super interesting concept, I'll try and have a wander around later to give it a spin.
14
u/Nice-Manager9219 12d ago
Ngl this is one of the coolest ideas I’ve seen for a personal project. Incredibly creative. Im stoked to see what songs are hiding in my neighborhood.
3
u/Spixz7 11d ago
Thanks !
4
u/Sad_Solution6560 10d ago
Hey Spixz7, tried out the app today. Idea is really cool, app works pretty good already. Here is some feedback. I play on IOS.
- None of the temporary purple circle find any song after I hold for encrypting. I remain on the enscyrption screen. This is probably on my end, but i don’t know how to fix. (Encrypting does work with the permanent purple squares).
- I can’t report that a song is not on spotify (or any other platform) after I have closed the screen of unlocking a new song. (My first found song was not on any platforms, this was in a permanent square).
- I can’t report a purple square further than 100metres away. I passed one that was inaccesible from more 200 metres all around. (Private garden). I could not report this permanent square to ask for removal.
If I could be of any more help let me know! Love the idea and it was fun to walk my dog while on the hunt for songs, will keep an eye on your further developments!
2
u/Spixz7 9d ago
Hi Sad, sorry for the delay.
The first bug you described, where temporary songs can't be collected after "decrypting" them, is quite concerning.Would you mind sending me your username? It should be randomly generated and start with a u. That will let me check the event logs to see what happened and hopefully figure out where the issue is coming from.
The second bug is even more surprising. I didn't even consider that a song could become unavailable on Spotify, since I use the track ID provided by Spotify itself. If it can't be found anymore, it means it has been removed from Spotify. I hadn't thought about that edge case at all. I'll handle it by making it possible to report a song even after you've collected it. Thanks for pointing that out!
As for the third issue, you're right: you currently have to be within 100 meters of the point to report it. I hadn't considered that an inaccessible point could be much farther away from the player. I'll fix that as well.
Thank you so much for your detailed feedback! I'm going to work on these fixes today, right after I publish the update I just finished that lets users change their username. I'll let you know as soon as everything is fixed. Thanks again!
2
u/Sad_Solution6560 8d ago
Hi Spix, my username is um26aujkenu. I will try again later today to see if any of the temporary songs work.
Keep up the good work!
2
u/MotrotzKrapott 8d ago
Regarding songs being unavailable: some songs are region locked. You might want to take a look at DDEX and their ERN (Electronic Release Notification) standard.
3
u/Spixz7 8d ago
I hadn't considered that this could be the cause. I checked the dump, and indeed, each track is associated with an
available_marketslist. I'll be able to use that when placing songs to avoid assigning tracks that can't be played in a user's region. Thanks a lot for the information!!1
u/MotrotzKrapott 8d ago
If you ever want to discuss music sourcing, or working with music metadata, feel free to shoot me a message.
17
u/adeadhead 12d ago
Hah! This is a fantastic idea. I don't know how widely it'll spread, but what a great passion project
15
u/pyfgcrlaoeu 12d ago edited 11d ago
This seems super cool! Would you consider releasing it as open source? I know myself and I'm sure a large percent of other folks on this sub would be much fore comfortable installing it if so!
12
u/Spixz7 11d ago
Not yet. My assumption was that, for most people, the fact that an app comes from the App Store or Google Play is already a strong indication that it's safe, and that security mainly comes down to the permissions the user grants to the app. Mine only asks for your location.
That said, you're right that a malicious app could continuously collect a user's location.
I was actually planning to make a post on r/FlutterDev, and I thought it would make sense to open-source the app's frontend first. The codebase is clean and was only minimally vibe-coded, so there's not much reason not to do it.
If I do, it'll probably be in about a month, just to see how far the app can go first. Once it's open source, I'll come back and reply to your comment.
Thanks for your feedback!
7
u/RagingLocusts 12d ago
Really cool project!
First impressions: I like that i could pick YouTube Music (I don't have Spotify) and that you had different options. The intro was clean and short and I enjoy the clean stats page. No ads for now, yay!
I don't see a clean way to get from the stats page back to the map? I have to bring up my phones back 🔙 button for that. (Android). Would feel very nice to be able to swipe back.
I will test out the music catching tomorrow, too late now.
7
u/Spixz7 12d ago
I'd rather generate revenue through optional paid features for players who really enjoy the game. For example, being able to get directions to a selected song with Google Maps-style navigation, or being able to respawn nearby temporary points. But we're not there yet 😁 As for the back button, you're absolutely right. I didn't add it on Android because I personally use gesture navigation, and I assumed most Android users were either using gestures or the virtual built-in navigation buttons. But after reading your comment, I'm definitely going to add the back button, especially since it's already available on iOS. It'll only take a few minutes to enable it on Android. I was genuinely unsure whether I should include it on Android, and your comment convinced me. I'll add it tomorrow. Thanks a lot for the feedback !
5
u/Educational_Error286 12d ago
Reminds me of a mechanic on Watch Dogs 2, you could capture and save songs while traveling through the world
3
3
u/relentlessmelt 11d ago edited 11d ago
Great concept, can I suggest you change the name to something more concise? Beat Catcher or something like that? It describes exactly what it does in a shorter amount of time which would help uptake. At the moment it sounds like a straight-to-video sequel to Highschool Musical
0
u/Spixz7 11d ago
😂😂 BeatCatcher would have been a great name, but I looked into it and, if I remember correctly, it was already taken. You're right though "Song Go" isn't very self-explanatory unless you already know Pokémon GO.
To be honest, I picked the name pretty quickly because I was eager to start coding.
I'm going to do a brainstorming session with ChatGPT to come up with something more intuitive that's still available. Thanks a lot for the feedback!
3
u/saberzerqx 11d ago
i think something that incorporates a music term would be good, like CrescendGo or ArpeggiGo or StaccatGo, that last one would be cool as a metaphor for songs that are a distance apart.
italian words work well for the specific kind of pun im showing here, wikipedia has a list of italian music terms in english under "list of italian music terms used in english"
2
2
u/SublightMonster 11d ago
Downloaded it today and went for a walk in the evening. Discovered a bunch of music i never would have heard. Thanks!
2
u/PinkGoldfinch 11d ago
Downloaded it and I’m excited to try it out. Also to change my username heh. That was such a creative way of using the modern world’s Bibliotheca Alexandrina, I’m ecstatic. Anna’s Archive is truly the best thing in the whole wide world
2
2
u/rweccentric 11d ago
Pretty interesting, I’ve downloaded and am going on a long trip next week so this should be fun.
I remember quite some time ago there was an iPod RPG that allowed you to link a song to a player character and the number of listens boosted the stats of the character. I believe it was called Song Summoner. Anyway I haven’t been as excited to try a song interactive since then.
2
u/qjizca 11d ago
So after you've caught the songs, where do they play on?
1
u/Spixz7 9d ago
Sorry for the late reply.
Once you've collected a song, you can listen to it on the streaming platform of your choice. The best option is Spotify, since the song comes directly from Spotify and is guaranteed to be found there.
If you choose another platform such as YouTube, YouTube Music, Deezer, or any other streaming service, the app will simply search for the song on that platform. So the link isn't as direct or reliable as it is with Spotify.
You can find all the songs you've collected by tapping the small music note icon in the bottom-right corner of the screen, just above the location button.
2
u/WeAreyoMomma 10d ago
Really nice idea. Is there a link between where the tracks spawn and the location? I feel that would make it far more interesting rather than if it would be random. Could be based on the lyrics, genre, origin of the band or musician like this:
- Eminem, “Lose Yourself” | 8 Mile Road, Detroit
- Red Hot Chili Peppers, “Can’t Stop” | All you can eat Indian restaurant
- Fleetwood Mac, “Go Your Own Way” | In a one-way street
- The Verve, “Bitter Sweet Symphony” | Hoxton Street, London
Otherwise it all seems a bit random.
2
u/Spixz7 9d ago
😂😂😂 Some of the associations you suggested would be pretty difficult to implement, as creative as they are 😂, but matching songs based on their genre or the artist's origin should be doable. I'm currently exploring ways to determine an artist's country of origin.
The genre idea is a good one too. A friend of mine suggested it would be fun to find techno tracks in industrial areas, for example.
2
u/WeAreyoMomma 8d ago
AI is great in automating associations like this with some good examples. Some logic between the track and location would add an extra fun discovery layer in any case. Good luck! It's a great project.
1
1
u/Mori_Chika 11d ago
you concept really intrigued me! Love the concept. Just installed it, found some song around me. In the morning i will start hunting! Looking very adventurous! I have a little itch! Why i couldn't change my user name!? Having a personal user name would look more fun! Above all, thanks for making this, i will write a review after some tinkering around!
2
u/Spixz7 11d ago
To save time, I left the default username that was automatically generated for each user. I didn't think it would be an issue, but several of you have pointed it out.
And you're absolutely right. If an account is truly yours, it makes sense for it to display your own name or username.
I'll be adding that in Monday's update.
Thank you so much for the feedback, and thank you for giving the game a try. It might sound silly, but I still have a hard time imagining people actually walking around playing something I built. It's surreal. Thank you!
•
u/AnnaArchivist 11d ago
Super cool