When running a weboob command (like boobank) in a script, or when redirecting its stdout to a file or pipe, why do I get an UnicodeDecodeError or UnicodeEncodeError?
If this does not happen in interactive mode, this is because Python considers stdout to be in ascii mode when stdout is not a tty.
This may happen often with Python 2, rarely with Python 3. Try setting an env variable before running boobank or any other weboob command: export PYTHONIOENCODING=utf-8.
What weboob versions are supported?
TL;DR: weboob has a rolling release system for weboob apps + an internal update system for sites modules updates.
Weboob has 2 supported versions, stable and devel. Older versions do not receive modules updates.
Stable (current: 1.4)
The stable version is commonly installed from pip or from distro packages. This is the recommended version for end-users.
It is considered stable because the core scraping library and its applications do not change. Stable releases typically occur on a yearly basis.
Scraping is volatile and websites often change, so even on the stable version, the weboob modules do receive updates frequently. The modules updates are cryptographically signed and published using weboob's internal update system (stored at https://updates.weboob.org/stable/). On the stable version, modules are updated by running weboob update command (or in Qt apps, in the modules configuration).
Devel (current: 1.5)
This is the development version, commonly installed directly from the git repository. This is recommended only for developers.
The core library and the applications are under development on this version and are often updated. When a weboob release is made, a snapshot of the devel version state becomes the new stable version.
While the devel version can receive modules updates through weboob's internal update system, it's recommended to fetch code directly from the git repository (using git-pull). The weboob update command only updates modules, not the core library, but on the devel version, modules may require new features from the core library, unlike on the stable version. To do so, one should edit the config file ~/.config/weboob/sources.list to use the git repository dir, and disable updates.weboob.org.
Is Python 3 supported?
TL;DR: yes, but not all modules work yet.
As of weboob 1.4, Python 2.7 is still the mainly weboob supported version, but it will be abandoned in a next release, to support only Python 3.
Weboob applications already work with Python 3. Weboob can be installed with Python 3. A number of website modules do work with Python 3, but not all of them yet. It's an ongoing effort to port them to being compatible with Python 3. Any new module MUST be Python 3-compatible in order to be published.
Though CAPTCHAs bring only fake protection and no value, websites use them. Weboob allows automated CAPTCHA solving using CapCaptchaSolver. For now, this is limited to paid (cheap) services AntiCaptcha and DeathByCaptcha.
From a user point-of-view, some apps like boobank can leverage this capability. In ~/.config/weboob/backends, add something like
[anticaptcha]_module = anticaptchaapi_key = <your api key>
When a command requires solving a CAPTCHA, it will be solved asynchronously and when it's done, the command should be restarted.
From a module developer point-a-view, raise the appropriate weboob.exceptions.CaptchaQuestion subclass and a solver (if configured by the user) will solve it.
Weboob doesn't support yet user solving a CAPTCHA.