More information about getting involved with other GNOME apps (and many tips that apply to Rhythmbox) can be found at http://live.gnome.org/GettingInvolved
Before you can build Rhythmbox from a source tarball, or from source checked out from git, you'll need to make sure you have the required development libraries and headers installed. Rhythmbox requires:
Optional packages for additional functionality:
If you don't know what to work on, or you're looking for a small task to get started, take a look at the list of 'gnome-love' bugs and the current GNOME goals. Otherwise, there are enough bugs and feature requests in bugzilla to keep anyone busy.
Most new self-contained features, such as integration with web services and support for hardware devices, are added to Rhythmbox as plugins. Plugins can be written in C, Python, or Vala. There are sample plugins in the source tree. There's some more information for plugin developers here, and API documentation here.
Plugins can be distributed separately from Rhythmbox itself. If you've written an interesting new plugin, you should consider distributing it yourself, and adding a link to it on the third party plugin list. Plugins written in C and Vala can only be built externally with Rhythmbox 0.13.0 or newer.
Rhythmbox can provide debug output when invoked with the '-d' command line option, which enables all debug output, or the '-D <match>' option, which enables all debug output from functions and source files containing the match string. When running in a debugger with some debug output enabled, Rhythmbox will also cause the debugger to stop on any GLib warning or critical message.
If you want to write documentation for Rhythmbox, you should join the GNOME Documentation team.