
Show HN: CloudTunes - jkbr
https://github.com/jakubroztocil/cloudtunes
======
MeoMix420
Hey,

This is really nice. Would you mind chatting with me sometime? I'd love to
pick your brain or even just converse with someone who has similar interests.
I've spent the past two years developing Streamus,
[https://streamus.com/](https://streamus.com/), an open-source music player
which runs off of YouTube as a browser extension; it has 130,000 users
currently.

Hit me up if you want to chat! admin@streamus.com and if you'd like to browse
the repo,
[https://github.com/MeoMix/StreamusChromeExtension](https://github.com/MeoMix/StreamusChromeExtension)

~~~
lips
Holy cow. Streamus is a dreamus. I'm really digging this.

------
squeaky-clean
Really cool idea. Who hasn't thought of doing this before? Congrats on
actually making it, and making it look beautiful. Already forked it, can't
wait to start playing with it.

I don't see any mobile screenshots, how does it look on a phone screen? I can
imagine that being a great use-case for this app.

~~~
rakoo
Congrats on the design, but it's sad to see that once again, the wheel has
been reinvented: there once was playdar [0], the content resolver that clearly
separated the data that was of interest to the user (artist, song, ...) and
the actual sources. Its biggest problem was, I believe, that it wasn't an
actual music player.

Its gentle folks decided to restart from scratch with a music player in mind,
and keep the idea of having different resolvers to target different sources,
such as local disk, youtube, spotify, radioshark, ... Really, if you know
javascript, you can write a resolver targetting the platform of your choice.
The end result is Tomahawk [1] and if you're interested in that you should
have a look.

Maybe it didn't spread because it's not a webapp ?

[0] [http://www.playdar.org/](http://www.playdar.org/)

[1] [http://www.tomahawk-player.org/](http://www.tomahawk-player.org/)

~~~
squeaky-clean
>Maybe it didn't spread because it's not a webapp ?

I think this is it. I remember checking out Tomahawk a while ago, about the
time Songbird announced it was discontinuing development. I ended up just
going back to iTunes because it did all I needed (even if it is bloated). If I
can install Tomahawk on a computer, I can probably install my music library
onto it as well, so I don't need the resolving features it has.

I actually just tried installing Tomahawk because of your comment, and it does
work very well, and looks pretty while doing it. It was able to find several
obscure artists with perfect accuracy. (Though it did grab most of them from
Soundcloud at 128kb/s, when a few of them are on Spotify with higher
bitrates). But unless I can access it anywhere, with a moment's notice, I
don't really have a purpose for it being installed on a machine.

I rarely even listen to music on my computer anymore. I use my phone for
Spotify on the go and even at work. It's nice to not have another program
running while I'm working. But a lot of artists I like aren't on Spotify, and
my phone doesn't have enough storage to fit my entire library.

That's why this interests me so much. I would love to set up a server where I
can open the URL on my phone, laptop, friend's laptop, etc, be able to play
most of my music through web services, and the artists that aren't on those
services would play from my server directly, or my DropBox, or whatever, and
hopefully it can all be a seamless experience.

~~~
lorenzhs
If you want a real surprise as to Tomahawk's design, grab a recent nightly.
Looks fantastic now.

Also, an Android app for Tomahawk is in the works!

------
toomuchtodo
Could this support playing music from S3 and storing/reading metadata as S3
headers? I currently store about 200GB of music in Amazon Cloudplayer, which
has recently gone sideways with their push towards Music Prime. I'm currently
ripping all my music out and putting it into S3.

~~~
RexRollman
That's the problem with the main Music Lockers: they keep integrating music
stores into them. All I want is to upload my music and play it remotely.

~~~
dublinben
You can run Subsonic on your own server or a VPS.

~~~
RexRollman
Thanks for the info. I never really considered running my own but that might
be worth doing.

~~~
stoplight
There's also a really great Android app called DSub that integrates really
well with it
([https://play.google.com/store/apps/details?id=github.daneren...](https://play.google.com/store/apps/details?id=github.daneren2005.dsub))

~~~
vincentkriek
Is it better than the "Subsonic" Android app [1]? Just looking at the
screenshots of DSub is that it doesn't look as good as the Subsonic Android
app.

------
Sir_Cmpwn
I once wrote a simple web-based multiplayer music player to test out my roll-
your-own web framework:

[https://github.com/SirCmpwn/staccato](https://github.com/SirCmpwn/staccato)

You might consider a jukebox mode where several listeners are synced up and
can suggest songs.

~~~
suprjami
More shameless self-promotion:

[https://github.com/superjamie/playlist-
generator](https://github.com/superjamie/playlist-generator)

It's just a PHP file lister and audiojs, but it works on pretty much every
modern desktop and mobile platform.

------
Grandeon87
Could I integrate this with my server _cough_ seedbox _cough_

~~~
dewey
It's probably easier to use Subsonic for that, it's build for dealing with
local files.

[0] [http://www.subsonic.org/](http://www.subsonic.org/)

~~~
xzel
I've tried to use subsonic and madsonic (a fork of subsonic) before. I didn't
like either of them much nor did I like the phone apps to accompany them (many
are paid apps as well). I'm gonna look at this project tomorrow and see if I
want to undertake a server port. I think it would be viable.

~~~
dewey
Agreed, the mobile apps are mostly ugly or abandoned and the server software
itself still uses a flash player. It's just something I put up with because
there's no better alternative at the moment.

~~~
xzel
I'll see what I can do about it ;) I just found this from some of the comments
above [http://ampache.org/](http://ampache.org/). I'm gonna install that and
see how it is, but I really think I'm going to move forward with trying to
integrate this with a seedbox type of server. Since the client is done in JS
as well it could be practical to port that to Android and iPhone also.

~~~
dewey
Sounds good, I'll be watching the repo. If you need someone to test it on a
server with a bunch of music on it let me know.

------
reubano
Wow, really cool. Since you're already using brunch [1]. You should checkout
chaplin [2]. It's a backbone framework built by the same guys who made brunch.
It supports coffescript, pub/sub, dynamic url construction, plus a bunch of
other features that make working with it a breeze.

[1] [http://brunch.io/](http://brunch.io/) [2]
[http://chaplinjs.org/](http://chaplinjs.org/)

~~~
jkbr
Thanks for the tip. I actually did originally start with Chaplin. It helped me
to start quickly, but later I replaced it with a very simple, custom Backbone-
based MVC (Chaplin-inspired to some degree).

~~~
reubano
Interesting... you mind explaining the reason for switching? If it was missing
functionality, I'm sure the team would appreciate pull requests. I'm often
dismayed that angular is grabbing all the spotlight these days and not many
new web apps use backbone in general or chaplin in particular.

~~~
jkbr
There is a tradeoff between speed of development and degree of customizability
when it comes to frameworks. With CloudTunes, I was going for a highly-
customized and performant UI, and at some point it simply became easier to go
back down by one layer of abstraction and build it just with Backbone instead.

------
jschmitz28
Really cool. At first glance it seems to me like there might be two
products/services here - one that is what you have here minus YouTube and
other publicly available media sources, and another centralized web app that
provides users access to all public media without having to run their own
server. Maybe they could be integrated in a way where users can add their own
media sources through the centralized web app to have it all in one place.

------
sinemetu11
CloudPlay is a similar app for Mac. It has pretty good shortcut integration.

[http://cloudplay.fm/](http://cloudplay.fm/)

~~~
zymhan
That doesn't seem to support music you already have though, which is a pretty
big feature of Cloud Tunes.

------
jamestomasino
I got banned from Dreamhost about 6 years ago for building something almost
identical to this for my own use. We've come a long way.

------
zz1
Would be great to have this interface for MPD!

~~~
jkbr
Oh, that's an interesting idea :)

------
pbreit
I've always thought it might be interesting to have apps like this that run
locally on web technologies. Is there hope for this model? One obviously
shortcoming as exemplified here is the painful installation process. I suspect
people are also going to be concerned with what's being installed where.

~~~
jkbr
I'd been planning on releasing it together with a Dockerfile so that people
could easily run it locally in an isolated container. It turned out to be a
bit more complex than I had anticipated so Docker support will come later. But
I think that could be a viable model for locally-installable web apps in the
future.

~~~
jkbr
Btw, help with the Dockerfile would be appreciated:

[https://github.com/jakubroztocil/cloudtunes/issues/2](https://github.com/jakubroztocil/cloudtunes/issues/2)

~~~
jkbr
Already dockerized!

[https://github.com/jakubroztocil/cloudtunes#with-
docker](https://github.com/jakubroztocil/cloudtunes#with-docker)

------
spindritf
What about music stored on the server on which CloudTunes is running? Can it
play that?

~~~
jkbr
That currently is not possible, but wouldn't be very difficult to implement as
I had it in mind from the beginning. Inspiration could be the Dropbox
integration:

Client-side model:

[https://github.com/jakubroztocil/cloudtunes/blob/master/clou...](https://github.com/jakubroztocil/cloudtunes/blob/master/cloudtunes-
webapp/app/models/media/sound.coffee#L53-57)

API endpoint: for local files, it could simply serve the file:

[https://github.com/jakubroztocil/cloudtunes/blob/master/clou...](https://github.com/jakubroztocil/cloudtunes/blob/master/cloudtunes-
server/cloudtunes/services/dropbox/handlers.py#L102-135)

Plus it would also need indexing, configuration, and to introduce a new media
type across the app.

~~~
__david__
Would it be hard to add support for a WebDAV backend? Looks like
XMLHttpRequest supports PROPFIND…

------
girvo
Nice work! I personally use ownCloud (which has Ampache support) for my
streaming of my library, but this is a really nice job. I might see how hard
it is to integrate into ownCloud :)

~~~
socceroos
Let me know how you go! I use ownCloud/Ampache too.

------
maz29
For anyone interested I made something similar for iOS. Supports Dropbox,
Google Drive, Mega, and Box. [http://vibe.pw/](http://vibe.pw/)

~~~
virmundi
For the love of possible users, put some sort of scrolling indicator on the
page. Firefox in OS X doesn't show scroll bar. I spend about a minute clicking
on the slant phone and the name in the top right before accidentally causing
the page to scroll down.

------
ertdfgcb
Oooh, this seems like a perfect app for sandstorm (sandstorm.io)

------
wj
With Dropbox upping their quotas I was literally thinking about this two days
ago!

I look forward to checking this out. Going to take me quite a while to finish
uploading my music though.

~~~
hnriot
better ensure it is indeed your music, because Dropbox will likely report
infringements of copyright

~~~
wj
Don't they only do that when placed in shared folders?

Some of my Dead could maybe cause a problem (though it was all once freely
available on archive.org).

~~~
meowface
Imagine the uproar if Dropbox started removing files from people's personal,
private folders due to alleged copyright infringement.

They could theoretically do this in a way that doesn't really invade privacy
(by using only hashes), but the controversy would probably kill Dropbox.

------
zend3v
I'm going to try and get this working with MEGA cloud storage, since you get a
50gb capacity account for free.

------
why-el
Very well done. Where can we see it running live? Your domain name redirects
back to Github.

~~~
jkbr
It's not running anywhere right now, sorry about that. That is because the app
is not really ready for public production use. As mentioned in the README,
I've kinda stopped working on it some time ago. I think it could still be
interesting/useful to people who want to run in even in this state by
themselves. The codebase also hopefully has some interesting bits, so I've at
least opened it up for now. Another thing is that the backend talks directly
to the Musicbrainz API, which is throttled (their DB is open though, so one
could make a web service on top of it).

------
hrrsn
How does this handle YouTube's advertising?

------
relaxitup
How about adding support for a seafile server?

------
Koldark
What about OneDrive and Google Drive support?

~~~
joelrunyon
These comments make sense from end-users but I feel like they're out of place
on HN. I mean, sure OneDrive & GoogleDrive support can obviously be
implemented down the road, but especially when first showing the idea off -
it's way easier to keep it simple and get feedback to improve the product and
then later integrate with more services.

These comments remind me of the few apps I've put out that start with an iOS
version so we can collect / data & feedback so we can make future versions (on
both platforms) better, but that info almost always gets shouted down by
chants of "why not an android version?" The obvious answer of "it costs 2x
time and resources" to get the first version out, almost always gets
completely ignored.

Let's give feedback on this version - help him improve it & then worry about
the other service integrations later.

~~~
scott_s
I think you're taking the question as a veiled criticism. It's possible the
question is just a question.

~~~
joelrunyon
I don't think it's criticism, it's just not the most useful question they
could be asking at this point in time. If he's showing off a new project - I
think it's probably best to help improve what he currently has now and then
worrying about the integrations later

~~~
scott_s
Consider the perspective of someone who has never heard of a new piece of
software before. They just want to know a bunch of things about it, so they
can form a concept of it in their mind. This is one such question.

I don't disagree with what the author's focus should be, but I don't think
that this question distracts from that.

~~~
Koldark
I am a developer, I haven't dug into how he was processing the audio. I was
simply asking a question. I don't use Dropbox so I was simply asking if it was
on the roadmap so I could try it in the future.

------
avinassh
amazing!

------
poncytwit
disappointed. Single-page app relies on flash technology.

~~~
jkbr
When I was working on the YouTube integration for CloudTunes (looong time
ago), there wasn't an HTML5 <video> based API. Is there one nowadays?

~~~
MeoMix420
YouTube now defaults to using the <video> element unless the video would show
an advertisement. In those scenarios, it falls back to using the flash player.

------
tuananh
sorry but what's the use case for this?

~~~
colinramsay
For one: you can play your music collection from any location if it's stored
on Dropbox?

~~~
mikewhy
isn't that kind of inherently possible due to the nature of Dropbox? Albeit
this has a proper UI.

Plex, for instance, does this and much more provided you have a collection
_not_ in a cloud.

~~~
aroch
Plex however relies on you either have 1) a good home connection (with no
caps) or 2) a server "in the cloud(tm)". Dropbox provides the backend hosting,
which makes providing the data files easier.

------
higherpurpose
Music in Dropbox? Who keeps music in DropBox's 2GB of free storage? (I'm
assuming market who pays for DropBox storage is a lot smaller)

~~~
Afforess
I dunno about you, but I have 18.13 GB of free storage with Dropbox. It wasn't
particularly hard to achieve, either.

~~~
hrrsn
According to Dropbox, I've earned 91.88 GB of free storage.

Of course I now pay for it, only for the packrat feature though.

