# What Do I Want To Listen To ## A simple, tag-based music library manager. This project is born out of a frustration I had managing my music library. I have found playlists, genres, and other ways of organizing my music too restrictive and cumbersome to keep up with. Here are the main features I want out of music player, in order of priority: ### Implemented * Song tagging. * Playlists. * Bookmarks (temporary song tag marking location in a playlist/album) * Read meta-data from ID3. ### TODO * Web-based interface. * Mobile interface (could implement the Subsonic API on the back-end to be able to use pre-made mobile apps) * Transcoding on the fly. * Read songs from Amazon S3. * Stream from Amazon Cloudfront. I have not found a music manager that gives me all of the above, so I'm writing my own. ## Overview WDIWTLT is currently made up of two subprojects: * `core` * `cli` ### `core` `core` contains the data layer implementation, built with a lightweight ORM layer over JDBC, and common functionality for managing a media library. ### `cli` `cli` is a command-line interface built using the WDIWTLT core and VLC for media playback. ## Install The current version, 0.1.0, is an alpha version. The CLI client depends on [VLC](http://www.videolan.org/vlc/) and expects it to already be installed on the system. To install the CLI client: $ wget http://mvn.jdb-labs.com/repo/com/jdbernard/wdiwtlt-cli/0.1.0/wdiwtlt-cli-0.1.0.zip $ unzip wdiwtlt-cli-0.1.0.zip The `wdiwtlt-cli` binary is located in `wdiwtlt-cli/bin`, which you can add to you `PATH` environment variable. ## Building From Source The `wdiwtlt` project is written in [Groovy](http://www.groovy-lang.org/) uses the [Gradle](http://gradle.org) build tool. If you do not already have a Groovy environment installed you can do: $ curl -s https://get.sdkman.io | bash $ source "$HOME/.sdkman/bin/sdkman-init.sh" $ yes | sdkman install groovy $ yes | sdkman install gradle Once you have Groovy and Gradle, the `wdiwtlt` project can be built by invoking `gradle assembleDist`. $ git clone https://git.jdb-labs.com/jdb/wdiwtlt.git $ cd wdiwtlt $ gradle assembleDist