devsnd / cherrymusic

Stream your own music collection to all your devices! The easy to use free and open-source music streaming server.
http://www.fomori.org/cherrymusic
GNU General Public License v3.0
1.03k stars 187 forks source link

Announcements [developer] #283

Open tilboerner opened 11 years ago

tilboerner commented 11 years ago

This issue contains announcements relevant to CherryMusic development. Watch to stay in touch.

Please note that comments will be deleted after a short while, so current announcements stay at the top.

Thank you for your cooperation. :radio:


tilboerner commented 9 years ago

Moved conversation about Android client to #495.

devsnd commented 9 years ago

Hey everybody,

Since the issues are piling up, and CM isn't really in the state of easily adding new features, I have started to rewrite CM from scratch. But have no fear, the first step will be to reach feature parity with the current version and provide migrations for the playlists, users and configuration. I hope that it'll be possible to switch to the new version without changing any startup script or anything like that.

The new version will be built on top of django-restframework and AngularJS. Using those technologies should make it easier to implement new features in the future. I'll write-up some instructions on how to get the new version to work later, when it's a little more stable. For anyone interested, you can look into the rewrite branch.

The rewrite is currently able to index files, browse directories, stream music (which finally also supports seeking in transcoded streams!). I plan to implement a plugin system, so that other media sources should be possible (e.g. youtube or soundcloud tracks in the same playlist as regular files).

All this means that long standing issues like searchable meta-data, i18n and the like will be solved more easily.

rajesh-battala commented 9 years ago

Hi Tom Wallroth, Great to see you are rewriting. Is the rewriting is to address new design and architecture? In rewrite branch I didn't see cherrymusic folder. Am interested in testing or reading code in Stream Music part of server.

Thanks Rajesh Battala

On Mon, Jun 22, 2015 at 10:21 PM, Tom Wallroth notifications@github.com wrote:

Hey everybody,

Since the issues are piling up, and CM isn't really in the state of easily adding new features, I have started to rewrite CM from scratch. But have no fear, the first step will be to reach feature parity with the current version and provide migrations for the playlists, users and configuration. I hope that it'll be possible to switch to the new version without changing any startup script or anything like that.

The new version will be built on top of django-restframework and AngularJS. Using those technologies should make it easier to implement new features in the future. I'll write-up some instructions on how to get the new version to work later, when it's a little more stable. For anyone interested, you can look into the rewrite branch https://github.com/devsnd/cherrymusic/tree/rewrite.

The rewrite is currently able to index files, browse directories, stream music (which finally also supports seeking in transcoded streams!). I plan to implement a plugin system, so that other media sources should be possible (e.g. youtube or soundcloud tracks in the same playlist as regular files).

All this means that long standing issues like searchable meta-data, i18n and the like will be solved more easily.

— Reply to this email directly or view it on GitHub https://github.com/devsnd/cherrymusic/issues/283#issuecomment-114177110.

Thanks Rajesh Battala

devsnd commented 9 years ago

Hi Rajesh,

Sorry I seem to have forgotten to commit the most important part. It's now in the repository.

The streaming code has become quite simple now. As of now CM depends on ffmpeg to be installed for the streaming to work, but I'll make that an optional dependency later. The streaming itself is now just 10 lines of code, actually: api/views.py a function called stream. But the client is smarter about the streaming and can request any second of a file using the start_time parameter and always acts as if the whole file was already downloaded. See client/static/client/js/playback_service_jplayer.js. Anyway, I haven't started on recreating the content-negotiation to assure that the client is capable of playing any file given to it, while minimizing the load on the server (avoid transcoding if possible).

rajesh-battala commented 9 years ago

Tom Wallroth, That's an awesome change. will go through the code. I saw cherrymusic folder is added now.

Thanks Rajesh Battala

On Tue, Jun 23, 2015 at 12:03 AM, Tom Wallroth notifications@github.com wrote:

Hi Rajesh,

Sorry I seem to have forgotten to commit the most important part. It's now in the repository.

