Extensions are gPodder’s mechanism for adding optional features and allowing easy customizability. Some extensions are already activated by default if you are running a specific environment (e.g. Ubuntu Unity support in gPodder 3 is implemented as an extension).
The following extensions are included with gPodder 3:
Extensions are a great way to customize your gPodder workflow: you’ll be able to customize the UI, rename, modify or trigger external programs when episodes are downloaded, etc..
Extensions are loaded from the
Extensions folder in the gPodder Home Folder.
The folder doesn’t exist by default, so create it.
An example extension is available here. Copy it to GPODDER_HOME/Extensions and restart gPodder.
Extensions are activated from the Extensions pane of the Preferences dialog. Activate the Hello World Extension to get a item in the Extras menu called Say Hello.
Message, restart gPodder and see the updated notification when you click Say Hello.
To see how an extension is loaded and every available callback, take a look at extensions.py;
every method annotated with
@call_extensions can be overriden in your extension. Check its parameters and return type.
gPodder’s model is quite straightforward.
Given an episode
e.title, its url via
If your extension doesn’t appear in the list, be sure:
__disable_in__instructions (if any) apply to your system.
gpodder -v, Windows) and check that it’s found and there isn’t any error message: ``` [gpodder.extensions] DEBUG: Found extension “hello_world” in …/Extensions/hello_world.py [gpodder.extensions] INFO: Module loaded: …/Extensions/hello_world.py
You should run
gpodder -v anyway, because any log with lower priority than
logger.warn is suppressed by default.
Feel free to ask for advice in the mailing list or as github issues: we are always pleased to see you customize gPodder to your own needs.
Also, you may have to modify code in gPodder itself to achieve a particular goal. This is OK: no need to recompile anything: just edit the .py and restart…© 2005-2023 The gPodder Team · Edit this page on GitHub