forum

Song extractor

posted
Total Posts
37
Topic Starter
EnanoFurtivo

Current version: 3.0 (complete recode)

Hello to anyone reading this, i hope you are having a nice day!! :D

Shortest possible description for this app is, this app just copies osu! mp3's songs into a folder

A bit more detailed description

  1. This app is meant to allow you, to listen to your music from your osu! installation, within a standard media player app ex. VLC, Groove, and even on your phone!! Via copying the audio files within a map into a folder of your choice.


Some of the key features

  1. You can select to export a collection made in osu!, or your complete library if you wish to!
  2. It can fix mp3 tags, and also it can export your songs with the same background you see in osu!, so you dont have to see something like this in your media player:




Some features no one really cares about

  1. It is portable (As long as you have .NET installed, wich you probably have anyways).
  2. It is lightweight.
  3. And there really isn't much more to it really.


Some final developer notes

  1. I'm currently studying for a computer systems degree, so expect no more than that out of this program, although i think i've done a pretty good job at rewriting this app from scratch.
  2. I'm completely open for suggestions, although it might take a while for me to try to implement them or even check them, depending on if i have uni work to do or not.
  3. I do take this project as a learning experience, since i haven't really had any object oriented programing yet. So any objective critics or advice is hugely appreciated (code wise).





The way it works is very simple, here is the explanation

SPOILER
  1. You will be prompted with this screen on first start up, all you have to do now is select your folder where osu! is installed on, and the folder where your exported songs will be copied.


  2. After that all you have left to do is select the mode you want to export as (Collection or complete library) and hit export! That's it, it really is that simple.

  3. Now you could fiddle arround with the extra configurations, although I recommend to just leave them the way they are by default, more info on these in "Information about extra options".

Some notes about the internal management of the program

Exporting complete library
Since you could add 100 difficulties of the same mapset in a single collection, when extracting the complete library, only the last difficulty will be chosen for the extract, unfortunately there is no way arround this. What you should do instead, is make for example a music collection in osu, and save only the difficulties you want to extract per mapset (they can be more than one)!!


Exporting a collection
When extracting a collection the program will export all difficulties per mapset in that collection, not only the last one!! This is done this way because there could be mapsets with difficulties that have different audio files. Be careful with saving entire mapsets on your collection, you could end up with repeated audio files!!


Whats an mp3 tag?
This concept is very important to understand if you want to change the extra settings that are present on the app. Basically an mp3 tag is a piece of information about a given audio file that is present within itself.
For example: your file could be named songA.mp3 but if it's title tag is set to songB, then in media apps it would show songB as title.


Information about extra options
This might be a bit overwhelming at first but this settings are really not that hard to understand (I recommend to read "Whats an mp3 tag?" first)

  1. Overwrite Title/Artist: This setting will write the specified tag only if the original mp3 file didn't contain any.
  2. Force Title/Artist: This setting will overwrite the specified tag in ALL cases (Recomended)
  3. Overwrite Album: If selected the program will set the album tag of the exported mp3's to the exported collection's name (Or "Complete library" if that's the case), only if the original mp3 didn't contain said tag. (Recomended)
  4. Force Album: This option will set the Album to the collection's name or "Complete library" in all cases.
  5. Overwrite Thumbnail: If you select to overwrite only the program will try to extract the background from the osu! map and embed it as a cover to the mp3, if it fails to do that (maybe the background was missing) it will use a default image (more info on "Adding a custom default image") (Recomended)
  6. Force Thumbnail: This option will force the default image on all exports. (Recomended for big extractions)



Adding a custom default image
You can add a custom default image by placing an image called defaultimage.jpg on the app's folder (as shown below), if not then the default one will be used!!

KetKatto
I don't know why no one noticed this program but its a good thing I found it and from the very bottom of my heart, thank you. Although, a "Select All" option would be nice so I don't have to click on each map I want to export into an mp3. Anyway, good job!
Founntain

JustLight12 wrote:

Although, a "Select All" option would be nice so I don't have to click on each map I want to export into an mp3. Anyway, good job!


This
Topic Starter
EnanoFurtivo

JustLight12 wrote:

I don't know why no one noticed this program but its a good thing I found it and from the very bottom of my heart, thank you. Although, a "Select All" option would be nice so I don't have to click on each map I want to export into an mp3. Anyway, good job!

- Founntain - wrote:

This


I Finally got to it and recoded the entire project from 0 fixing a lot of issues like the lag caused by all the thumbnails loading on stratup and added your suggestion. Thanks for the feedback :)
RockRoller

It doesn't work for me, what did I wrong? Or does it have a problem with osu not being on C: ?
Endaris
I believe the root folder of osu! is called osu! always, not osu.
Not sure if you renamed it but that might be the problem.
Topic Starter
EnanoFurtivo

RockRoller wrote:


It doesn't work for me, what did I wrong? Or does it have a problem with osu not being on C: ?

Endaris wrote:

I believe the root folder of osu! is called osu! always, not osu.
Not sure if you renamed it but that might be the problem.


