Fast downloader of OONI reports using the OONI API. It works by downloading an index of available files, and only downloading the files that are not already present locally. You can run it again and again to keep a local directory up to date with newly published reports.
How to get and build:
Example usage:
This command will create the directory reports
if it doesn't exist,
download all tcp_connect reports that are not already present in the
directory, and compress the downloaded reports with xz
.
Other examples:
The query is composed of name=value
pairs.
Possible query parameters include:
The value of test_name
can be tcp_connect
,
web_connectivity
, ndt
, etc.
There's a list of test names at
https://ooni.org/nettest/.
The query parameters order_by
, order
, offset
,
and limit
are used
internally by the program and will be overridden if present. More
documentation on the API is available from
https://api.ooni.io/apidocs/.
Because the program only uses filename comparison to know whether a report file has already been downloaded, it is careful not to store a file under its final filename until it has been completely downloaded. It is safe to interrupt the program or run two copies simultaneously.
To make your Python scripts capable of processing xz-compressed files,
just call this function intead of open(filename)
:
ooni-sync is in the public domain.
Original mailing list announcement: [ooni-dev] Turbo OONI report downloader (