cherrymusic icon indicating copy to clipboard operation
cherrymusic copied to clipboard

Announcements [developer]

Open tilboerner opened this issue 11 years ago • 13 comments

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 avatar Mar 10 '13 01:03 tilboerner

Moved conversation about Android client to #495.

tilboerner avatar Dec 05 '14 08:12 tilboerner

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.

devsnd avatar Jun 22 '15 16:06 devsnd

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 [email protected] 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

rajesh-battala avatar Jun 22 '15 17:06 rajesh-battala

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).

devsnd avatar Jun 22 '15 18:06 devsnd

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 [email protected] 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 avatar Jun 23 '15 08:06 rajesh-battala

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 [email protected] 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 [email protected] 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

rajesh-battala avatar Jun 23 '15 08:06 rajesh-battala

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

devsnd avatar Jun 24 '15 16:06 devsnd

(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

systems-rebooter avatar Jun 26 '15 09:06 systems-rebooter

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

pando85 avatar Dec 14 '15 19:12 pando85

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.

pando85 avatar Dec 14 '15 22:12 pando85

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

MaxLeiter avatar Jul 21 '17 03:07 MaxLeiter

@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!

devsnd avatar Jul 21 '17 15:07 devsnd

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.

MaxLeiter avatar Jul 21 '17 15:07 MaxLeiter