Posts: 25,674
Threads: 2,064
Joined: Feb 2005
Reputation:
12
Does this freeware exist?
02-21-2010, 07:25 PM
I've got enough music ripped from CDs that I've lost track of it all. Oh, it's all in the "music" directory on my terabyte NAS device, but the file names only tell me the names of the songs. I'm looking for software that will go into the MP3 files, extract the metadata from the ID3 tags, and write at least the file name, song title, artist, genre, and playing time to a database file (or a spreadsheet which can be imported into a database). Also writing the album name, year, and composer to the database would be appreciated, but is not a required function. Being a supporter of the FLOSS meme, I would appreciate the program being freeware. I'm running Windows (2000 and XP) in my home LAN.
Does anyone know of software that will fill my needs?
--
Rob Kelk
"Governments have no right to question the loyalty of those who oppose
them. Adversaries remain citizens of the same state, common subjects of
the same sovereign, servants of the same law."
- Michael Ignatieff, addressing Stanford University in 2012
CattyNebulart
Unregistered
I know of someone who rolled their own it shouldn't be hard with something like http://search.cpan.org/~i...-Tag-1.12/lib/MP3/Tag.pm
i don't know of any software that actually does this though, but's it a relativly trivial thing. If you can be a bit more specific about what you want I can probably hack something together in 15 minutes or so.
E: "Did they... did they just endorse the combination of the JSDF and US Army by showing them as two lesbian lolicons moving in together and holding hands and talking about how 'intimate' they were?"
B: "Have you forgotten so soon? They're phasing out Don't Ask, Don't Tell."
CattyNebulart
Unregistered
Checking the apt repository for ubuntu i find dozens of tools that will do what you want, that doesn't help you as a windows user but I'm sure some of them have windows versions.
E: "Did they... did they just endorse the combination of the JSDF and US Army by showing them as two lesbian lolicons moving in together and holding hands and talking about how 'intimate' they were?"
B: "Have you forgotten so soon? They're phasing out Don't Ask, Don't Tell."
Posts: 25,674
Threads: 2,064
Joined: Feb 2005
Reputation:
12
What I'm hoping to do with the database is be able to query it on genres, playing times, artists, and/or words in song titles so that I can put together custom playlists for various events and parties.
What I want this software for is automating the building of the database. I don't want to have to manually enter the data for thousands of tracks. (Yes, I do have a good-sized CD collection.)
(As for *nix, I've got some virtual-machine software somewhere in my repository. I'd just need to find it, then pull back an OS...)
--
Rob Kelk
"Governments have no right to question the loyalty of those who oppose
them. Adversaries remain citizens of the same state, common subjects of
the same sovereign, servants of the same law."
- Michael Ignatieff, addressing Stanford University in 2012
Posts: 749
Threads: 53
Joined: Dec 2004
Reputation:
0
For Windows, WinAmp will do at least part of what you want -- you can select a swath of files after you've added them to the Library, and right click them to "Send To " that will cause WinAmp to take each MP3 file, run it against the GraceNote database, and bring back the appropriate ID3 tag data to write to the MP3 file. And WinAmp looks like it should make custom playlists without too much work. For Linux, the combination of Amarok with MusicBrainz/Picard will do about the same thing.
One caveat: the ID3-tagging apps apparently look for some sort of "watermarking" data embedded in the audio that doesn't get lost when the CD is ripped to MP3 -- that's how the GraceNote entries are located. But some older or indie music simply won't have the watermarking, so you could get some Very Wrong tags coming back. Still, overall I found the success rate to be pretty high.
Posts: 25,674
Threads: 2,064
Joined: Feb 2005
Reputation:
12
That isn't what I'm looking for. What I need is to get that data out of the MP3s, not put it in.
--
Rob Kelk
"Governments have no right to question the loyalty of those who oppose
them. Adversaries remain citizens of the same state, common subjects of
the same sovereign, servants of the same law."
- Michael Ignatieff, addressing Stanford University in 2012
CattyNebulart
Unregistered
Lets see how badly yuku will screw up code. This code hasn't been tested and assumes a mysql database. change the config as needed, especialy the SQL query. I assume you know how to run and modify perl scripts?
#!/usr/bin/perl
use strict;
use MP3::Tag;
use DBI;
#Start Configuration
my $database = "robdb";
my $hostname = "server";
my $port = "7";
my $user = "rob";
my $password = "kelk";
my $dir = $ARGV[0];
#setup database connection, not really config, but nessesary to prepare the sql statement.
my $dsn = "DBI:mysql:database=$database;host=$hostname;port=$port";
my $dbh = DBI->connect($dsn, $user, $password) or die "Cannot connect to database. Commiting harakiri.";
my $sqlStatement = $dbh->prepare("INSERT INTO foo (filename, title, track, artist, album, comment, year, genre) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
#End Configuration
#read all files in the specified directory.
opendir DIR, $dir or die "cannot open dir $dir: $!";
my @files = readdir DIR;
closedir DIR;
# loop over all files specified in the 2files array.
foreach my $filename (@files) {
print "Processing: "$filename"
";
#Possibly add a check to see if it's an mp3 file...
my $mp3 = MP3::Tag->new($filename);
my ($title, $track, $artist, $album, $comment, $year, $genre) = $mp3->autoinfo();
$sqlStatement->execute($filename, $title, $track, $artist, $album, $comment, $year, $genre);
}
$sqlStatement->finish();
# Disconnect from the database.
$dbh->disconnect();
E: "Did they... did they just endorse the combination of the JSDF and US Army by showing them as two lesbian lolicons moving in together and holding hands and talking about how 'intimate' they were?"
B: "Have you forgotten so soon? They're phasing out Don't Ask, Don't Tell."
Posts: 25,674
Threads: 2,064
Joined: Feb 2005
Reputation:
12
Quote:I assume you know how to run and modify perl scripts?
It's been a while... so I'll get back to you mid-week whether this works.
--
Rob Kelk
"Governments have no right to question the loyalty of those who oppose
them. Adversaries remain citizens of the same state, common subjects of
the same sovereign, servants of the same law."
- Michael Ignatieff, addressing Stanford University in 2012
CattyNebulart
Unregistered
robkelk Wrote:Quote:I assume you know how to run and modify perl scripts?
It's been a while... so I'll get back to you mid-week whether this works.
fair enough. I also sent a properly indented version to what I assume to be your email. If you need any help feel free to ask, the easiest is proably some variety of IM.
I would run some test but I don't think I have any mp3's on this machine and my local database is down. And while I don't know your db shema, but I rather doubt you have a table called foo, so some local modification will be needed regardless.
E: "Did they... did they just endorse the combination of the JSDF and US Army by showing them as two lesbian lolicons moving in together and holding hands and talking about how 'intimate' they were?"
B: "Have you forgotten so soon? They're phasing out Don't Ask, Don't Tell."
Posts: 25,674
Threads: 2,064
Joined: Feb 2005
Reputation:
12
That's my address, yes. Thanks again!
--
Rob Kelk
"Governments have no right to question the loyalty of those who oppose
them. Adversaries remain citizens of the same state, common subjects of
the same sovereign, servants of the same law."
- Michael Ignatieff, addressing Stanford University in 2012
|