Hacker News new | comments | ask | show | jobs | submit login
Koel: A personal music streaming server (github.com)
499 points by vive-la-liberte on Dec 14, 2015 | hide | past | web | favorite | 248 comments

Anyone else find that in this new streaming age they listen to a lot less music? It may just be a function of my age, but I feel like if I had a device with all of my songs on it again I would listen to much more.

I think there could be another iPod age.

Imagine a device with 10Tb of flash memory, an E-Ink display and 2.5 million songs.

I consumed huge amounts of music during the golden age of Turntable.fm (and later plug.dj, to a lesser extent). Since totally losing my playlists during each shutdown, I'm wary of any future similar services.

Discovering Bandcamp has been great, though. On the listener side you have a "collection" of music you've bought, a "wishlist" of music you haven't paid for but plan to at some point (most albums are fully streamable before buying), and a "feed" where you can follow artists you like to keep track of new releases. You can also follow other listeners with tastes similar to yours, for which the Bandcamp site provides recommendations. When there's nothing new in the feed, the "discover" tab and the Bandcamp Weekly podcast are both good ways to explore new music.

I would love a device like the one you describe. Having shopped for dedicated MP3 players recently, the current gold standard seems to be the Sansa Clip+, and even that device is relatively dated. As long as it supports normal USB-stick-like file/folder management, without some iTunes clone to wrestle with.

Opposite for me. Someone turned me onto pandora 7 years ago and I listen to it all day at work (via headphones). I have it on my phone and use it in the car. I actually ended up paying for Pandora|One.

Only in the last couple years, when I started flying for work, did I realize I had virtually no mp3s anymore. So I've been working on gathering music to use in offline mode at airports.

This is where podcasts came in for me. And downloading the occasional DJ mix.

I have the same feeling. That also might have to do with that I earlier was a DJ that played regularly on different underground electronic parties. But the thing talking against that is that the music I listened to at home has never been the same that I've been playing when I DJed.

The conclusion that I've made is that before i had to _curate_ my own music. Go and search for new releases, download new and totally unknown stuff that I later went through and actually listened to. In a way the whole "setup" forced me to listen to new stuff. Now that I have everything online, i more and more just tend to listen to the same stuff that "i already know" over and over again, hence it gets more and more uninteresting to actually listen to it.

In a way I have everything available, which makes me not forced to go out and search for the music I like and find interesting.

edit: A lot of talking about recommendations and music discovery further down. My input on that; I'm fortunate to have been using last.fm, even from before they changed name to last.fm. So I have a large history in there. That is the place that gives me the best recommendations and discovery so far. Their recommendations are spot on, and a good way to find new and good music is to go to "people like you" and see what they are listening to that is unknown for you.

Same here; I have been listening to streaming stuff less and less...but my reasons are: 1. Between so many work/day-job meetings, seldom in front of a laptop with the opportunity to work with headphones, and music in the background. 2. When I'm mobile - and on my mobile/away from laptop - I'm just too stingy with my mobile data plan. (Maybe its my age, or cuz of family, but priorities of data plans change with growing families ;-)

>I'm just too stingy with my mobile data plan.

Yea that is exactly my sentiment. There was a time when I was cool to walk/drive about and listen to music. Now my data plan pushes me over the fence into silence.

This is where I really like Google Play Music. I can download the album/songs I want to listen to while I'm on WiFi at home, then when I'm on-the-go it just plays the local version rather than streaming.

Which streaming service do you use that doesn't allow offline caching?

I don't know if there's a real market for simple audio-players, but I surely would buy one. I don't need e-ink display (simple LED like Sansa Clip+ is nice), or even 10TB of memory. Hell, thinking of it, Sansa Clip+ with Rockbox is almost perfect. The only thing I don't really like is form-factor. And rockbox itself isn't prefect. But there is no real choice: I don't know any other player that would support every necessary audio-format and just play music. Granted, ability to sync tracks/playlists over the internet with what you have on your server it huge improvement, but I still cannot convince myself that it's worth carrying my phone around all the time.

I don't see any real need for a "new iPod" now though. Yeah, SSD slots for new phones are a bit less common than they should be, nut it's still bearable. For me the phone itself is what's inconvenient, not the absense of your whole audio-library on it all the time (browsing it on the phone would be painful anyway).

Nope. Since I signed up for rdio several years ago, I listen to much much more music than I did before. If I was listening only to stuff I owned, I'd get sick of it pretty fast. People who listen only to music you own: isn't it really expensive to buy enough that you don't get bored?

With Rdio shutting down, what are you switching to?

I signed up for spotify for now. They're doing a promo so you get the first three months of premium for $1. I like some things about the interface better, some things worse. Overall, I wish rdio wasn't closing, but spotify seems like a sufficient substitute. I may also check out google play music in parallel.

My one strange requirement is that I want to play music on a headless computer hooked up to my stereo system, and control it remotely with a nice interface (including discovery, etc.). Rdio did this basically by default. For spotify, I think I'll end up using mopidy as the player, but I'm not sure about the remote control yet. There's some conflicting information about whether spotify connect (their shared queue feature) is supported on linux or by 3rd party clients.

I listen to a lot less music now, but I am not sure of the reason. My listening technology certainly changed a lot, but I also went through a serious bout of depression around that time. I would try listening to music, but it just made more anxious and unhappy, regardless of the style or content. Since that time I really haven't listened to music like I used to. This all, of course, coincided with me growing up, leaving college, leaving grad school, and getting a job. So it's tough for me to really say if my decline in music listening comes from any of those factors.

Yes! I'm so stuck between different streaming services that I Haven't been able to fully consolidate my library on either one.

Moreover once I have done that I'm not even sure where my library will begin or end, does it end at the temporary stuff i'm listening to on the discovery radio or stuff that I have added to a playlist but not my library.

At least with MP3s it would be "I'm downloading these songs and they will be in my library because I enjoy them." Now i'm not even sure if I have a library.

I use iCloud for my 30k+ songs music library and it works great. Genius mixes fill the void when it comes to music discovery. I have a lot of albums I have never listened to.

> Anyone else find that in this new streaming age they listen to a lot less music?

Yes, +1. Bulk of my tracks are same old tracks that I used to tune in a decade ago in CD or cassette form. Radio is closest to what introduces me to new music, but they are limited and the decay is quick. May be quantity is lot more than what I(/we) can consume.

When I was streaming with pandora, grooveshark, and spotify I was constantly hearing new songs.

But that's just because before I was content with listening to the same stuff repeatedly, never did look out for more music on my accord.

Stopped doing streaming, but open to getting back into it, found some great music that way.

I always have a MP3 player with me and i couldnt agree more.

I couldn't compile it on Debian yet, but tomahawk (https://www.tomahawk-player.org/) looks interesting.

