Duolingo API Dockerized
Duolingo's API is not officially supported for third party use, which makes it critical to prevent accidental or intentional exceedance of the API's limits to ensure account safety. This project allows easily setting up a proxy that will cache fresh data from the API every few minutes.
Introduction
Duolingo is an app for superficial language learning in the form of small, gamified lessons. For completing lessons, the user receives XP (experience points), which can be used to track the intensity of use.
Furthermore, the consistency of learning is recorded on the basis of a streak, meaning the days of use in succession.
Duolingo's API is not officially supported for third party use, which makes it critical to prevent accidental or intentional exceedance of the API's limits to ensure account safety. This project allows easily setting up a proxy that will cache fresh data from the API every few minutes. It will also hold the user credentials on the server to minimize the risk of leaking critical information or getting banned for spamming requests.
Requirements
- Retrieving user info from Duolingo
- Details about individual languages
- Details of usage in the last x days
- Short-term storage (Caching)
- Fast, user-independent setup
- Output via JSON API
Resources used
- Python
- Docker(-Compose)
- nginx reverse proxy with Let's Encrypt SSL
Example
The Duolingo section on my about me page is built on the data served by this project:
Repository
Get the source code and docs to set it up for your personal usage.