Help - Search - Members - Calendar
Full Version: m3u verifier?
Hydrogenaudio Forums > Lossy Audio Compression > MP3 > MP3 - General
Spacec0w
so in my collection of mp3 albums occaisonally i stumble across a m3u playlist that for whatever reason doesn't match up with the songs any more. now this just sorta annoys me because if i wasn't paying attention i might well never hear some songs... now i'm wondering if anyone knows if there's a program that can go through all my music directories and see what playlists have broken links? thanks
z0rk
I don't know of a program that does this, however the closest I have is my own program that I use to "mass create" playlists, i.e. I select a root folder, and the program goes and creates a playlist for any files found in any directory. Typically a large folder of about 200 albums (all my own CDS of course smile.gif) takes >10 seconds.

I guess I could modify the program (aka create a new program) that would search for existing playlists and validate the files and/or create a new playlist.

If nobody else has any suggestions, and this sounds like a good idea for you, just say the word and I'll go to work on a new program for you.
Digga
wow, if you've fun doing that, I would appriciate that very much. I've also got some quite large playlists (about 2000 songs each), and I BET there are some broken ones. I delete them evertime I catch one, but who want's to sit for hours just skipping...
So if you wanna do that (and are able to), I'm sure some people (including me) will praise you all day long. smile.gif
bman1
m3u's are just simple text files. Just edit them how you see fit to fix them and voila!
Digga
QUOTE (bman1 @ Jul 13 2003, 12:01 PM)
m3u's are just simple text files.  Just edit them how you see fit to fix them and voila!

It still would be nice if you had a little program that's doing the job for you...
If somebody have some spare time and fun doing it, why not?!
konstantinos
QUOTE (bman1 @ Jul 13 2003, 10:01 PM)
m3u's are just simple text files.  Just edit them how you see fit to fix them and voila!

Editing a 1000-line text file can be a bit tedious, no?

I second the need for such a program - if z0rk or any other guy can make one, that would be great.
mmortal03
QUOTE (z0rk @ Jul 13 2003, 12:57 PM)
I don't know of a program that does this, however the closest I have is my own program that I use to "mass create" playlists, i.e. I select a root folder, and the program goes and creates a playlist for any files found in any directory.  Typically a large folder of about 200 albums (all my own CDS of course smile.gif) takes >10 seconds.

I guess I could modify the program (aka create a new program) that would search for existing playlists and validate the files and/or create a new playlist.

If nobody else has any suggestions, and this sounds like a good idea for you, just say the word and I'll go to work on a new program for you.

yeah, this is what I do too. DOS batch is the only thing you need sometime. It WOULD be nice to have a program with a UI display that everything is well and good though, recursively of course.
Digga
QUOTE (konstantinos @ Jul 13 2003, 12:28 PM)
QUOTE (bman1 @ Jul 13 2003, 10:01 PM)
m3u's are just simple text files.  Just edit them how you see fit to fix them and voila!

Editing a 1000-line text file can be a bit tedious, no?

I second the need for such a program - if z0rk or any other guy can make one, that would be great.

especially editing a 2000-line text file... wink.gif
well, what we need now is a responce from e.g. zOrk who 'voluntered' to program such an app smile.gif
(if he (or sombody else) still want's do it, meaning if he's got time and energy)
z0rk
I'll get started on it right away. I've been looking for a new project to start because I've run out of ideas. I usually code small little apps that are only useful for me, so once I've got nothing else I need I quickly run out of things to do. :-)

Just give me some ideas on what you actually want to be done, i.e. if a playlist is found, and there is a missing file, what do you want done? Automatic fix? Notification? etc?

I assume that I'll have to code this to be compatible with regular playlists (i.e. just the filenames) and for playlists that include extended info (like playlists generated by Winamp).. but if I do an automatic fix of some sort, I don't think I'd be formatting the playlist with the extended info.

So just tell me your ideas, and I'll start working on this.
Digga
QUOTE (z0rk @ Jul 13 2003, 01:00 PM)
Just give me some ideas on what you actually want to be done, i.e. if a playlist is found, and there is a missing file, what do you want done?  Automatic fix?  Notification? etc?

I'm not into programing, but this app should be about finding invalid playlist enties (my main interest is winamp smile.gif )
It would be nice to have some option if an invalid track is found, e.g.:

- delete entry
- search for propper file (if you gave the file a new name and hence it doesn't match witch the playlist anymore, there you could reintegrate the file).

that would prob. be the most wanted features, along with an option 'always do one of them' (e.g. always delete invalid entries)

As I said, I don't know if this could be done, but if you are able to do that, so go ahead, there will be much honor waiting for you... smile.gif
thx
konstantinos
QUOTE (z0rk @ Jul 13 2003, 11:00 PM)
Just give me some ideas on what you actually want to be done, i.e. if a playlist is found, and there is a missing file, what do you want done?  Automatic fix?  Notification? etc?

How about that? Each time a dead entry is found, a small window pops up:

QUOTE
"White Stripes - Seven Nation Army" was not found.
Point me to this file: <______location field______> Browse Button
or remove this entry from the playlist: Remove Button

Or better yet, let the program process the whole list, and then come up with a window saying:
QUOTE
3 Dead Entries Found - What do you want to do?

01. "White Stripes - Seven Nation Army"
New Location: <______location field______> Browse Button
Removal: Remove Button

02. "White Stripes - Apple Blossom"
New Location: <______location field______> Browse Button
Removal: Remove Button

03. "White Stripes - The Air Near My Fingers"
New Location: <______location field______> Browse Button
Removal: Remove Button

I don't know - that's just a quick thought.

PS: Don't worry about the extended info on playlists, etc. - has anyone ever really found a decent use for them?

Edit: Oops, I hadn't seen Digga's post, but it's nice to see that we're thinking alike. I second the request for a "Always do [X] or/and [Y]" option.
z0rk
So far this is what I've completed:

GUI Interface (obviously)

You can add as many top-level directories as you want to process for missing files, you can click a button to add a selected directory, or you can drag & drop directories onto the list.

When you have at least one directory in the list to process, it will go and recursively search the directory for any playlist (*.m3u file!! If you guys use *.pls or other names let me know!) and when a playlist is found it will (and I think I've got the major main points here...):

*) See if every mp3 file (say so if you want support for other file formats too (mpc, ogg, etc) listed in the playlist is within the same directory as the playlist file or not, and depending on the outcome:

a) All files present: No action taken.

B) Missing files: Existing playlist is deleted (overwritten actually) with all present mp3 files in the directory, and the missing file is added to a "this is missing" list for later usage.