You could set up a music NAS with beets (http://beets.radbox.org/) as one of several sources (also you could have spotify, youtube, soundcloud) then have playlists that include stuff from a combination of them.

A last.fm type service for tomahawk is in beta at https://hatchet.is

for tomahawk, the RFP is coming along nicely: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=649287

not sure how this relates with the parent though...

I have been using Subsonic.org on my servers since 2009. It has and still is serving me very well.

Subsonic works well enough, if you ignore the fact that it requires Java, frequently corrupts its own database, doesn't properly cache certain file formats on the client side even though it sends transcoded files (this one is inexplicable to me), and has many other strange quirks. Worst of all, though, is that it bills itself as free software, but requires activation after a short period of use, and patches to circumvent the ransomware anti-features have been taken down (not sure why tho). Recently, the pod catcher has been crippled and made ransomware as well.

A good replacement would be welcome.

Have you looked at ampache? I switched to it because of everything you just mentioned.

I could never get any of the Android apps for Ampache to work.

The android apps are kind of terrible. I use ampache-provider and just-player and it gets the job done. It's not a great solution though

Appears to be compatible with subsonic apps, too.

I might have a long time ago, but I didn't realize it was so fully-featured. Is there a guide for setting this up on Windows anywhere?

http://mpd.wikia.com/wiki/Windows_Compatibility might be your best bet. I don't really run windows boxes, so I don't know unfortunately.

This is why I've been using the Madsonic fork. It gets around everything you mention.

I am looking for a music player that plays playlists in a more intelligent way. If I rated a song with 5 stars it should be played more often in a random fashion then a song with 3 stars. And I never want to hear again a 1 star song, and rarely a 2 star song. If I press the next/skip button while a song is playing, it should decrease the star rating after the second time. If I play a song two or three times in a row it should increase the star rating.

I've been using ampache, because I hate java, but it's pretty much the same thing. Both products work really well

Subsonic is great.

I switched to Kodi with the chorus web application that allows controlling and streaming your music to the web browser. Not as feature rich, but together with yatse on my android devices it means a raspberry pi with only kodi running can be a total home media server.

Subsonic is nice, but I'm running it on a Raspberry Pi 2 and you really can feel how haevy Java is on a machine like that. It would be nice to have a lightweight server with the same API but no webfrontend and written in C or go or something for speed. Right now, when I want to start playing a song it sometimes takes up to a couple of seconds what should be instantanious in for example Clementine.

I just want to echo the love for Subsonic (and the iOS iSub app). I happily used Google Music until I hit the (at the time) 20k track limit. Now that I've been running and using Subsonic for a couple years, I consider it a complete upgrade in terms of features and performance.

I had not heard of koel or ampache until today, but choices will always be welcomed.

I've been happy using Subsonic, though just this week I upgraded the server and got jetty db corruption. The forums have a few other people complaining of this (on Linux) and no solutions. Very frustrating.

This was the very problem that got me to switch to Madsonic and I haven't looked back since!

What I'm looking for is better music discovery. This would require some form of machine learning/statistics/collaborative filtering, but basically, if I like a number of songs, I'd want the system to automatically recommend new songs/artists.

You should try Spotify's "Discover Weekly" personalised autogenerated playlist, it's been built by the Echo Nest team and learns directly from what you listen to.


I found them to be pretty bad. Let's say I listen to genre X exclusively for two weeks, and then for genres Y and Z during week 3. The genres are completely different (lets say X - rap, Y - kpop, Z - just pop music). On week 4, I'd expect to be recommended a mix of X, Y and Z, seems reasonable. However, it's only X because I listened to it a lot a while ago.

So it's pretty good if you are listening to the same music genre, however, it sucks if you like to change the music based on your mood, etc. I also noticed that it doesn't detect the language the music is in so I often get songs with lyrics in languages that I have no clue about.

When was the last time you used it? I've noticed that the discover weekly playlist has consistently featured four or five majorly different genres, all drawn from the music I've tended to listen to lately. It's been good about doing this since I first subscribed back in May.

Some of the songs have absolutely missed the mark, but there have been others I've found that make me go back and listen to the entire album they're from. Definitely have encountered different languages as well.

A week or two ago :) it was pretty in summer/earlier autumn when I was listening to one genre almost exclusively but I've been mixing up lately and my recent preferences got totally ignored.

I listen to multiple, vastly different genres. I find Spotify's Discover playlist may favor one particular genre one week, but it's usually pretty good.

And the behavior you described doesn't sound "pretty bad". If you haven't listened to a particular genre in a few weeks, I think it's reasonable you don't get suggestions for it for the upcoming week of listening. But if you do start listening to that genre again, your next playlist will have it.

The recommendations are usually on point, but to my knowledge, there's no way to say "I don't like this artist, stop recommending it". I have quite a few of those, that I should like based on my tastes but for some reason I don't.

I could try that. But I think I eventually want something more flexible. For example, when listening to a song, I want the system to automatically pick songs that are similar to that song. Or I'd like to pick songs based on instruments used, tempo, origin, language, genre, etc.

Spotify does that already too - right click a song and "Start Song Radio". This will automatically pick songs that are similar.

I know it seems like this is what you want, but for me I've never been satisfied with this simplistic approach to discovery. Taste is very complex, and for me saying to someone "I really love xylophone" and them recommending me a lounge jazz tune with xylophone will always fall flat. What most people don't realise is why they love certain instruments or tempos or genres etc. It's usually down to how they were introduced to these, which defines their archetypal music using these instruments for example. It's all contextual.

My context for liking xylophone goes something like this "I love xylophone, because in the late 90s I listened to a lot of Beastie Boys 'Hello Nasty' which has some really nice pieces of music with some great xylophone in them. Then hearing some Mulatu Astatke recently got me interested in xyolophone and ethio jazz in general, combined with a really cute reaction my girlfriend had to one of his songs."

The best recommendation engine I've seen is Spotify Weekly. It's really very good, but make sure you get in there and save a lot of artists and albums you like first

You can do this if you right click and do play song/artist radio.. but in my experience it sucks really bad, and has only gotten worse over time. Use to, it was kinda useful. Now it's complete garbage. I'm not sure what they changed in their algorithm but typically when I do this I get 5 artists that are only marginally related, and then it proceeds to play music from those 5 artists in a loop and the "dislike this" feature seems to do nothing. I've actually disliked a song and then it came on about 20 minutes later.

I have a playlist of a lot of songs I like (except I try to keep it to one or two songs per band).

The radio from that converges to endless Foo Fighters and The Prodigy -- over half the songs!

It's not that I dislike them, but I don't particularly love them either and there is just no diversity on that station.

I understand, suggestions still have issues. I listen to a lot of more obscurely specific genres, and sometimes will get just a couple of repeated songs if I make a radio based on a lesser-known artist.

That said, if you haven't given the Spotify Weekly Recommendations a shot -- you should. Maybe it's because it has more data to work with than song/artist/playlist-specific radios, but for me that feature has been extremely spot-on. In fact, I hadn't used spotify for a while because I kept hearing the same songs, but now I religiously keep on top of my discoveries each week.

I agree on the weekly discoveries, they are great. The radios, at least the playlist radios, are crap.

It seems like the radios point me towards the most common denominator and plays the most mainstream stuff that matches, while the weekly discovery lists come up with some very quirky stuff that I love.

I guess the radios can't have any "memory", it seems to generate close to one song at a time (hence a lot of repetitions), whereas the discovery list can be created 30 songs at a time and seems to go out of its way to find songs by bands that I've never listened to.

It does that as well, and calls it "radios" for a given artist or song.

I've given up on discovering new music using technology and gone back to curated lists. No matter how hard I've tried to exploit technology, friends/bloggers who are obsessed with music are always the best sources.

Subjective tastes tend to diverge too rapidly with machine learning.

If (fingers crossed someone is doing this) there was a really easy and non-spammy way for people to build a playlist using _any_ source material into something like muxtape (or opentape) I would use it. Until then, I will just continue to ask them for youtube links and bandcamp profiles.

Also, songs in an individual artists library can vary WILDLY.

There are some artists from whom I truly only like one single song from their entire catalogue.

Others, I like every single song, but that is super rare.

And I dont have the time interest or energy to actually attempt to tag or classify music and songs that I do like -- so I just pretty much am stuck listening to the same thing or actually getting individual recommendations from real people.

You might want to look into http://www.last.fm

I've found those recommendations much better than Pandora or Google Music, and you can hook into it with many different services/players.

Last.FM used to have an amazingly accurate and helpful music discovery system, and great similar artist recommendations up until roughly 2 years ago where they either limited the amount of similar artists, or put some sort of blanket filter or whitelist for a smaller pool of "approved similar artists".

