Music database and web interface.
- MishMash is a music database using Python and SQLAlchemy.
- A command-line tool for building and managing a music database.
- Web browser interface (using Pyramid) for browsing your music library.
- Uses eyeD3 for reading MP3s and ID3 metadata.
- Support and tested with Python 3.6 and Postgresql. SQLite is periodically tested with, but future features may not be supported (e.g. full text search).
- Free software: GNU GPL v3.0 license
$ mishmash info /\/\_____ .__ .__ _____ .__ /\/\ \(\( \ |__| _____| |__ / \ _____ _____| |__\(\( / \ / \| |/ ___/ | \ / \ / \\__ \ / ___/ | \ / Y \ |\___ \| Y \/ Y \/ __ \_\___ \| Y \ \____|__ /__/____ >___| /\____|__ (____ /____ >___| / \/ \/ \/ \/ \/ \/ \/ Version : 0.3 Database URL : sqlite:////~/mishmash.db Database version : 0.3 Last sync : Never Configuration files : <default> === Music library === 0 music tracks 0 music artists 0 music albums 0 music tags
Surprise, you now have an empty sqlite database in the current directory. Let's leave it here for now, it can be located elsewhere or use a different database using command line arguments and/or environment variables. Pretty useless without any music.:
$ mishmash sync ~/Music/Melvins Syncing library 'Music': paths=['~/Music/Melvins/'] Syncing directory: ~/Music/Melvins/ Syncing directory: ~/Music/Melvins/1984 - Mangled Demos Adding artist: Melvins Syncing directory: ~/Music/Melvins/1986 - 10 Songs Adding album: 10 Songs Adding track: ~/Music/Melvins/1986 - 10 Songs/Melvins - 01 - Easy As It Was.mp3 Updating album: 10 Songs ... == Library 'Music' sync'd [ 8.73s time (45.9 files/s) ] == 401 files sync'd 401 tracks added 0 tracks modified 0 orphaned tracks deleted 0 orphaned artists deleted 0 orphaned albums deleted
Use your database as you wish. Browse it with mishmash web, or use one of its management commands.
Check out the Unsonic project for streaming capabilities.