Yes thats the problem indeed (the one Endaris mentioned). I made it so there cannot be any problems with people selecting wrong paths that are not automatically made by osu!. So that the program wont crash at random.

Try renaming the folder back to osu!
This is what it should look like:

in your case it should be D:\osu!\Songs

Let me know if it works.

:)
RockRoller
its /osu/songs in my case. I not gonna change it to /osu!/songs because that will probably fuck some other things up. If I would be you I wouldn't limit it to /osu!, as you can, that can lead to problems for some endusers.
Topic Starter
EnanoFurtivo
Okay, ill release a patch in a sec with a fix for that. I honestly thought osu would create the folder as osu! always.
RockRoller

EnanoFurtivo wrote:

I honestly thought osu would create the folder as osu! always.
I think it does, but some people like to rename their stuff.
Topic Starter
EnanoFurtivo
UPDATE TO V2.2

Okay Ive updated the release 2.2 with a patch on the regular expresion that handled that part. It should now work for folders not called osu! exactly. Still the songs folder that is inside has to be called "/Songs". Thought i think that one cannot be changed the name of or something could break osu wise.
Yoharo
maybe if you add sorting feature that would be nice. like sort by artist, title, length, etc.
Topic Starter
EnanoFurtivo

Yoharo wrote:

maybe if you add sorting feature that would be nice. like sort by artist, title, length, etc.


Umm... thats already a feature. Let me know if thats not in yours but im pretty sure it has been
there since the very beggining.

As for the length filter i guess i could add it, it should be pretty easy, but i dont really see a use for it. If you can tell me why you want that feature then i might add it.

RockRoller
Do you thought about adding a keyboard shortcut that you can press while being in osu, so that the programm extracts the music in the bg? I think I saw smt like that once, would be really nice to automate things even further.
Topic Starter
EnanoFurtivo

RockRoller wrote:

Do you thought about adding a keyboard shortcut that you can press while being in osu, so that the programm extracts the music in the bg? I think I saw smt like that once, would be really nice to automate things even further.
Actually you are indeed right that would be an awesome feature. I have to think the way to make it work with C#. I think the best way to interact with osu! in that sense is using the MSN Live thing (the one StreamCompanion uses). Instead of making a shortcut directly from C# (kind of how AutoHotkey works).

Ill look into it today and maybe tomorrow. Hope i can make it work.

:)
RockRoller
I noticed the only way to remove a single song from the extract list is to search for the song again and then you get the remove button under the song info. How about adding a button above the extract list that allows you to remove single songs from the list?
Topic Starter
EnanoFurtivo

RockRoller wrote:

I noticed the only way to remove a single song from the extract list is to search for the song again and then you get the remove button under the song info. How about adding a button above the extract list that allows you to remove single songs from the list?


I dont get why to add a separate button to deselect a song from the list. Maybe you ment like have a button to deselect the map directly from the list without having to search for the song again?
Yoharo

EnanoFurtivo wrote:

Yoharo wrote:

maybe if you add sorting feature that would be nice. like sort by artist, title, length, etc.


Umm... thats already a feature. Let me know if thats not in yours but im pretty sure it has been
there since the very beggining.

As for the length filter i guess i could add it, it should be pretty easy, but i dont really see a use for it. If you can tell me why you want that feature then i might add it.


Sometime i forgot the name song so i look for the alphabet
Topic Starter
EnanoFurtivo
UPDATE TO V2.3

  1. Now the lists are by default sorted alphabetically so you can find songs more easily.
  2. Now you can use the arrow keys and the Enter key to select\deselect maps and to scroll throughout the both lists.
  3. Now Maps can be deselected from the "Already selected list" so that you don't have to search them manually.
  4. Now file naming is fixed, the file wont be called [1- audio.mp3] rather [mapname - artist.mp3] and in case of a repeated one it would be [mapname - artist (1).mp3]
Yoharo
Could you save the queue list so that when i get few new beatmap i know which is already selected. And could you remove the number when the songs extracted because its kinda useless to have it.
Topic Starter
EnanoFurtivo
The names are corrected on the new version [2.3]
Regarding the list saving i want to take a look at osu! collections ingame and see if i can utilize them to cover your request and a few others. Saving the list would imply utilizing some sort of data base witch i dont plan on using.
Topic Starter
EnanoFurtivo
UPDATE TO V2.4

  1. Boosted performance by a bunch thanks to the implementation of: https://github.com/HoLLy-HaCKeR/osu-database-reader.
  2. Now Songs Can be read straight out of collections from the game aswell as from the complete map list. Naming has been patched once again (minor fixes).
  3. Overall performance issues were corrected aswell.
  4. This should be the last bug/performance related release now. Maybe more features will come in the future, if you have any suggestions let me know.
Topic Starter
EnanoFurtivo
UPDATE TO V2.5

  1. Major bug fixes while dealing with GUI.
  2. Collections are now fully working.
  3. Now you can export the complete map library at once
  4. Made a bunch of bug fixes regarding the extraction of the songs. For example now songs cant be repeated if they are the exact same but will be renamed if it is the same song only different "Map" meaning different cover creator etc...