Last.FM was so ahead of the game it's mind boggling how they just seem to have fizzled out while Grooveshark, and Spotify came in.

Last.FM had a huge user base with great info on individual music tastes, had a functioning streaming service, a whole functioning ecosystem of music fans and musicians that just seemed to have layed dead in the water after it was bought out.

> Last.FM was so ahead of the game it's mind boggling how they just seem to have fizzled out while Grooveshark, and Spotify came in.

I used to think that same thing, but I've come to realize that most people don't care that much about music. It's just pleasant background noise to them.

you can also check this little "similar artists" spotify tracklist generator I've built, based on last.fm api: http://verdisco.yebsoft.com/

Shameless plug, but we are doing exactly that here at http://milq.com. We are attempting to organize the world's media into collaborative playlists, which you can then subscribe to for a feed of content uniquely tailored to your personal taste. Subscribing or dismissing a playlist helps us recommend better content to you. Give it a look! :)

Why do you have the youtube player defaulting to 240p?

It should set it to highest available, or let it be an option.

I like it otherwise!

It defaulted to auto for me.

I've run a music blog for the past 8 years and I've used a ton of different discovery methods. In the earlier years blogs provided me with most of my content. As of the past year Soundcloud has really shown me a whole new world of music. When you play a single track it goes straight to a recommended track, generally right in the same vein as the previous track. I've found hundreds of great tracks I would have otherwise never known existed.

On an unrelated but interesting note: I'm still trying to figure out their recommended algorithm, it seems to be a mix of tags, and cross-referencing your account with who's liked/played a song. What I don't understand is if I listen to a folk song, it will generally play another completely unrelated folk song but with no folk identifiers (tags). I've concluded it's magic.

I've occasionally discovered new music from the SoundCloud recommended tracks, but at this point I follow so many users that I barely have time to keep up with what they are posting/reposting. As with virtually all social networks, the users are the content creators. Not only do they actually create the content (they might not), the bulk of what you get from them is their likes and repost.

If I catch up on my SoundCloud stream (posts/reposts) I'll switch over to somebody's list of likes. Some of my favorite producers are buried in their passion for music 24/7 and have upwards of 1000 likes to listen through.

Recommended tracks are nice, and it's something to fill the void if you are low on content from people you follow, but in my opinion it's not that much better than going out and seeking new music and artists in other ways. I'm sure as SoundCloud improves the algorithm though it could automate some of the behaviors I'm doing manually (e.g. playing content from and following users whose content is liked/reposted by the users I follow). It might be doing this already, if maybe only indirectly, I guess I just like having control. One of the most annoying things I'm afraid it could do is promote sponsored music. I love listening to music that people are passionate about, not music that is funded by large amounts of money.

Similar experience here.

Re: recommendations from blogs, did Hype Machine do anything for you?

That's what last.fm does. You don't need a paid account for that, just add a last.fm scrobbling plugin to your music stack.

I used to use Pandora before they cut off the UK due to licencing. I kept discovering great new songs using Pandora that I just haven't been able to recreate in any other service (I use Spotify regularly).

I've no idea if that would still be the case as we're looking at about 5+ years ago now when I used it.

I had the same experience and only started using Spotify when Pandora left Europe.

Discover Weekly is a very good replacement, though, even if it's not the same.

Have you tried http://www.gnoosic.com ? It is run by a HN user who does a whole lot of discovery research over at http://www.gnod.com

I am not sure whether this is a problem that can be solved entirely with software. Oftentimes it is not so obvious what's the relationship between what you have and what you'd like to discover.

In fact, one of the biggest issues I have with current methods is that they recommend me more of the same. When I look for new music I want - to some extend - something that is unlike what I've heard before.

