The Tunevault

I'm not going to maintain a fancy website for this project...SO, here's some screenshots, followed by the README that comes with the distribution.

Please visit the SourceForge project page for The Tunevault to download.

Statistics view-- lots of silly graphs!
Statistics View

Tracks view--
Tracks View

Album view--
Album view

Report summary view--
Report summary view

Album report for a month, with pop-up window with Album info--
Monthly report with album info pop-up

README file:

##########  THE TUNEVAULT ###################
The Tunevault catalogs, analyzes, and displays a wide variety of information on a library of digital music stored on a local linux PC. It is powered by MySQL on the back-end, Perl in the middle, with a browser-based front-end.

The stated goals of The Tunevault are as follows:

1. Link information contained in the *nix filesystem (path, filename, creation time, etc.)  with information stored in ID3 (v1 and v2) tags within the MP3 (title, artist, album, year, genre, etc.).

2. Provide a clean browser-based tool for accessing information on the digital library.

3. Provide automated web-based statistics and graphs on the files contained in The Tunevault

4. Store information on albums as well as individual tracks. Store cover art in the database where possible.

5. Require NO specific directory structure from the owner as to where the files are kept, how they are named, how they need to be tagged, etc. The Tunevault should operate completely independently of the user's administration of their files. It only should require an update script that scans the HD and sees where things have changed.

6. Use only open-source tools: MySQL, Perl including CPAN resources, Apache webserver, all on a linux platform.

7. Use MD5 checksums to identify when files have moved, been deleted, or is a duplicate of another file in the filesystem. Use the checksum as a primary key in the database.

8. Use Cascading Style Sheets, HTML::Template, and any other tools available to modularize and simplify code wherever possible.

9. Provide browsing and filtering tools for rapid web-based searching of the Tunevault.

10. Make every attempt to write code that lends itself well to outside code to be written for Tunevault access. Possible add-ons include controlling an mp3player, writing playlists/files to disks, etc.
#############################################

PREREQUISITES:
The Tunevault makes use of lots of free tools and CPAN modules to do its magic. You may feel this is a pain, but hey, it's free! Plus one of my intentions on building this tool was to ride on the shoulders of others wherever possible.

The following all need to be installed in working order before The Tunevault can work properly:

These your linux system probably has:
MySQL (initial development was done on version 3.23, but any version should work)
Apache with working cgi-bin directory (probably would work with other webservers, but why bother when Apache is so nice and free and stable?)
Perl (I'm developing with version 5.8.1, but would probably work for anything at or above version 5.0)

These your linux system likely does not:
GD (http://www.boutell.com/gd/) --make sure to build in PNG and freetype support
CPAN Modules:
    GD
    GD::Text
    GD::Graph
    DBI
    DBD::mysql
    Digest::MD5
    Chart::Plot
    MP3::Info
    LWP::Simple
    HTML::Template

GD and the Perl GD modules can be a real pain to install if you have an older version of linux. With RedHat 9.0 it installs very nicely, but before that it can be awful. If you run into serious trouble installing GD version 2.x, try going back to the last stable 1.x version, which seems to compile better on older systems.

#############################################

INSTALL

I've written an interactive installer program, install_tunevault, which should do the dirty work for you. This script should probably be run as root. This script tries to be fairly "intelligent", but it is possible that it might not be that smart. Make sure to open a bug if something doesn't work correctly.

#############################################

BUGS

This is a sourceforge project, therefore I'd like to utilize the nice bug database they have available for tracking problems. Here's the URL:
https://sourceforge.net/tracker/?group_id=72543&atid=534862

As long as I'm going to make this code freely available, I might as well fix bugs as they come along. Please post issues to help this product become a better one.

#############################################

UPDATES

11/18/03
Version 0.1: Initial Release. Still lots of TODOs (see TO_DO file)

#############################################
bklaas 11.03