Skip to content
This repository has been archived by the owner on May 20, 2024. It is now read-only.


Repository files navigation

Python application Code style: black

OSD2F: Open Source Data Donation Framework (No longer maintained)

⚠️ Update: this repository is archived ⚠️

This repository is being archived as is. The code can be reused by others as specified in the license, yet security updates and maintenance are not currently being done. Those interested in using the code must therefore consider performing any relevant security updates priot to using the tool. The OSD2F authors are now working on a new data donation infrastructure, which can be found here: This infrastructure contains a stand-alone tool (PORT) which is actively maintained and updated.


Use OSD2F to run your own Data Donation service. The aim of this project is to facilitate scientists to collect data donations, by providing an easy-to-use web-based data donation platform. Here, scientists can instruct participants in their research to upload data exports from major online platforms (generally based on participants rights to their own data under GDPR).

The App aims to be as export agnostic as possible while keeping things feasible to maintain. You can specify the files and the whitelist of JSON fields through YAML configuration. As such it supports Data Donation Packages of arbitrary format in JSON files (although it assumes they are UTF-8 encoded).

Using OSD2F locally

Installing the OSD2F locally is relatively simple by using pip's support for installation straight from VCS. However, we recommend local installation only in cases in which you want to familiarize yourself with OSD2F and never for production (real data collection) purposes.

Note: There is a different set of instructions for development purposes in the development docs

Installation (not for development)

OSD2F requires python 3.8 or up, check your version by running:

python --version

should say something like:

Python 3.8.0

Note: it's recommended to use a virtual environment, please consult de development docs for more information.

pip install git+


osd2f -h # see help
osd2f -m Testing # to run a testing instance

You can configure the text content of the webpages. The easiest way to get started is by generating a YAML file with the default values and editing it to your liking:

osd2f --generate-current-config config.yaml

You can start the server with this content configuration by passing a file-path via the CLI.

osd2f --content-configuration config.yaml # make sure you've edited it first

Note: OSD2F will store the configuration in the database. In development mode, the most recently edited version is used between the database and the file.

See also:

  1. how to develop
  2. Deploying to Azure
  3. Running stresstests
  4. Testing the researcher login with basic auth
  5. Using Microsoft Authentication via SSO
  6. Setting password on researcher downloads
  7. Adding additional (server side) anonymizers


If you use this tool, please cite the paper:


Araujo, T., Ausloos, J., van Atteveldt, W., Loecherbach, F., Moeller, J., Ohme, J., Trilling, D., van de Velde, B., de Vreese, C., & Welbers, K. (Forthcoming). OSD2F: An Open-Source Data Donation Framework. Computational Communication Research,


 title={OSD2F: An Open-Source Data Donation Framework},
 author={Araujo, Theo and Ausloos, Jef and {van Atteveldt}, Wouter and Loecherbach, Felicia and Moeller, Judith and Ohme, Jakob and Trilling, Damian and {van de Velde}, Bob and {de Vreese}, Claes and Welbers, Kasper},
 journal = {Computational Communication Research}

This tool is inspired in earlier approaches that enable researchers to partner with individuals willing to donate their data for academic research, including Web Historian (Menchen-Trevino, 2016), among others.