Shiva provides a RESTful API for private music collections
Source: Mozilla Hacks
Developer Alvaro Mouriño has announced the release of Shiva, a RESTful API for private music collections, on the Mozilla Hacks blog. His aim is to enable like-minded people to access their music remotely without having to reveal private information or usage habits to commercial music services.
The software, named after a crater, will be able to index music and provision the resulting metadata via an API, allowing it to be searched and organised as required. Users will also be able to grant access to friends and Shiva instances will be able to communicate with each other.
One of the two components required for the service is the Shiva server. This is written in Python and uses SQLAlchemy for object-relational mapping and Flask for HTTP communication. According to Mouriño, its role is to index the music and publish the API. Installation of the server is described in Mouriño's announcement.
The BandsInTown API for concerts and scraping modules for locating song lyrics on specific web sites can be used to import additional information into Shiva. Since the API needs to remain available when playing a file, Mouriño also describes how to set up a dedicated file server for user projects. The second key Shiva component is the client, which is a single-page application with AngularJS and HTML5 capabilities for viewing collections and compiling and playing playlists. The client uses a server-side proxy (included with the client) to access music.
Interested users are invited to try out Shiva, submit their criticism and suggestions, and get involved in project development. The project source code is available on GitHub, including a disclaimer on applicable laws, as Mouriño has not overlooked the potential for illegal use. The software is licensed under the MIT License.