So why do I want to make a music player without user interface? Well, it's not going to be completely without user interface, just no graphical interface. The goal is to make it completely controllable from the command line.
Not only that, but the command line tools to control the daemon will actually use a simple API, probably web-based, which will be public so anyone will be able to use it from any application.
The reason I will make this, the itch I need to scratch, is that I wanted simple controls and information in my window-managers toolbar. I am using the Awesome window manager, and it is easy to add custom widgets in its "wibox", as the toolbar is called, at least if you can get information from an external program. Since the normal Spotify client doesn't provide any such interface, I have to use their API to make my own client.
I am planning to start experimenting with the public Spotify API, as published here this weekend, just to get to learn how it works, and what I need to be able to search for playlists, artists, albums and songs, and then play some songs. After that, I will attempt to make some simple C++ wrapper classes around the Spotify API, that I can later use in the actual daemon.
I don't have a set schedule for this, but then not many open source projects do, but I hope to be able to have something which can be unleashed to the public withing a couple of weeks, if I'm not to bogged down in work or something else comes between (like one of my other projects.) It will all be published under the three-clause BSD license, and I will push changes to a github repository as often as I can. A word of warning though: The repository will be highly unstable, and the code will not be likely to work some time.
Well, that's it for now. I will try to keep this blog updated during the development of spotd, and hope I won't be alone in wanting something like this!