Say you listen to Blue Lines by Massive Attack. Chances are, the recommendation engine will recommend you Portishead or Morcheeba. (User likes genre trip hop? let's play more trip hop). But maybe I'd like to explore different forms of UK rap music now...

> Say you listen to Blue Lines by Massive Attack. Chances are, the recommendation engine will recommend you Portishead or Morcheeba.

Last.fm [1] recommends more Massive Attack, or "Aftermath" by Tricky, followed by Portishead. Which is fine, as you said "chances are" that's what's wanted. If you wanted UK rap, you at least used to be able to search for the tags "uk" and "rap", but I can't see that on the new website...

This service[2] uses the Last.fm API to make a Spotify playlist based on a track.

[1] http://www.last.fm/music/Massive+Attack/_/Blue+Lines

[2] http://www.spotalike.com/#playlist/97600

> If you wanted UK rap, you at least used to be able to search for the tags "uk" and "rap", but I can't see that on the new website...

In case of my example such a search would work. However, I guess there are lots of cases where a user doesn't even know what s/he wants. That is: "I want more of the same but it should also be very different"

Now that's quite a task for an algorithm! Also, making suggestions based on empirical user data is rather hard as people are highly emotional, especially when listening to music. Thus, people (in general) are not very predictable when it comes to music.

Individuals might have some core principles when choosing music so that perhaps individual algorithms for individual users could work but coming up with an acceptable one size fits all solution is rather impossible, imo.

Some people are happy when the algorithm suggests another top 40 song they haven't heard yet. Others will loose it when they get more metal songs but none of them is teutonic thrash metal [1]

Now we could empower people by making apps like spotify scriptable so that everyone could refine their recommendation algorithm. But realistically that is not what your average user wants...

Perhaps one could improve the situation by asking the user a few questions when s/he first starts the application. That way the app can choose the best fitting recommendation algorithm from a range of algorithms in the background.

[1] Apparently, this is a thing: https://en.wikipedia.org/wiki/Heavy_metal_subgenres#Teutonic...

Totally agree. But, as usual with "nice things", this one doesn't align with Spotify's best interests. If it did, this would have been solved a long time ago - it's not like they haven't acquired the tech/skills to do so.

Those nice little lists Spotify helpfully shows are almost guaranteed paid-for inclusion (apart from the chart-style lists, to a degree, but that's another ball game). Labels/Record Companies/Promoters etc are almost certainly paying for inclusion there as it drives huge awareness and subsequent merchandise, ticket etc sales. Much like radio airplay, where the station controls the programming, this is where Spotify gets access to the same revenue stream.

So giving me perfect recommendations filtered through an exclusion list for which, let's be honest, the maths and data science for have long been sorted out via standard ad-tech and e-commerce recommendation engines, is simply not going to aid in the value proposition for a nicely curated list they can charge to be in.

I doubt that Spotify is charging money for inclusion in the Discover Weekly playlists. This would run counter to the goals of promoting Discover Weekly usage, which is to get more users thinking "What's new on Spotify this week?" rather than "Let me pull up the new Taylor Swift album." The more that users flock to Discover Weekly, the more leverage that Spotify gains against the labels, so my guess is that they're striving for a wide diversity of rightsholders in Discover Weekly so that any one label threatening to leave will not damage the playlist too badly.

This is like asking a chef to make new food based on what you like to eat.

You will never discover anything really new, your experience will be narrowcasted. Avoid this and let dj's, friends, musicians, people, and just surfing around the internet help you find new music.

Whenever I hear someone excited about automated music discovery a little voice goes off in my head going ..."ohh no".

There's very little difference between finding good stuff in automated discovery and finding it because a DJ chose it.

Robots have a hard time recommending unpopular items because they lack the context to differentiate between and good and bad. They'd have to be able to listen to music and make cross-referencing judgments about quality. Are the musicians playing well? Are the lyrics any good? Is the style original? Is the recording good? Is it cheesy? Does it try to imitate another song? Is it a good cover? Does it work in spite of a lot of negative indicators? Is it a nice complement to the songs before and after? etc.

But if you want to find hits in a genre + time period that you don't know very well, recommendation engines are pretty good, and you don't need to have DJs for that.

That's ridiculous and will be ridiculous until robots can replace humans.

For example, do you think someone like DJ shadow who has spent tens of thousands of hours digging in empty, old, dusty basements finding and curating music over a lifetime has the same insight as a dicovery algorithm?

It's not even close to a comparison, the algorithms are lame compared to actual experience and expertise.

I spent 10+ years in the music business as a "buyer" and was later part of a successful music start-up, I can tell you with a resounding "fuck that" to auto discovery unless you like water downed with a side of boring.

No, I don't think DJ Shadow can be automated, but live DJing is a music discovery channel for only a scant minority of fans. These fans are sometimes called "trainspotters."

Radio DJs, on the other hand, have any number of forces affecting their song choices (to the degree the role exists at all anymore), and all in all they're just as much a black box as an algorithm. Sure, we all had radio shows we liked for some time, but those DJs changed and we found something else (notwithstanding people who have been listening to "Renee and Crazy Pete in the morning" for 20 years).

Even with all of this, I suspect there's a discrete economic or mathematical reason that profit-oriented discovery engines regress to a mean and will always be trying to recommend the latest AdeleBieberNational. They may not, right away, but a few clicks deep in the sidebar and you find LL Cool J or Foo Fighters popping up.

I do most of my music discovery on Soundcloud these days. That plus Bandcamp covers most of my needs.

Many artists are starting collectives which publish albums with a variety of artists approximately monthly, which also is great for discovery.

Of course this only works if your preferred genres are there - if you like future funk, nightcore, and hip hop you're golden.

Check out The Echo Nest API for some inspiration - I'm pretty sure Spotify and some similar services use it for their recommendations. http://developer.echonest.com/docs/v4

Two things the 1990s got right and (in my opinion) have never really been replaced: Pointcast and Moodlogic.

Moodlogic worked on my library, I could choose any song, then it would craft a variable length playlist based on that song's mood and instruments. There was a crowd-sourced set of metadata, and I was able to fill in the gaps or correct anything I didn't agree with.

If anyone knows of anything along these lines, I'd be grateful to hear about it.


Personally, I find music discovery a very interesting problem. So many variables to play with! If user listened to artist X, should we recommend more of it or would it be too much? How important are recently played songs vs long term trends in listening (e.g. listening to genre X most of the time over the last year, however, this week I'm listening to Y only)?

Unfortunately, it requires to be running at spotify-like scale to do something useful, have a large enough library and gather feedback quickly enough :( oh well. I will continue dreaming about it though.

Well, maybe the Spotify API could allow access to what you want. Though you don't get access to play count / history data, you could indirectly get it by scrobbling to last.fm.

I've found youtube's related videos list to be quite good at this (and I bet they must be already using some AI for recommendations?)... So you could look for the song title/id and get what youtube thinks are the related songs/artists:


I'm looking for a program that can look at my music library and group it up in a coherent way. It would make finding something to listen to so much easier, as genre is often woefully inadequate to reflect listening mood. I know there are some things like that (and iTunes has a feature) but they all miss the mark.

For new stuff, I'm fine with a combination of best of 20## lists, following some interesting soundcloud accounts, and idle searching the internet / various subreddits.

Have you tried last.fm?

For the last month or so, every Monday I open up Spotify's Discover Weekly playlist. I generally listen to it in the background all week long, giving the songs time to grow on me. I usually find 3-4 songs that I want to add to my "real" playlists, which I consider to be a pretty good ratio.

Last.fm worked well with me in terms of music discovery. They kept shooting themselves in the foot, removing features where I found value and terminated my subscription (living outside US/UK).

Not a recommendation engine, but for music discovery, I loved Twitter Music (ex: WeAreHunter) and it's down now.

As a replacement, I subscribed to popular blogs (popjustice, stereogum...) playlists on Spotify.

I've found Apple Music to be better at music discovery & recommendation but Spotify to still have a superior product (iTunes is a mess now)

I'd like to second this. After trying a lot of competing tools in the music streaming space, I've come back to Apple Music's playlists and suggestions more than any other. They're very good at recommending me things that I turn out to enjoy.

The UX is utter shit, but the suggestions are great.

I'm happy to see Laravel being used for more and more projects and getting the credit it deserves as truly first-class framework -- regardless of language.

Nothing wrong with this comment, should not be downvoted.

I've been working on something similar, just for fun (gave me an excuse to mess with Elixir and Ember). Still highly unstable though, I've spent maybe a week total on this. It's a rewrite of an older sinatra-based project I did back when html5 audio became stable enough (on my github as well).

https://github.com/archSeer/colibri https://github.com/archSeer/colibri-server

Did you also run into the problem of playing .ogg's in Firefox when sending the file content via sinatra?

Searching a solution for that for my own sinatra-based html5 webplayer (https://github.com/onli/music-streamer, not even close technically and from the UI) since a long time.

Don't think so, it was a few years ago though :/ Might have been an incorrect content-type header?

I'm looking into https://github.com/audiocogs to add AAC/other codecs to browsers with no support -- that's the main feature I'm missing with all these web-players, depending on the browser, parts of my library may not play.

> Might have been an incorrect content-type header?

Thought that as well, and it seems like there are multiple type headers for ogg. But none worked :/ Also not those that worked on other sites, so I thought about Content-Length and errors in my logic when to transcode. Went nowhere.

> I'm looking into https://github.com/audiocogs to add AAC/other codecs to browsers with no support

If you can install that clientside, that is a great feature. I tried to transcode and stream stuff on the server using ffmpeg, and the big problem was content-length – when streaming I could only estimate the correct setting, leading to some songs being ended too soon. Could've changed by now ofc in the new browser version.

Yep, the work they do at Audiocogs is pretty amazing, live demo: http://audiocogs.org/codecs/ The transcoding is done completely client-side.

Not quite there yet for me (small lags in the beginning), but that is already pretty great. I should integrate that instead of battling the transcoding, at least for FLAC, which seems like it will never be supported by browsers directly.

Thanks for the link.

ownCloud Music app (https://github.com/owncloud/music) contributor here, I integrated Aurora.js with owncloud music app, and created a compatibility layer for Aurora.js and SoundManager2 (https://github.com/owncloud/music/pull/416). Audiocogs's ogg.js doesn't work, so I use browser's built-in decoder via SoundManager instead.

And Aurora.js' doesn't seem to be maintained anymore, I tried very hard to make it build, finding that the build scripts was intended to work on OSX (version unclear), but the developer never mentions it. And even if it builds, the result doesn't really work, Aurora.js, ogg.js, flac.js, alac.js... none of them, as far as I remember.

So actually in the owncloud music app we just downloaded the built js files from the demo site :-p

Will be interesting to see how this compares with http://ampache.org/ which, while great, still hasn't solved the mobile access problem.

Ampaches inability to handle like named Albums (https://github.com/ampache/ampache/issues/807) was my reason to drop it and start Roadie https://github.com/sphildreth/roadie

Ampache Providor + Just Player works on mobile for me. It's not a great solution, but it gets the job done.

Tried hacking on a mobile skin last week and gave up. Cherry music is very minimal but works on mobile.

Enable the Subsonic API[1] and use DSub[2]. Work amazingly well. Not sure if you're not on Android, although I imagine there must be a decent subsonic client for most mobile platforms.

[1] https://github.com/ampache/ampache/wiki/API#subsonic-api

[2] https://github.com/daneren2005/Subsonic

The yellow on that homepage is painful.

It would be okay without the orange logo and glow above it IMO.

This looks great, could you please integrate youtube and soundcloud search for streaming?

EDIT: https://github.com/embedly/player.js may save you some time!

I also built something similar, however instead of ripping of Spotify UI, which I personally find terrible, I made a "power user" UI that is album-centric (they way I listen to music), keyboard navigable and has a powerful filtering "omnibar". Check it out at: https://github.com/knoopx/headbang

Was excited to see this, I did hit a lot of composer and npm problems (as I somewhat expected) here's hoping the bug reports I've filed can be easily resolved. At the moment I'm using groovebasin but that needs some serious improvement around it's installation dependencies.

I've been looking through online playlist servers and wondering: Why shouldn't I host something like this as a static website? After looking around and not finding any tool that generates this, I'm considering making it myself, shouldn't be too hard.

I don't really need any features that require server-side processing, and static hosting would essentially reduce the cost to zero, for the amount of storage and bandwidth I would make of it (as well as possibly making it a bit faster).

I guess it's persistence.

You want to remember playlists across machines? no longer static You want to modify song info / update cover art? no longer static

But gosh a static music player would be incredibly fast. Put it up on gh-pages and watch it fly!

Create playlists as machine readable, version them, inject them into IPFS [1] for public consumption.

[1] https://ipfs.io/

You have a very good idea there. Generate json files with music files metadata and you are well on your way.

This is awesome! I'm gonna set up my R-Pi at home to run this and merge my brother's and my music libraries. Thanks for this!

Holy, cow! I was working on a node-webkit/cordova angularJS app very similar to this until I got bored of angular. It pulls music from Soundcloud and YouTube.

Here's a screenshot if anyone's interested http://i.imgur.com/uSBNSeE.png

I'm working on an insanely similar project, also in angular, except mine's exclusively backed by youtube. Interesting how many similar projects pop up like this.

I did some googling a while back and saw some very similar. Same stack even. I've on multiple occasions seen ideas I've had created in the same exact stack I'm using. I probably have even seen your project, I'm thinking of open-sourcing mine since it's not being used at the moment but it's a tad-bit incomplete.

for a node.js based Google Play Music clone (with android sync application included) + youtube downloading built in (with playlists) + soundcloud downloading built in (with playlists) see my project Node Music Player: https://github.com/benkaiser/node-music-player

I've been working on it for the last few years with a few pull requests from awesome members of the community and I'm about to launch auto-generated mixes that allow you to explore music in a way similar to Google Play Music and Spotify (using lastfm api and youtube: here's the module for it https://www.npmjs.com/package/similar-songs )

I also started a project on my own; mostly to accommodate my 80k music collection and partly to get better with Python: https://github.com/sphildreth/roadie

One of the features I've long sought after has been multiroom streaming (ala Sonos)

There's https://en.wikipedia.org/wiki/Logitech_Media_Server .

You can use a headless client called softsqueeze (eg raspberry pi). The source media is actually streamed and the clients have to decode it. The protocol handles multi-room sync which I haven't seen elsewhere.

There's also an abandoned implementation of the server in python (LMS is perl) on sourceforge somewhere.

I've solved this in my house and a friends house with a bunch of Airport Expresses and a multi channel amplifier.

1 Airport Express for each zone - I have 3 currently - Patio, 1st floor, 2nd floor. (installed 6 in my friends house)

Each "zone" is a named Airplay point on each Airport Express

Airport Express connects to the multi channel amp via headphone > RCA left / right > RCA left right to 1 RCA

Then the amp is hard wired to each in wall speaker.

iOS devices can only stream to 1 Airplay point at a time but iTunes / OS X can stream to multiple at a time.

So the wife or I could be cooking in the kitchen, listening to 1 stream and the party can be outside on the patio listening to another stream

Not cheap at $100 (ish) per Airport Express + amp + speakers but by far cheaper then Sonos and their in wall speakers - not book shelf so theres no clutter.

It's cool to stream from iTunes and fill the entire house with 1 synced stream.

I believe the new Chromecast Audio is the cheapest solution here.. They have even added support for setting up zones. But if you insist on using iTunes i guess it's not an option for you.

Oh hey, thanks for that bit of info. I somehow missed the new multi-room "groups" feature and that's something I've been waiting for.

I've only got a single CC Audio at the moment (and one of the original video ones) but I was waiting for them to add this feature before buying more. I've actually wanted this feature since the original CC came out and when they announced the CC Audio I was worried that it would take forever to add the multi-cast capabilities.

Now instead of investing hundreds in a Sonos system I can grab a few $35 receivers and turn every set of random powered PC speakers and shelf system/boom box with an aux-input into an endpoint for audio. And if I want better sound I can always pick up a nicer set of powered speakers and do the same but as cheap as PC speakers can be (I often see them for $5-10 at Goodwill) it's got the potential to add audio to any room for very little cost.

Linux has had network audio support in various forms for a long time.

The default sound server for most distros (PulseAudio) supports TCP or RTP streaming. RTP supports multicast (and multiple multicast groups so you can break down your endpoints into multiple groups).

If you want airplay streaming, then there's shairport-sync ( https://github.com/mikebrady/shairport-sync ) that also has multi-room support; each room can map to an ALSA target (which could be a virtual PulseAudio device pointing to a network target). Reportedly (at least when I last checked a few years back) there were some issues experienced compiling with PulseAudio - alternatively you could just run shairport-sync and native ALSA on each of your targets.

Just add a few Raspberry Pis, (and maybe some dedicated DAC boards if you're bothered about sound quality) and you're good to go.

Shairport-sync is a great project and works really well on the raspberry pi. However, a Chromecast audio may still be be a slightly cheaper and easier solution.

Depending on how much work you want to put into it, I believe MPD can solve this via multiple outputs. I use it to follow me from room to room.

Groove Basin (http://groovebasin.com/) has a feature like that. I haven't tested multiroom in the same place, but have used it to stream at home from the office server for example.

This is interesting, but how would it compare against something like Plex (that handles video and transcoding as well as music, but not open source) or Boombox (just music and also open source).

Docker image for y'all incoming...



oh my god yes thank you, i've wanted this exact piece of software for so long, and just was too lazy to program it myself. this is EXACTLY what i wanted.

I wonder if one could drop Koel on a webserver and use a cloud service like Box.com, Dropbox, Google Drive/Nearline to serve the MP3 files?

Plex is also very good alternative to Spotify, if you share your server on public IP.

I find it pretty trash for discovery and things like playlists. I have 368 artists of stuff and it's quite unwieldly. Looking at Koel now.

I don't use playlist, grouping by artist/album is pretty much what I need, so it works for me :)

If this lets you cache music locally, it will replace iTunes for me.

Does it have 30 million tracks?

An acquaintance recently counted up their list of mp3 downloads and had ~150,000 songs, representing 15 years worth of downloading and a relatively narrow music interest spectrum.

I imagine that it is easier to auto download all the new releases from your favorite genres than it is to try to download everything from all release dates from all the genres that you don't even enjoy.

No, but The Pirate Bay does.

iTunes has a catalog of 26 million songs which represents probably around 100Tb of data

Imagine a future where you can fit 100Tb on an iPod and never have to stream again.

By the time we get to 100TB iPods, we'll probably have a million-odd TB of musicians to listen to... :-)

Imagine a future where you don't have to because we have a strong 5G network and mobile providers that don't price gouge per GB... we can dream...

I'd rather just carry >1TB of flash storage around with me, with all of the content stored web addressable (so it could be served back to the net if needed).


Unfortunately even if it did, it's unlikely to have the subset of music a lot of us listen to.

For example I listen to a lot of music from Japan and a lot of smaller artists who aren't a part of the big labels.

As such I have a few thousand tracks that make up most of my listening time and aren't at all available on Google Play Music, Apple Music or Spotify.

Subsonic is a similar project, and has a mature ecosystem of client apps. (Added bonus: no PHP.)

Great minds discuss the product, small minds belittle the language it was written in.

It is fair to discuss the language of an open source project in a technical leaning forum.

Yeah, but this discussion was not very fruitful. Just language-bashing.

I agree. PHP isn't as sexy as node.js or rails. Though the project is using PHP 5.5.9, composer and the Laravel framework. It seems like author is making an effort to make good PHP code. The only thing he could have done to make the code base cooler for PHP was to use HHVM.

I'm not sure this is a saying

I use subsonic and like it a lot. However, it could use a webinterface update.

The default is old and ugly, but works very well. Jamstash (another web interface) looks nice but doesn't work well.

> (Added bonus: no PHP.)

It uses Java, a pile of (insert swear word) so high that nothing comes close.


There's a lot of high-performance, widely used PHP projects: MediaWiki, Drupal (to a certain degree though), Wordpress, Facebook...

Now let's take a look at some popular Java apps: Eclipse, SAP's frontend, Lotus Notes, Atlassian JIRA/Confluence, JDownloader... recognize the pattern of slowness?

PHP might have been designed by monkeys (and many of the early design mistakes are gone by now, anyway!), but at least PHP kept the 10-abstraction-layers-minimum monkeys away. Also, a PHP web (or CLI, or GUI) app will in most cases eat far less RAM than a Java app of same functionality.

Also, PHP projects are far faster to develop because the intermediate step of compiling is removed, and it's far easier (and faster) to deploy PHP projects than a Java web app.

Edit: did some quick measurement on a RPi 1, java hello world vs PHP hello world vs C hello world:

javac takes 16.8s wall time, 28MB peak RSS. Running the program itself is 1.99s wall time, 13MB peak RSS.

PHP in contrast is a single process with 0.7s wall time, 14MB peak RSS.

C takes 1.24s wall time for the compile, 15MB peak RSS. The resulting program takes 0.01s wall time, 1MB peak RSS.

Versions are openjdk 7u91-2.6.3-1+rpi1, php 5.6.14+dfsg-1+b1 and gcc 5.2.1-23+rpi1.

That compile time of javac is simply... wtf.

Simply not true: "modern" PHP apps, usually built with Symfony or Laravel, might appear simple from their controllers, but their abstraction stack is just as huge as Spring's. Just take some time to read Symfony's HTTP code. Or step-debug one from the first point in the first controller and see how many layers of abstraction you have before the actual application code.

Indeed, but in PHP it is at least possible to not use the performance sucker parts of the frameworks.

Java? Not so much.

Well, Symfony's Security component is actually based on Java Spring. It says so in the readme :)

The biggest hits to performance however seem to stem from components that you can happily do without -- annotation magic for example, and the Doctrine ORM.

Doctrine may be a complex beast, but it is so dead easy to use... I believe it's worth the performance hit.

> There's a lot of high-performance, widely used PHP projects: MediaWiki, Drupal (to a certain degree though), Wordpress, Facebook...

Facebook had to develop their own PHP-to-C++ transpiler to achieve something vaguely resembling useful performance. I wouldn't quote that as positive example…

Facebook also has 968 Million daily active users.

I just don't understand PHP bashers always using Facebook as a metric to bash PHP. "Oh PHP is so horrible, the second (sometimes even first ranked) most visited site on the internet had to write their own PHP-to-C++ transpiler to handle the load. Clearly PHP isn't a good choice for my 3 user site! I need that performance!"

Get over yourselves already. Every language has it's strengths and weaknesses.

Why so defensive? I'm just saying Facebook is not a good example. Of course there's fast PHP software – for example, all I wrote. ;-)

Because elitest attitudes garner idiotic responses and I'm sick of them.

Yes, Facebook had to write their own interpreter, but you also know what? Facebook also actively helps the PHP community and is ushering the community too. So anything Facebook creates they open source and PHP7 has taken cues from them. The whole net benefits from it.

Not to mention the next biggest website that is powered by PHP is Wikipedia, whom uses stock PHP to serve their sites.

Facebook has so much interactions and that, that they warrant the need for what they did. 99.9999% of most people don't need that. Not even Wikipedia. They just render a html page. Done.

Of which PHP 7 now equals/ surpasses in performance in a lot of areas.

Java is used in the back end of several high performance web applications as well. Twitter uses JVM and so does The Guardian, for example. Not sure what your point is.

Your criticism of Java for being slow is 1) very 2006 and 2) incorrectly based on desktop apps which require JVM restart and warmup time before they get going.

Put Java on the server and see the speeds. Using spark as your web framework, it's possible to achieve rates of over 40k requests per second ( I've seen claims of 160k requests per second after sufficient JVM warmup).

You are right about the slowness, that's not exactly the point I wanted to make.

Anyway, calling wordpress or drupal "high performance" is a joke.

Citation needed, my friend..

As part of my day job we regularly deploy Wordpress sites that efficiently handle hundreds of thousands of page views per day (and yes I realize that's not HUGE but it's not trivial either) and we do it on cheap hardware that would barely run the stock JVM, let alone an actual Java app server.

"High performance" is relative to your costs & needs, and it's all about using the right tool for the job. If you know how to configure and optimize PHP applications properly, you can make them extremely performant.

Either way, it seems you're arbitrarily ignoring whole classes of apps or languages because of some outdated bias (that i bet you just accepted from others and never tested yourself), so you're obviously not interested in an objective discussion.

> cheap hardware that would barely run the stock JVM

I run two stock JVM instances and Redis on a $10 DO VPS that serves ~700k pageviews per day

> arbitrarily ignoring whole classes of apps or languages because of some outdated bias (that i bet you just accepted from others and never tested yourself)


Point taken on my rather glib final statement there. I deserved that..

I'll admit that my experience with Java web apps was never against bare JVMs, but against app servers (Liferay, etc). How common is it for people to roll their own no-framework bare web apps in Java?

Dropwizard and similar micro-frameworks are getting more popular. It's been several years since I ran a Java web application on an application server, and that was an application I was tasked with decommissioning.

In case you're not familiar with it, Dropwizard is a collection of libraries packaged up with some conventions and glue; it uses Jetty to serve HTTP and also integrates Jersey and Jackson (RESTful routing and JSON encoding) so that you don't have to do it yourself.

I, too, can put nginx microcaching in front of anything.

Why would I need that? It's not like I'm running Wordpress or something. haaaaaaaaaa (I'm so sorry)

> Anyway, calling wordpress or drupal "high performance" is a joke.

Well, these two platforms are by far the leader in the CMS space. It's either usability, ease of administration or speed that keeps people using WP/Drupal over alternatives in other languages/frameworks.

Seeing it from the point of view of a company with a few hundred Wordpress deployments: Definitely usability (if you want laypersons to be able to author content, there's little competition), largely availability of plugins, a bit ease of administration (it's getting better), but definitely not speed. Wordpress is so mindbogglingly slow that we have to use excessive amounts of caching for anything even remotely resembling medium traffic.

Honest question: do you not consider caching to be a normal part of a dynamic web application?

I've never worked with a CMS or web app - in any language - that didn't include caching as a core part of the performance layer once it reaches a certain amount of load..

I'm sure it's possible, with enough money to throw at hardware, to scale without it, but why would you? Caching is a completely valid optimization approach in my view..

> Honest question: do you not consider caching to be a normal part of a dynamic web application?

We should not be needing bare metal servers with 4 GHz CPUs to serve a non-interactive site with ~4000 visitors a day. Yet, without full-page caching (i.e., bypass Wordpress/PHP entirely and serve .html files straight from nginx), the servers would melt under the load.

Rendering twenty images and forty text fields out of database should not take several seconds on a modern server. Yet, Wordpress has no problems taking a dozen seconds even under light load conditions – mind you, that's time purely spent in PHP, for rendering, not on the database.

Wow.. So I work with Wordpress on a day to day basis as well and we don't see anything like this.. We have pretty DB-heavy sites (lots of ACF Pro fields and lots of relationships) and we're handling bigger loads than that, on much smaller virtual hardware..

I'm not making any specific value statement about your setup here, I'm just surprised by what you're seeing on your end.

It could just as well be our ACF+CPT fuckery that leads to this – I'm not that involved in the actual application side of things; I just provision the hardware and OS stack.

Still, we're usually seeing a lot better performance with everything that's not wordpress – be it our in-house PHP framework, or node, Rails or Python apps.

I guess it's a lack of opcache plus no SSD and no mysql tuning. Debian/Ubuntu defaults are not really nice.

Sidenote: why doesn't the mysqld configure script suggest various performance levels upon setup, based on detected hardware (RAM, disk, CPU cores)?

Opcache is enabled, SSDs are in hardware raid and the whole time is spent inside PHP, MySQL finishes all queries after 0.02 seconds. The usual suspects are all dealt with.

Well Wordpress long came without any caching at all, dunno if that's changed by now. Drupal in contrast comes with its own DB caching.

Both can be plugged into memcache and friends, and if done right you can put in Cloudflare or other frontend caching systems in front.

Biggest performance +1, though, is enabling php opcache.

The answer to "what's the best language?" should not be "language X", but "what are you making?"

Once you've defined the requirements, restrictions, and personal abilities, only then you can have a meaningful discussion on what the "best" language is - and even then there is more than one answer.

Have you actually even looked at the source code for this project before you jumped in with the snark of it being written in PHP?

Having your own stash of pirated mp3 tracks is so 1997.

not at all, you mean more like 1999 at the earliest.

I certainly mean 1997. Early that year is when it took off. Winamp was released in April of that year. Before that there was some other Windows-based mp3 player with a super simplistic UI, the name of which I can't recall right now. I may or may not have had about a hundred tracks using up almost all of my hard drive space at the time.

You were just behind the curve. :)

Hah. Still, in 1997, the fact that some people had the capacity to have mp3 files on their computers doesn't mean much since even disorganized file-sharing wasn't all that common and there was little way for almost anyone to real gather substantial collections. 100 tracks is nothing, that's like a small stack of CDs.

I find it interesting that this is described as a Spotify clone. To me, Spotify is a large music library that I can pay a subscription to access, with advanced (arguably) discovery features. This on the other hand is a web based player and streaming server. I wouldn't describe them as the same at all.

Is this really how people view Spotify?

Edit: interestingly, the product itself doesn't mention Spotify anywhere.

Spotify is: a library, a streaming service, and a web/desktop player. This is: a streaming service and a web player. You have to provide your own library, which I think goes hand in hand with self-hosted.

Spotify is all about Music Discovery. It is:

1. a music recommendation engine

2. social sharing of playlists

3. a music subscription service

To me, those are more important than the player itself -- in fact, I'd say #2 and #3 on that list are the defining aspects of Spotify for the general user, where #1 is more of a personal killer-feature for me.

Spotify is "all about" whatever you use it for. As someone who does not share playlists nor use the sub-par radio feature, it certainly isn't about music discovery for me.

Do you use it for its player, or its cloud library?

Music subscription was on my list. But, if you already have all the songs you'd listen to, and don't care for finding new music, what do you use it for?

I do care for finding new music, I just don't do it through Spotify. I do play that new music through Spotify, however.

Spotify radio is the worst recommendation system I've ever used in any software product ever.It's just that bad and my music tastes are not really esoteric. Do you have any suggestions for music discovery?

I mostly follow labels of albums I already like.

The main way I do music discovery on Spotify is looking at the "Appears on" section under artists I like. A lot of these are compilations and mixtapes. They've been curated by a person and actually released, so you can get quality, real variety, and real similarity (of taste).


Nothing will ever beat the accessibility of What.CD for me.

If you already have all the songs you'd listen to, you won't be using Spotify. My use of Spotify has historically been about listening to music I love without having to purchase/download it myself. That's plenty incentive without any of the social/discovery aspects.

The way I use Spotify is I just use the "saved albums" feature, plus offline caching. This is how I like music: as objects called albums, which I "have" so I can browse and play them easily.

I feel like most music systems, Spotify too, does a kind of violence to the album structure, with all their playlists and shuffling and whatnot. The very idea of "streaming" is vaguely antithetical to the album structure and to the idea of possessing discrete artifacts... If I designed the perfect music player for me, it would almost be a kind of simulator of a record collection with a record player.

Anyway, I am also completely uninterested in Spotify's "social" features. I think their metadata interface is pretty poor and their "Related Artists" is totally haphazard compared to the actual musical knowledge embedded in databases like AllMusicGuide (which I adore).

I also get irrationally upset about Spotify's prominent display of what I call lifestyle propaganda, like their playlists of the day like "Saturday Beach Party Bonanza" or "Yoga Morning Zen Relaxathon" or whatever. (For some reason I never see "Technical Death Metal Tuesday" or "Zappaesque Hell Jazz Extravaganza" or "Lonely Bong Haze Headphone Friday".)

So I dream of a music player with another type of appeal, more album orientation, more facts and knowledge based relational metadata, and better catalogue curation (Spotify's artist pages are overloaded and unorganized and the metadata for classical and jazz especially are messy).

I've started to write this media player a few times, but get distracted.

A digital music manager should be at least as good as a physical shelf of albums that you sort, browse, and select; otherwise what's the point? No digital music player has accomplished even that.

Some enhancements a digital album-centric manager would provide over physical items on shelves are: searching and sorting via metadata, putting albums in multiple "Shelves", and tracking listening statistics (not as an aggregate of track statistics, but at the album-level).

My would-be media manager also supports "Mixtapes" (like playlists, except in set order and ideally with a length limit) which can be placed on Shelves alongside released Albums. Similarly, long "Live Recordings" have first-class status like Albums and Mixtapes and can be put on Shelves (even though they may be a single "track"/file). Finally, dynamic playlists of tracks are replaced by "Dynamic Shelves" of Albums/Mixtapes/Recordings, so you can quickly get to your recent-most-played or highly-played-you-haven't-played-recently, but always as sets of songs that should be listened to together, in order.

You're mostly right, but the streaming service is useful, too, even if you have all the songs you listen to somewhere. That's particularly relevant considering the OP.

Yeah, that's fair. When you self-host, you obviously also miss out on the social aspects, which includes music recommendation, unless you use a third-party service.

p.s. Do you really find that Spotify's music discovery is better than last.fm + curated reviews? New Releases could be a differentiator if they would at least offer a filter for full albums (not to mention filters by genre or "recommended for you").

I don't know if it's better, but it's easy. I rarely look at my last.fm scrobbles. For me it's about hearing a variety of good music while I'm banging out code, driving, or gaming. I sometimes use last.fm and hypemachine to dig deeper but there are many more steps involved to get to hearing music that way. With Spotify, I get to be lazy.

Discover Weekly has been great. Shared playlists are great too. As for radios, they were OK when I first threw my music at them, but now I just hear the same old stuff.

Re: 1. -- I find the recommendation engine ABHORRENT.

Disclaimer -- I have only recently started to use Spotify on a daily basis. And typically I am playing an already known-good-to-me Artist channel, and I am admittedly a newbie to using spotify in general.

With that said though, there was some feature, I believe it was called "discover music while you listen" or some such thing that would play some other artists amongst that which I chose to shuffle/play.

The genres werent even in the same galaxy!

I listen to EDM and industrial almost exclusively. It was interjecting Taylor swift, some country-sounding stuff and some other stuff that I couldnt identify but was the complete opposite of the spectrum from what I was into...

Further, finding a particular song that has the same word in the title as some song that is being heavily pushed seems impossible.

There is some band called TOVE LO -- and any time I search for a song actually titled "habits" not by them - the only thing it shows me is this TOVE LO page...

so, yeah - my experience with their recommendations has been worse than sub par.

I found 3 different "Habits" songs relatively easily. Are you sure it was Taylor Swift? Or just Taylor Swift-esque? Because she has relatively-famously not allowed her music on the platform.

I would recommend giving Spotify another shot, maybe spend some time favoriting and saving songs you do like, as it's recommendations have been on point for me.

I was looking for "Maria Mena, Habits" and various remixes...

Maybe she isnt on Spotify... But ill give it a try...

> I'd say #2 and #3 on that list are the defining aspects of Spotify for the general user

I agree. I think most users find it very difficult to differentiate between features, so Spotify is 1, 2 and 3 all together. This is a sad state of affairs, because it means users are far less able to choose a product or service that solves the problems they actually have.

I agree. In fact Spotify is kind of a shitty music player, but is so good at the other stuff that I love it.

I use it to play songs I already know and like. Its radio service is worse than Pandora, and I don't care to socialize music via the app - my friends and I use our voices.

I /do/, however, have a large music library for which a web player/library would be awesome.

last.fm has a much better recommendation system.

Indeed. This is how I describe Subsonic to people as well. In fact there's quite a few of these solutions out there: Subsonic (and clones, eg Madsonic), Plex, Ampache, PlayOn, mpd (which has a plethora of supported web frontends). A lot of standalone players also support web frontends too, eg VLC. So it's quite an established market this is joining - which is great for us given the variety of choices we have available to us.

I think it's more about the UI - which looks near-identical to Spotify's.

Earlier Spotify desktop client was a state of art. 2 megabytes, every function works seamlessly.

It's developed by the same author of original uTorrent, Ludvig Strigeu.

Nowadays, Spotify kinda bloats with cef and funny feeling HTML5 UI.

Trivia: Ludvig Strigeus also developed Spotiamp http://news.spotify.com/us/2013/12/20/spotiamp-long-live-the...

I loved the old client, I want it back as much I want my deceased mother come back to life, I really loved that program. It worked so smooth on my crappy laptop I had before.

That's... a disturbingly strong statement! I'm sorry for your loss, and I really want to try this old client now.

> I loved the old client, I want it back as much I want my deceased mother come back to life, I really loved that program.

Holy crap, that is quite a claim!

Yes! I remember when they introduced new client. I was less than impressed. I think the new one is built on chromium or at least uses it partially as base.

uT was a good client, but it pales in comparison to his other project, OpenTTD.

Actually all he really* did for OpenTTD was disassemble the original TTD into C, which became the first version of OpenTTD. He left in the early 0.x stages of OpenTTD.

*Ok it's still an epic task :)

Wow, TIL that the same guy wrote uTorrent, Spotify and OpenTTD. His Wikipedia page informs me he was behind ScummVM as well! That's an impressive portfolio.

Very interesting! OpenTTD is truly great, and a program that I will always remember for giving me a crick in the neck whilst playing on it all weekend (on a tiny netbook).

I always hated the Spotify UI. Now if someone could clone Rdio now that its on its way out. Then I'd be interested.

Yeah, Spotify and Tidal have terrible Uis. I'm testing deezer now and I find it a lot better.

I've been waiting to try Deezer here in the US forever. Its still not available here. Which sort of blows my mind at this point with all of the competition here. Now that Rdio is ending. I may just do the trial via a VPN just to test it out.

At the moment I have been using Tidal on a trial and I just keep finding so many small features I miss from Rdio. The only thing I like about Tidal is the Lossless option.

The lossless option is nice but to be honest I had a lot of streaming issues with Tidal. For example, if I paused a track and walked away for 10 minutes and resumed it would hang and wouldn't pick the stream back up. I had to restart the track from the beginning (this is using the desktop app).

I'm in Canada so I didn't realize Deezer wasn't available in the USA.

Yes, I have had those issues with Tidal as well. I was listening to an album the other day and it just sort of froze at the end of the track. Very odd.

As far as I know. Deezer is available almost everywhere except the US and Japan. I hope they figure it out soon. I"m glad to hear that you like it.

It's a visual clone.

Without saying that it's a Spotify clone, marketing the product will take the devs a lot more effort.

I do think getting the rights to stream is slighly more difficult than getting this to run for a newbie coder

If one is streaming (legally owned) music for their own (and only their own) personal use, would that even matter?

>interestingly, the product itself doesn't mention Spotify anywhere.

The wiki page does mention the spotify inspiration, though.

>Using the client component of Koel is dead simple. If you’ve ever used Spotify, you should feel right at home. As a matter of fact, Koel’s client interface is a shameless rip-off of Spotify’s.

I agree. This is like producing a clone of the Google homepage with another logo, and sleeker textbox, and saying "This is a Google clone!"

Does your Google clone also include the search infrastructure behind it (in the same way as this project includes a streaming server)? Because then yeah, it is a Google clone. And just like this Spotify clone, the data stored in that infrastructure would be your own, not Google's.

Yes it does. But it has 0 pages indexed.

I definitely agree - in fact, the Spotify player itself was the main reason I switched to Google Play Music. I hated the interface.

BTW, I seeked for an open source clone of Spotify GUI. Maybe I can take this can translate the integration with Spotify?

The project looks cool, however, I find using 'Spotify' in the title very very clickbaity. It's just a music streaming service + player. There's nothing wrong with that, I am not saying that the project sucks or anything, it's just uncool to use a popular brand to attract clicks and call it a clone when it's something totally different.

It's like calling VLC self-hosted netflix clone.

We changed the title from "Self-Hosted Spotify Clone", which was arguably both misleading and baity. Since the original title was neither of those, the submitter should have used it:


    > It's like calling VLC self-hosted netflix clone.
Only with a VLC skin to make it look like Netflix. And even then, what about library browsing? They're fundamentally different. Netflix recommendations are awful, but they do exist.

> Netflix recommendations are awful, but they do exist.

That's odd, they were amazing to me for about 2-3 years :) but that's one of the things that probably varies a lot from person to person because of different preferences, different availability based on region, etc.

The problem I have with Netflix recommendations is that while they understand genres, they're not good at recommending good shows.

Since I've watched Archer and Arrested Development, Netflix thinks I'd like every mediocre comedy show, since I've watched Sherlock and Luther, it thinks I'd like mediocre non-serialized detective shows, and anything made by the BBC. Watching all of BSG (which isn't even on Netflix anymore, RIP) has given me a permanent section of terrible sci-fi recommendations.

It recommends me things that it expects me to rate (as in, when it guesses your rating with red stars) less than 3/5.

It also recommends me kids shows and cartoons, despite my painstaking completion of the huge preferences list, and many ratings/"not interested"s that clearly state I "never" watch cartoons or kids shows.

Surprised it wasn't "Spotify killer" - now that's clickbait

I mean, I think clone is the polite way of describing how this looks.

Weird that everyone is nitpicking the HN submission title. Using the word clone is just an honest admission that the UI design is ripped off. It's fairly obvious that a "self-hosted Spotify clone" would require you to bring your own music.

Everyone always nitpicks the title, because titles are the bikesheds of HN: it's easy to have something to say.

Stop making sense.

I wish that people would write stuff like this in languages other than PHP.


Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact