Developer Intro

Introduction

There are a ton of ways you can extend, or integrate with Songbird... from the visual appearance and layout all the way to tight-knit webservice mashups.  Songbird has a ton of APIs to build add-ons on top of, as well as being open source itself for anyone to hack on the core.  If you're new to Songbird, check out the following for a very high-level overview of some of the ways you can build on Songbird.

Change Songbird's appearancelargeheartedboy.png

Feathers allow you to customize Songbird via images, and CSS. You can also develop more advanced Feathers (such as changing layouts, UI elements, etc.) via XUL. Feathers are also capable of supporting other browser technologies such as Flash & SVG. Feathers can be easily created using our Feathers Wizard, which is a part of the Songbird Developer Tools add-on.

Media Views, implemented using our Media Pages API, let you create custom ways of viewing and visualizing your media library. Want to build the next Cover Flow? You want to implement a Media View.

Add new media playback, library management, or other functionality

Extensions, by virtue of the fact they are loaded into Songbird, have access to the full range of methods, components, and interfaces that Songbird provides. They can overlay arbitrary UI or target Display Panes to add arbitrary new functionality.

Integrate a webservice, or website into Songbird

You can approach this from two ways.  One is to simply use Songbird's Webpage API in your website's Javascript code to allow it to integrate well with Songbird users browsing your site.  The Webpage API allows you to do some really cool media player and media library integrations and interaction from your website. For visitors using Songbird, you can enumerate their media library, trigger playback, and seamlessly integrate/download media into their library.

Alternatively, you can integrate from the client side using Extensions. Extensions can display UI in Songbird via Display Panes (or anywhere else via XUL and overlays). Once overlaid they can use vanilla Javascript to make remote calls to websites, including making AJAX queries to fetch in contextual information from remote sites. Combining this with the Webpage API makes for extremely compelling webservice and website integration tackling it from both the client and server-side.

Fix bugs or augment existing functionality (build Songbird itself)

Songbird is open source, go ahead... build and hack on the core code directly!

 

Add-ons, Core, Extensions, Feathers, Webpages, oh my!

What is XULRunner?

Songbird is a media player built on top of Mozilla's XULRunner framework. XULRunner gives us an extensive and flexible add-on mechanism whereby developers can choose to extend or build new functionality into the app without having to modify the application code (what we call the Core) itself.

Types of APIs for Extending Songbird

New functionality is generally implemented in extensions which are client-side installable add-ons.  Because we're built on Mozilla, we use the same extension mechanism in the form of XPIs (pronounced "zippy") which are simply ZIP archives.  Go ahead and extract some of your favorite extensions to take a look.  Because extensions and installed by the user and run on the client-side, they have full access to the complete set of APIs offered by Songbird.  For this reason, much of the documentation and articles for hacking on the Songbird player/platform directly are also 100% applicable to extension developers.

Extensions are overlays which target some part of the application and layer new elements onto existing ones. Technically speaking, skins/themes (which we call Feathers) are also extensions, but we classify them differently since they are a very specific subset of extensions.  Similarly, Media Views, are also implemented using the extension mechanism, but are a very specific subclass of extensions so we call them out explicitly in some places as well.

Songbird's media playing services and library/collection management services are implemented using XPCOM components and open-source libraries.  If you want to fix bugs in any of these core components, or add new core services, then you want to be hacking on the core code directly.  This is not for the faint-of-heart, you will be walking the path to full Jedi Birder.

Tag page
Viewing 9 of 9 comments: view all
Can i get the source code of songbird
Posted 21:43, 16 Jun 2008
Yes - go to this page:
http://wiki.songbirdnest.com/Developer/Articles/Getting_Started/Core_Player_Development
for all the info on getting and building the Songbird source. edited 07:32, 17 Jun 2008
Posted 07:32, 17 Jun 2008
Thanks, If i have a doubt, i get back to u
Posted 05:28, 19 Jun 2008
Under which license is released Songbird ? thx
Posted 02:09, 25 Aug 2008
The player source that we've written is GPL'd. The bits that we've patched from Mozilla continue to be available under the tri-license (GPL/LGPL/MPL).
Posted 08:58, 25 Aug 2008
do u have the feature fo geeting a pop up over any song or video while listening to or seeing it over the internet
to download it instantly if we like that song or video
Posted 04:34, 2 Oct 2008
I have a Windows 2003 server with Media Server installed.
1) How do I contact someone on How To Install?
2) Does Songbird have a way to access and update the currently playing playlist on my streaming media server (mms, trsp, etc)?
3) Are you looking for a Beta Tester? I am tester... I read code, just do not write it.

thanks
Posted 16:01, 2 Dec 2008
Why is this application making a secure connection to
https://108.225.201.74.static.ey03.engineyard.com

I have checked the site... it is valid but does not Seem to go anywhere.....

Posted 10:43, 3 Dec 2008
Hello,

I want to ask if it is required to be open sourced also if we make an Add-ons application/plugin (not web service one) into Song Bird? E.g. audio dynamic analyze of the songs?
Posted 04:19, 6 Oct 2009
Viewing 9 of 9 comments: view all
You must login to post a comment.