-
Notifications
You must be signed in to change notification settings - Fork 0
edelbalso/mp3repo-old
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
What is it? =========== mp3repo.rb is essentially an mp3 backup script for really unbalanced, overly neurotic people. The idea is that all your mp3 files should be saved somewhere safe that exists at a remote location accessible via FTP or S3. Additionally, no mp3 file should be put in the repository unless it passes strict verifications for artist and album names, as well as other id3 tag info. The main goal of this script, above and beyond the id3 tag verification, is to allow for the archiving of albums at a remote site so they can be deleted locally, freeing up HD space, but not forgotten. Assumptions =========== The script works with the following (reasonable) assumptions: 1) You're mentally unbalanced enough to not want any "singles" in your music library, instead opting only for full albums. This assumption can be negotiated. 2) All your mp3s are stored in one folder, grouped together by artist then album. File naming conventions are as follows: /Artist1/Album1/01 - Track Name.mp3 02 - Track Name.mp3 ... /Album2/01 - Track Name.mp3 02 - Track Name.mp3 ... /Artist2/Album1/01 - Track Name.mp3 02 - Track Name.mp3 ... /Album2/01 - Track Name.mp3 02 - Track Name.mp3 ... 3) You're happy not backing anything up until the Artist name in the folder matches the one in the id3 tag of the individual tracks. Same for Album Name and Track Names/File names. Terminology =========== Repository : A remote data store that will keep a copy of each individual mp3 file. Library : A folder on your computer that will contain the mp3 files that are pulled from the repository. These can be used to listen to. Staging : A staged file is an mp3 file that has passed filename/id3 checks and can be added to the mp3repo database. Once in the database, the metadata will be stored and indexed and the file can be copied to the repository at will. Committing : To copy a file to the backup site is to "commit the file to the repository". Workflow ======== To achieve our goals, every Album/Artist/Track will follow a sequence of states: N - Non-Verified: This will be all files that are in the local library that have yet to pass naming verifications and don't exist in the mp3repo database. S - Staged: A staged entity is one that has passed naming verifications and has been added to the local mp3repo database but not yet backed up. C - Committed: A committed track is an mp3 file that has been copied and backed up to the remote server. An album is considered committed when all its tracks have been committed. An artist is committed once all its albums have been committed. R - Remote Only: These are all files that have been deleted from the local library but still exist in the remote repository. Naturally, a healthy music collection will have mostly, if not all, C's and R's. Dependencies ============ The following is a short list of essential ruby gems to be installed for this script to work : http://scrobbler.rubyforge.org/ sudo gem install scrobbler sudo gem install ActiveRecord sudo gem install sqlite3 sudo gem install rbrainz sudo gem install Text sudo gem install colorize sudo gem install progressbar
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published