These Forums Are Going Away!

These forums are currently read-only, but will be going away entirely in mid-august. All active discussion has moved elsewhere. Visit the Songbird Developers Google Group for developer topics, and Get Satisfaction for everything else.

Songbird Server

Hello Devs,

I am contemplating creating an addon that lets you "sign in" to songbird servers that either you own, or your friends own, and be able to view and play their music just as you can view yours. Even sync their music with your own computer/portable device. If someone's connection speed is less than the bitrate of the file, it would automatically downconvert to stream. This is going to be a lot of work, and didn't know if anyone had already created this, or if anyone wants to help me do it. This will obviously be open source, and I will probably use my own svn server..

thanks-
-Jordan

neutrino15 Says:   

Since I can't find the "edit post" button, consider this an extension of my first post:

Here is an example of how it might work:
•You would download this addon on the music server that you want to serve music from. Possibly create a standalone app that creates this server. But for now, an addon.
•On the client computer, you can enter some URL like sb://somewhere.dyndns.com:port (possibly create our own dynamic dns type thing), and the client would ask you for the username and password you have with the server.
•You can now view all of the server's music in your "locations" menu, you could listen to this music, even download it. Possibly even sync this music with your local machine.. (rsync/psync?)
•You could also choose to view your server from a web browser.. Just navigate to http://thesameaddress:port and you would get a web player of all your music

•Every client could also act as a server, and you could share your music with friends, much like iTunes share, but over the world wide web.

You see how this would work? Much more involved than iTune's sharing feature, and much much cooler.

Again, if anyone is interested in helping me, you are welcome to come :)

p.s. After the iPhone 3G announcement, it would also be pretty cool to have an iPhone web interface to this. So you could stream your music from your songbird home server to your iPhone. Downconverting and everything.. iPhone support would require no more work than the original idea, just another web interface skin..

stevel Says:   

Sounds cool (and ambitious!). I don't think you even need to do the custom URL-handler thing... just serve with regular 'ol HTTP, and serve stuff using Songbird's Webpage API... this way it can be backwards compatible with regular web browsers, whilst serving mediaLists/mediaLibraries to Songbird users.

neutrino15 Says:   

And it definitely seems like an option, except the default media API will only allow users to listen and download tracks that are served through HTTP.

While this would probably be a great option for the user-user sharing, it would probably not be optimal for server-client access. Using the API, it would look like a web page with music on it, again, that's fine for user-user.. I want music from one's songbird "server" to appear just like local music does. You could sync it to an iPod, you could re-encode it, you could rip music to it. it would almost be like mounting the server's disk, and pointing SB there, but more controlled than that.

It would be quite possible that the web version and the songbird-songbird share version would be the same thing.. But for the client-server, it would be something else..

p.s. without ambition, where would the world be? ;)

p.p.s. I would also like to know if the community thinks this should be an extension, or if I should play around with integrating this server-sharing functionality right into the core of songbird.

necimal Says:   

Good idea! Perhaps this could be based on DAAP (the protocol itunes uses for sharing)?

Or, you could reduce your ambition by simply creating a small http server which can serve up web pages using the songbird api, and serve up music from the library. Then leave transcoding etc for another release.

In fact, I would definately leave transcoding until after the move to gstreamer, because gstreamer can do that for you.

neutrino15 Says:   

Is DAAP an open protocol? And if I'm gonna make an http server, why not build it into songbird? (either the core, or as an addon) Why take the trouble of making users install Apache or something when I can just build this right in?

As for gstreamer, I was planning on using VLC, but if songbird is going to use gstreamer in the future, heck yah! I am new to songbird development, so I don't know these things!! :)

p.s. After watching the iPhone 3G announcement, I looked into the iphone sdk, and apparently you can save data to the iPhone from an app. It would definately be possible, in my opinion, to create a native iPhone app that could stream, download, and store songbird media on one's iPhone.

Songbird has the advantage of being open source, If songbird has an open media server protocol, the possibilities are endless.. I think that with a little bit of work, songbird could become the media jukebox..

necimal Says:   

"I think that with a little bit of work, songbird could become the media jukebox.." I share your vision :)

I think DAAP was closed but now fully reverse engineered? http://www.opendaap.org/

I agree apache isn't necessary! I think you could probably write a small http server using only JS and existing mozilla components. In fact I bet someone has already done it as a firefox extension or something.

Yeah I think the 0.7 ? release is going to use gstreamer on all platforms.. I'm sure someone will correct me if i'm wrong. But it would sure make your project easier!

neutrino15 Says:   

After looking at the documentation surrounding DAAP, I do think that it would be a waste to try and implement and change it. I think that to fit my initial description, especially if Songbird includes gstreamer, this would only need to be a simple http server (hell, we could make our own protocol) that serves the tracklist, pushes changes out, and gives the client a gstreamer stream upon request. To fulfill the download and share aspect of this server/share system, we would need to just point the client directly at the original music file instead of a gstreamer stream. I am not suggesting that we invent our own streaming protocol (which is what I think DAAP is), we will leave this to gstreamer (originally VLC)..

I think that a plugin like this could easily be made, but we would need to see some API docs for the gstreamer calls.. Or possibly see the new .7 source. I think I'm going to make a project page on my website.. I'll post a link when I have more time.

p.s Should this be an Addon or a built in Core Component? iTunes has this built in.. And it would not be more than a megabyte or so...

stevel Says:   

Hey - I think it makes more sense as an add-on, since not everyone wants every feature (even "core" features such as various device support is built as an add-on). Some of our partners want to be able to split features out, etc.

The benefit of doing it as an DAAP implementation is that every DAAP software and hardware device will inter-operate with it.

neutrino15 Says:   

I put some mockups up on my server.. Tell me what you think:

http://jordanperr.com/sbshare/

neutrino15 Says:   

Ok, This will be a plugin. i will probably make a mozdev project soon.
It will support DAAP for the "Sharing" feature, and some form of HTTP/GStreamer for the "Server" feature.
I will also use some sort of dynamic DNS (for www sharing).

The project begins!

GeekShadow Says:   

Something like http://www.ajaxamp.com/ would be interesting !

Antoine.

Schwadegan Says:   

This is going to be so awesome!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Keep me posted!

Sign up to be notified of new releases & important updates.


Get a Songbird Tshirt

Songbird Buttons


Get Songbird
Get Songbird
Get Songbird
Get Songbird


More buttons for your blog...