(hey, MTV's BASH just started.....hehehe..... no more coding for an hour!!)

Then after the process is complete, if there were any missing files you get a information box that lists all the missing files, and the path they were supposed to be in. From there, well, I'm still working on what to do then.... Either just leave it for you to deal with, or figure out the best way to correct the new playlist that is missing the file......... or something.

I'm losing concentration now watching tv, so I'll resume later.

Let me know of your thoughts on this so far, and anything I should change, add, etc.
smallfred
winamp seems to load massive m3u playlists far more quicker than normal "un-extended" ones... so support for extended playlists is handy
drumliner
Sounds like an interesting app that could come in very handy... thx for the effort z0rk. There's one thing I'd like you to add to it if possible... the option to remove the extended info from Winamp playlists. I guess that should be fairly easy to do as you would just need to remove all the lines starting with "#EXTINF:".

Also it would be nice if you could just make it one application with that mass playlist creation you mentioned included in it.

Keep up the good work.
z0rk
QUOTE
winamp seems to load massive m3u playlists far more quicker than normal "un-extended" ones... so support for extended playlists is handy


As you probably know, that's because the Extended info playlists include the track length, artist, and song title..... aka all the info winamp would normally have to read on its own when loading files therefore making the loading slower (notice in the winamp options you can set the option to load info upon load, or upon display.... display is faster because it wont load the entire playlist when you start up).

However, adding the EXT info to the playlist would require more work than I really want to do, because I'd have to include the capability of reading ID3 tags and all of that.... to actually create the EXT info, so I'd rather not do that.

QUOTE
There's one thing I'd like you to add to it if possible... the option to remove the extended info from Winamp playlists. I guess that should be fairly easy to do as you would just need to remove all the lines starting with "#EXTINF:".

Also it would be nice if you could just make it one application with that mass playlist creation you mentioned included in it.



By default (and I dont plan on giving an option) all EXT info is removed from playlists ONLY in directories that have missing files because the original playlist is simply overwritten with the new existing-file track list.

But as far as having a seperate function to go in and remove all EXT info from playlists regardless if files are missing or not, thats certainly easy enough.

The Mass Playlist creation I will include in this program.


I've been coding non stop (except for that 1 hour during TV tongue.gif) (so, approx 5-6 hours) since I posted saying I would start to, and I *think* I'm finished (other than adding in the mass playlist creation). I've tested it somewhat and seem to have everything working properly, although I never can fully test everything in all possibly ways that someone might break it.

I'd be greatful if one or two people volunteered to beta test it for me before I actually make it available to everyone, and report any problems they encounter.

If any of you have an NTFS drive with your mp3s on it, I definately could use you just to make sure all the functions work with NTFS correctly (although they should).
Digga
QUOTE (z0rk @ Jul 13 2003, 08:14 PM)
I'd be greatful if one or two people volunteered to beta test it for me before I actually make it available to everyone, and report any problems they encounter.

o.k. ... I guess I'm kinda willing to do that... unsure.gif
Sombody obviously have to perform some testing, and since I'm interested in that program...
can you upload it somewhere for a few minutes, maybe tomorow?

by the way, why id a ntsf-drive needed, isn't it supposed to also work with fat ones?
konstantinos
QUOTE (Digga @ Jul 14 2003, 12:01 PM)
By the way, why is a ntsf-drive needed, isn't it supposed to also work with fat ones?

I guess he means it definitely works with FAT, he just needs to check whether it also works well in NTFS. So, NTFS-volunteers are not needed, but appreciated. (If I got that right.)

In other news, I'm here for a beta test as well, z0rk.
Digga
QUOTE (konstantinos @ Jul 14 2003, 02:41 AM)
I guess he means it definitely works with FAT, he just needs to check whether it also works well in NTFS. So, NTFS-volunteers are not needed, but appreciated. (If I got that right.)

right on, I'm the daring ntsf-beta-tester, bring it on zOrk!! smile.gif
z0rk
Yes I certainly meant that the program works fine on FAT/FAT32, but in the past I've experienced (to a lot of programmers disagreement) problems with some functions working properly on NTFS formatted drives. My methods in this program are not the same as the ones I've had problems with in the past, but I still need it to be tested so I know for sure that it works.

I've got a couple more things to add that I've thought of, so I'll get all of those in and then contact you guys for some beta teasting.

I've got some other stuff to do today (amazingly) so I may not be ready until later this afternoon or early evening.

Thanks for your support.
ibm2080
zOrk, what programming language are you using, if I may ask? Is it VB? I am just curious what most ppl use when creating small apps like this one.
z0rk
Yes I'm using VB6 (knock it if you will). I've been programming with VB since before puberty (started with VB3 on Windows 3.1), so I'm most comfortable and knowledged with it. I've taken courses in college for C++ but don't put much time or effort into really learning it, so about the best I can do is very basic console programs.

I don't even care about learning VB.NET or any of the .NET languages, I don't like change much...... stick to what I know, it's easiest like that.

Now, as for the beta's...

I'm ready to upload a file for some beta testing by other people, I'll figure out which web host I'm going to throw it on and then PM the volunteers with the information.

As soon as I get enough feedback from them, I'll finalize any changes and release a public version for everyone to use.

Additional functions I've included:
Mass Create Playlists (recursive playlist creation)
Mass Remove Extended Info from Playlists (recursive editing)
Mass Delete Playlists (recursive playlist deletion)

When doing any fileops that delete playlists, you have the option of moving it to the recycle bin instead of straight deleting the file.

All operations (where appropriate) tell you how many files were processed, playlists edited, playlists created, playlists deleted.
Digga
@ zOrk
sent you a pm *edit* two :-) *edit*
drumliner
I'll try making some free time to test this also... pm me.
z0rk
I've finished with Beta 2 of the program, and I'll be contacting the volunteers. So far Digga has been the only one to report any problems (only had 2 beta testers tongue.gif) and I've fixed/addressed all his reports.

It's coming along good, I think it should be getting close to a public version, as long as no major reports come in from anyone.

