Home

Andrew Hamlin

Audio Backup Project

The Audio Backup project helps organize your audio file library across a collection of backup media (DVD/CD). The initial version is a PowerShell Module (PSM) that maintains a local SQLite database to correlate tags to file names.

The module is distributed as a psm, largely written in C#. This implication is that this project requires a modern version of a Windows OS (e.g. Windows 7). In addition to SQLite this project also uses Taglib to inspect the audio file Tags.

An alpha version is available in zip format. I am currently using that version for my personal collection, however the cmdlets do not have documentation and the various helper functions are not included.

Pre-requisites

  1. PowerShell v2
  2. .NET 3.5

Reason for this project

The genesis of this project came from my own personal experience of nearly losing my audio library to a failed backup harddrive coupled with general iTunes stupidity in "auto-syncing" by default. When I realized my harddrive was beginning to fail I purchased a replacement. The process of moving my files over apparently was not 100% successful and the result was that during a sync, iTunes removed some 300-400 songs. After manually searching through my backup media (CD/DVD and harddrive) I discovered I was still missing some 50+ songs.

The solution I came up with? Build a set of scripts to map my audio library files (anything using a Tag library: .mp3, .m4a, .aac, .aa3, etc) to one or more file locations. An initial scan of your audio library will build the initial data, then each backup media scan will append the backup location(s) of each file. The result is an easy to use PS module that can tell what songs are in your library, which ones require a backup copy and what media contains existing backup copies of each file.

Initial release

The first release of audiobackup will include several Cmdlets and some helpful functions organize your audio library.

The creation of backup media is still a manual process. If you use a USB-format DVD then a function will mirror the files requiring backup for you. If you use DVD/CD that are write-once, then a function can produce a list of filenames that you'll need to hand-copy to the disk.

Another function will locate your protected files (.m4p) so you know what to burn to CD and re-import in non-protected format.

Future plans

I do not have any specific future plans documented yet.

One addition that I am interested in is building a little GUI application to broaden the audience who may find this tool useful.

I have started using the DVD USB format rather than burning read-only DVDs. I investigated writing a cmdlet to burn to a DVD/CD but don't think that I will spend any more time on that as using a DVD as a USB drive is perfectly acceptable in my environment.

Another may be a web service api and online database. Being able to manage the backup library across computers, or browse/search from a smartphone, etc...

For more information please visit the project Wiki pages.