2016-04-20 17:46:31 +00:00
|
|
|
# What Do I Want To Listen To
|
2016-04-20 17:45:28 +00:00
|
|
|
|
2015-12-03 20:28:29 +00:00
|
|
|
## 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:
|
|
|
|
|
2016-04-20 17:45:28 +00:00
|
|
|
### Implemented
|
|
|
|
|
2015-12-03 20:28:29 +00:00
|
|
|
* Song tagging.
|
|
|
|
* Playlists.
|
2016-04-20 17:45:28 +00:00
|
|
|
* Bookmarks (temporary song tag marking location in a playlist/album)
|
2015-12-03 20:28:29 +00:00
|
|
|
* Read meta-data from ID3.
|
2016-04-20 17:45:28 +00:00
|
|
|
|
|
|
|
### TODO
|
|
|
|
|
|
|
|
* Web-based interface.
|
|
|
|
* Mobile interface (could implement the Subsonic API on the back-end to be able
|
|
|
|
to use pre-made mobile apps)
|
2015-12-03 20:28:29 +00:00
|
|
|
* Transcoding on the fly.
|
|
|
|
* Read songs from Amazon S3.
|
|
|
|
* Stream from Amazon Cloudfront.
|
|
|
|
|
2016-04-20 17:45:28 +00:00
|
|
|
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
|
|
|
|
|
2016-04-21 13:19:07 +00:00
|
|
|
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.
|
2016-04-20 17:45:28 +00:00
|
|
|
|
2016-04-21 13:19:07 +00:00
|
|
|
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
|