For those of you who care (even though nobody does tongue.gif) here is the change log (small version without all the extra information) for Beta 2 so you guys can see in what way I'm going with this, and what I'm actually doing (and not just sitting on my thumb and rotating).

QUOTE
Added options screen for configuration settings.

Introduced a new method of resetting the program after each
function, this solves any problems with not being able to
continue with a new function after others have run.

Added functionality to detect and respond to playlists that include
virtual and fixed paths.  Examples of these paths would be
 
  d:\my music\something\file.mp3
and
  something\file.mp3

Added option to change the method of mass playlist creation.
  New Options: Single File Mode, Multi File Mode.
  Single File Sub Modes: Mode1, Mode 2
fewtch
QUOTE (z0rk @ Jul 14 2003, 12:31 PM)
Yes I'm using VB6 (knock it if you will).  I've been programming with VB since before puberty (started with VB3 on Windows 3.1), so I'm most comfortable and knowledged with it.  I've taken courses in college for C++ but don't put much time or effort into really learning it, so about the best I can do is very basic console programs.

Don't feel bad, I use VB5 (and have been programming various flavors of Basic since 1984). Took a VB programming course (vocational school) when VB4 was brand new, and won the class prize for best original program at the end of the course -- which happened to be a copy of VB4 (the teacher worked at Microsoft and could get software for practically nothing). I just upgraded from that later.

I too have taken college level C and C++ courses (beginning and advanced), but never really dove into it -- lo siento, pero no me gusta mucho las linguas. I've also got some 6502 and 80x86 (16-bit) assembly language experience -- DOS and console stuff only, no Windoze skills in that area.

It's possible to do some pretty fancy stuff with VB and API calls, altho some would argue it's a waste of time (I wouldn't!). Programming for fun is -- programming for fun, even if it involves a lot of wheel-reinventing. smile.gif
z0rk
I've had great response and suggestions from a couple of you guys.... Beta 3 is in the works and I'm including most, if not all, suggestions you guys have had... Some of them will be a bit harder to code, but I'll make my best attempt.

I tell ya, this is the most in-depth program I've ever made just to deal with playlists biggrin.gif
Spacec0w
wow... wasn't expecting this sort of thread to develop! smile.gif that's great that you're working on a program to do just that. I would say all the more complicated stuff is great- but I think the most common use for those who have lots of mp3 albums would just be for your program to check each m3u and if there are any broken links simply create another, or create on if there isn't one there already. And if there's no way to put the tracks in order (no id3 for track # or no file #) a popup message or some sort of notice would be nice. In fact your original program would probably do the trick.
z0rk
The time has come.

As requested by some forum members (re: http://www.hydrogenaudio.org/forums/index....howtopic=11287) this new program has come to a ready state for general public use.

Get this program, information, and other great programs at http://pcapps.bizhosting.com

Many thanks to the beta testers (konstantinos, drumliner, Digga) for their input and bug reports.
drumliner
QUOTE (z0rk @ Jul 24 2003, 02:49 AM)
Many thanks to the beta testers (konstantinos, drumliner, Digga) for their input and bug reports.

Well many thanks to z0rk for making this app we can all make good use of and for listening to our suggestions/requests about it wink.gif. Sorry if I wasn't active in the testing in this last few days before you released it publicly, as I was away from my computer.
Tec9SD
Sorry, this is the 1st time I've seen this topic.
I use NTFS on all of my systems and Have a bit of experience at finding problems (I mean breaking things biggrin.gif) I've got some stuff going on but I'll be more then happy to do a bit of testing on future revisions. I do a bit of Perl programming btw. huh.gif

I'm not sure if you've already done this or not but have you considered checking for write protection to accommodate that in any way? I personally always make my rip read-only as soon as I've finished tagging fixing cue's etc. and I’m sure others do as well.

And also thank you for offering your talents to someone who may of otherwise gone with out an ideal solution. Mankind salute's you. hehe
<stdout>, Tec
z0rk
There are no operations on the mp3 files themselves, so if they are read only it won't make a difference. If a playlist file is read only it wouldn't interfer with verifying the playlist or deleting it.
Miles
Btw, there is a nice WinAmp2 "General" plugin named "Reproduction Control", which has some very nice features, among these there is an option which automaticly removes "dead" files from WinAmp's playlist. You can try it.

wink.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.