RbxMusic: A plugin to search Roblox's APM catalog

RbxMusic

A plugin to search Roblox’s APM catalog!

Roblox supposedly has “hundreds of thousands” of songs from APM. However, there’s no way to find them given the search tools provided. This plugin aims at solving this problem by categorizing all the songs and helping developers search through the music.

Currently the plugin has about 372,000 songs.

Screenshot of the plugin:

111 Likes

Nice but I think this is for #resources:community-resources

5 Likes

Community Resources is for freemium / open-source, so Cool Creations or Asset Marketplace is the way to go here.

9 Likes

Ah okay thanks for the correction

3 Likes

oh my God, I was just thinking about making something like this for the same reason!

3 Likes

Cool plugin, definitely worth the Robux.
Looking forward to see the updates.

1 Like

Really cool! I was looking for a plugin like this, that’s why I just bought it!

Just when I thought I found the right types of words to use to find certain types of music!

Thanks for the plugin! Pretty good price for its effectiveness.

Pretty neat idea! However, it should be noted that a lot of songs don’t show up in this plugin currently. Do you have any estimate on how long it will take for the majority of the audio to be accessible by this plugin?

1 Like

I’m still working on migrating my resources to AWS to speed it up and automate everything. The biggest problem is that the MarketplaceService throttles requests, so I can only make 100 requests per minute. I have to scan through millions of IDs. I’m going to try to parallelize the process on AWS to speed it up a bit.

I will have a rough estimate once I know the min/max ID range properly & how many EC2 instances I can reasonably run on AWS to split up the task.


For anyone curious, the collection process is quite straightforward:

  1. Loop through a range of possible IDs
  2. Send a request to the Marketplace API for each ID
  3. Check if the asset is audio (AssetTypeId == 3), and if the creator is Roblox (Creator.Id == 1)
  4. Parse the info for the song & store it
  5. Yield for the required time to meet the throttling limits

The hardest part of the process is running this in parallel. The reason this is complicated is due to the nature of splitting up the ID ranges per instance/thread/EC2 & dealing with failures. I have to create a “master” lambda that keeps a reference to the ranges being handed out, and each range needs to be marked with state (e.g. “Not scanned”, “Scanning”, “Done”, “Error”). So it’s becoming quite a large infrastructure project, but it’s kinda fun. (I’m over-complicating this quite a bit because it’s also serving as self-training for my job which is primarily AWS focused.)

11 Likes

Collection update:

My collection process is almost in full use, but I’m still finishing up a couple pieces on it. It will take roughly 9 days to collect everything. Again, this is due to the throttle limit.

After the collection process is done, I have to somehow parse all that information out and throw it into the plugin. This will be a big challenge, considering the number of songs will increase over 10x. For all I know, the JSON parser won’t work with that much data! I don’t know.

So, roughly speaking, I’ll have the remaining 100k+ songs in about a month.

1 Like

This looks like it’ll be worth the purchase, I’m buying this right now. Using the finnicky search algorithm on the website is a pain as it is but being able to get into the grit of APM tracks exclusively is equally as painful. Having access to a dedicated tool to searching such tracks, including extra options such as to preview tracks and all topped off with a lovely UI, already tell me that this will be money well spent.

Love ya CM32, always out there making the coolest stuff.

3 Likes

Shiny, although I wish I could search all the non-Roblox sounds. Sigh.

Collection update:

IDs scanned 9,000,000
IDs left to scan 5,000,000
Songs collected 271,202
Days left ~ 4
AWS Cost ~ $10

I’ve been surprised that I haven’t hit any snags yet. A full week of smooth running so far! Kudos to Python for running smoothly & the Roblox API for staying up without any interruptions.

6 Likes

this man, is a REAL man

we will never forget him as “Creator of Terra Novus”

god bless you ^w^

1 Like

Thank you so much for this! I tend to use it a lot, and I found some good sauce to use.
For game developers who want their mouths to water, search “Drama” in the category “Album”

Collection update 2020:

The collection process has completed. It has found 371,576 songs!

So…now the real challenge starts: How do I migrate 300k entries of song metadata into a Roblox plugin and still allow real-time searching? I hope to have some free time this week to work on this.

5 Likes

This is so cool and handy, thank you for creating it. I’ve bought the plugin!

1 Like

More music!

As of posting this, RbxMusic now has nearly 372,000 songs available! This has been a month-long journey of insanity to hack together a usable search feature for all the APM music.

Thanks to everyone for the support and feedback. I will continue to keep this plugin updated.

Some features I still want to add:

  • Ability to right-click on genre/library/etc. and search by that value
  • Multi-filter ability (e.g. filter by a selection of libraries and/or albums)
  • Importable script that can be used to play the music in your game
  • Track favorite songs
5 Likes

I’ve noticed that you can search music using APM Music’s official website, and it’s pretty decent.

I’ve been using it to find music that I need, and then searching their titles in the catalog to find their asset IDs.

Is it possible you can pull data from there?

https://www.apmmusic.com/