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.
Modify the Message
, restart gPodder and see the updated notification when you click Say Hello.
Maybe an existing extension does something similar to what you want (rename after download, tagging, run a command after download, …). Find inspiration in its source code.
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
:
e.title
, its url via e.url
e.channel.url
.If your extension doesn’t appear in the list, be sure:
__only_for__
or __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