There are a ton of ways you can extend, or integrate with Nightingale… from the visual appearance and layout all the way to tight-knit webservice mashups. Nightingale 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 Nightingale, check out the following for a very high-level overview of some of the ways you can build on Nightingale.
Feathers allow you to customize Nightingale 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 Nightingale 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.
Extensions, by virtue of the fact they are loaded into Nightingale, have access to the full range of methods, components, and interfaces that Nightingale provides. They can overlay arbitrary UI or target Display Panes to add arbitrary new functionality.
Nightingale is open source, go ahead… build and hack on the core code directly!
Nightingale 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.
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 Nightingale. For this reason, much of the documentation and articles for hacking on the Nightingale 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.
Nightingale'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.