RussianC00KIEZI
Omg... osu! song extractor... Next year we'll see osu! bg extractor and osu! skin downloader, meh...
Topic Starter
EnanoFurtivo
Hey thanks for letting me know whats obvious to me. To make thisngs clear i dont really care about your salty comment im just rather taking it as a missinterpretation on your end. This has a very specific purpose and if you would have even stopped a little to read that i clearly state: “Hi Everyone i was wondering if i could listen to some beats i had inside osu! in my phone”. Honestly i code because its fun and entretaining no one really forces me to keep this up to date. I recommend you no to be so salty for minor things. Just because its not useful to you it doesnt mean its not for everyone else. 🙃
RussianC00KIEZI

EnanoFurtivo wrote:

Hey thanks for letting me know whats obvious to me. To make thisngs clear i dont really care about your salty comment im just rather taking it as a missinterpretation on your end. This has a very specific purpose and if you would have even stopped a little to read that i clearly state: “Hi Everyone i was wondering if i could listen to some beats i had inside osu! in my phone”. Honestly i code because its fun and entretaining no one really forces me to keep this up to date. I recommend you no to be so salty for minor things. Just because its not useful to you it doesnt mean its not for everyone else. 🙃

*meaning using for stupidos only*
Just. Too. Fucking. Useless. When. You. Can. Do. It. With. Your. Hands.
And also all CIS already memed your AF USEFUL prog
Topic Starter
EnanoFurtivo
Man could you please stop being toxic please. Stupidos maybe. Doing it with your own hands, i highly doubt you can manually change the metadata of 5000+ (depending on the user) mp3's so good luck on that. Still thinking that if you dont find it useful you should just sut up.
JTheSun
Was about to write this program myself for my 7000+ songs, then decided to check the forums only to find you did it twice as good as I could probably; Honestly thank you so much it's absolutely perfect :)


btw just leave that troll be he's not worth your time
Topic Starter
EnanoFurtivo

Animeshon Music wrote:

Was about to write this program myself for my 7000+ songs, then decided to check the forums only to find you did it twice as good as I could probably; Honestly thank you so much it's absolutely perfect :)


btw just leave that troll be he's not worth your time


Heyy thank you so much for the feedback i really apreciate it, and you are right im not gonna worry about that. BTW i just released a new patch that i forgot to release (Im really sorry for that :V). I recommend you to download the new one, its much better and it has the button for changing the folder paths wich i forgot to turn on in the previous release. Also made some important bugfixes
m8than
Does the program also fix mp3 tags for you? If not thats a good feature to add.
Topic Starter
EnanoFurtivo

m8than wrote:

Does the program also fix mp3 tags for you? If not thats a good feature to add.


It does indeed, if by "fix" you mean actually using ASCII titles like "Red like roses" instead of some Unicode Japanese symbols.
Strider
This is such a good idea.
Topic Starter
EnanoFurtivo
Just giving this post a quick revive, since i recoded the whole thing and updated the post to look better. Maybe now more people are interested in this, current version 3.0. Hope i dont bother anyone with this :D
DGD-Kamina
Well, this is exactly what I was looking for and works flawlessly so far.

Just one small thing, how do I output the files as "[artist] - [song name]"? Looks like it automatically goes
"[song name] - [artist]".
RockRoller

DGD-Kamina wrote:

Well, this is exactly what I was looking for and works flawlessly so far.

Just one small thing, how do I output the files as "[artist] - [song name]"? Looks like it automatically goes
"[song name] - [artist]".
It looks like you can't do that with this programm, however, there are other programms like Mp3Tag that allow you to edit title and tags of songs
DGD-Kamina

RockRoller wrote:

It looks like you can't do that with this programm, however, there are other programms like Mp3Tag that allow you to edit title and tags of songs
Yeah I use mp3tag when archiving my music when necessary but it shouldn't be that hard for the programmer to consider this functionality since he's already renaming the output files.

Would also be nice to automatically strip away the difficulty and mapper from the file name.
Topic Starter
EnanoFurtivo
I will add that once i get some time, thats a neat feature. Although i need to think a way to properly format the output file and make it customizable

I made it like it is now to avoid different mapsets of the same song beeing overwritten (since they are named the same)
Same goes for different difficulties inside the same mapset

[before in v2.0 the file contained a checksum in the songs comments (a never used tag), so that the program could export songs with the same name a.mp3 but detect they are different and save it as a(1).mp3] [keep in mind the program needs to know which maps where already exported somehow so it doesnt duplicate files]

In any case you still have to name files 1.mp3, a(1).mp3, a(2).mp3, etc... Im not sure what would look better
And also most media players just use the tags anyway, and not the file name.

What im adding for sure is a check box to flip the outputfile name. That wont be hard at all

ED1: Also i just thought that it would not only look worse if the files are named 1.mp3, a(1).mp3, a(2).mp3, etc... But it also would be very hard to distinguish between different length songs
Please sign in to reply.

New reply