The streaming code has become quite simple now. As of now CM depends on ffmpeg to be installed for the streaming to work, but I'll make that an optional dependency later. The streaming itself is now just 10 lines of code, actually: api/views.py a function called stream. But the client is smarter about the streaming and can request any second of a file using the start_time parameter and always acts as if the whole file was already downloaded. See client/static/client/js/playback_service_jplayer.js. Anyway, I haven't started on recreating the content-negotiation to assure that the client is capable of playing any file given to it, while minimizing the load on the server (avoid transcoding if possible).

— Reply to this email directly or view it on GitHub https://github.com/devsnd/cherrymusic/issues/283#issuecomment-114209952.

Thanks Rajesh Battala

rajesh-battala commented 9 years ago

one more query. when client ask for to play a file. stream api will send the http path for the file to get played. can we have a param like when play is requested just play using the "clientid" instead of checking the session etc. this will be great to integrate with the Android Music Player.

Thanks Rajesh Battala

On Tue, Jun 23, 2015 at 1:57 PM, Rajesh Battala rajesh.battala@gmail.com wrote:

Tom Wallroth, That's an awesome change. will go through the code. I saw cherrymusic folder is added now.

Thanks Rajesh Battala

On Tue, Jun 23, 2015 at 12:03 AM, Tom Wallroth notifications@github.com wrote:

Hi Rajesh,

Sorry I seem to have forgotten to commit the most important part. It's now in the repository.

The streaming code has become quite simple now. As of now CM depends on ffmpeg to be installed for the streaming to work, but I'll make that an optional dependency later. The streaming itself is now just 10 lines of code, actually: api/views.py a function called stream. But the client is smarter about the streaming and can request any second of a file using the start_time parameter and always acts as if the whole file was already downloaded. See client/static/client/js/playback_service_jplayer.js. Anyway, I haven't started on recreating the content-negotiation to assure that the client is capable of playing any file given to it, while minimizing the load on the server (avoid transcoding if possible).

— Reply to this email directly or view it on GitHub https://github.com/devsnd/cherrymusic/issues/283#issuecomment-114209952 .

Thanks Rajesh Battala

Thanks Rajesh Battala

devsnd commented 9 years ago

Yes, there will be multiple ways of authentification. The chosen framework for the REST interface supports token authentification out of the box.

systems-rebooter commented 9 years ago

(which finally also supports seeking in transcoded streams!). I plan to implement a plugin system, so that other media sources should be possible (e.g. youtube or soundcloud tracks in the same playlist as regular files).

All this means that long standing issues like searchable meta-data, i18n and the like will be solved more easily.

This is H U G E !!! I'm voting up full support of low bitrate formats (i.e. opus / aac) I believe only tagging left to be implemented. But may be wrong

// Feel free to delete this comment to keep issue clean

pando85 commented 8 years ago

It's great to read about Django! I would like to contribute if I have some time to it!

pando85 commented 8 years ago

I plan to implement a plugin system, so that other media sources should be possible (e.g. youtube or soundcloud tracks in the same playlist as regular files).

This could be so cool, if you could share your music through CM, people could create playlist combining different servers.

MaxLeiter commented 7 years ago

Is this project still active? Is it worth making contributions?

devsnd commented 7 years ago

@MaxLeiter

Hey Max, yes CherryMusic is still alive, but I don't have as much time anymore to develop new features for it (same goes for @tilboerner i guess). I still use it myself everyday.

If you want to make small contributions then you can just make some PRs and I'll wave them through after a quick review (so it might take a few days before I get to it, i hope that's not too discouraging!).

But for bigger changes it might be wise to ask first; CherryMusic is probably somewhat popular because it's easy to setup and there aren't too many choices to make and it keeps it simple. And often people want to introduce this and that optional feature which I don't consider essential enough to include in CM, so please ask if you're planning to introduce big changes.

Anyway, feel free to hack away, I'll be happy to accept your PRs!

MaxLeiter commented 7 years ago

I'm making small PRs because I'm not too well-versed in python and don't know the project structure well -- i'll definitely discuss big changes before working too much on them.