Hi Ankit,
I recently started developing Rhythmbox plugins too, so hopefully you'll find this of some use. (To other developers, if the following is offensively incomplete, I apologise sincerely.)
First up, there's a
guide for writing Rhythmbox plugins on the Gnome website. It covers the basics of how to put together a plugin and make it do something (essentially, it boils down to having a plugin description file which references a named Python file containing your plugin code - from there, anywhere!). There's also a Python plugin example
page, but I seem to recall this being a little out of date. It's probably worth a look anyway though.
The latest
source code
for Rhythmbox is always a handy reference. If you're planning on adding
UI elements, you'll need to have a look at 'rhythmbox-ui.xml', in the
'data/ui' subdirectory. It also comes with the source code for all of the
default plugins that Rhythmbox is shipped with. In particular, there's a fully working Python plugin example in the 'sample-plugins/sample-python' subdirectory which you might find a good starting point. Similarly,
my first plugin, which shamelessly rips off its old
Rhythmbox 0.13 counterpart, is probably a good minimal working example of a plugin with some UI.
The
Rhythmbox Python API reference is pretty essential, and it doesn't seem to exist anywhere else on the web. If you're worried about the version numbering being out of date (that link is for Rhythmbox 2.97), or just want to generate your own, then check out John Jetmore's blog post
here. The API reference is where you'll find functions relating to GStreamer, etc., although if you're looking for more detailed information then the GStreamer page itself is probably your best bet - the Python bindings just allow you to hook into the framework (and, then, only some parts of the framework - hopefully, what you're looking for will be exposed).
are worth checking out too, especially if you want to see how a particular API is used in practice. The third party plugins page lists plugins for both Rhythmbox 2.9+ and the older 0.13 variety, so be careful if you're planning on copying code to teach yourself - the older code might look ok, but it's often subtly different from the new API, and you might find yourself scratching your head and wondering why something so basic just won't work, for hours and hours and hours...