Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Announcements [developer] #283

Open
tilboerner opened this issue Mar 10, 2013 · 13 comments
Open

Announcements [developer] #283

tilboerner opened this issue Mar 10, 2013 · 13 comments
Labels

Comments

@tilboerner
Copy link
Collaborator

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


@tilboerner
Copy link
Collaborator Author

Moved conversation about Android client to #495.

@devsnd
Copy link
Owner

devsnd commented Jun 22, 2015

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
Copy link

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
#283 (comment).

Thanks
Rajesh Battala

@devsnd
Copy link
Owner

devsnd commented Jun 22, 2015

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
Copy link

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
#283 (comment).

Thanks
Rajesh Battala

@rajesh-battala
Copy link

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
#283 (comment)
.

Thanks
Rajesh Battala

Thanks
Rajesh Battala

@devsnd
Copy link
Owner

devsnd commented Jun 24, 2015

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

@systems-rebooter
Copy link

(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
Copy link
Contributor

pando85 commented Dec 14, 2015

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

@pando85
Copy link
Contributor

pando85 commented Dec 14, 2015

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
Copy link
Contributor

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

@devsnd
Copy link
Owner

devsnd commented Jul 21, 2017

@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
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants