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.

Duolingo API Dockerized

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:

About me | Marvin Scham
My educational background in the form of a CV and my private interests including recent Duolingo progress.

Repository

Get the source code and docs to set it up for your personal usage.

GitHub - marvinscham/duolingo-api-dockerized: Duolingo API Dockerized is a Python-based Docker image which allows you to set up a basic JSON API to get cached data about your Duolingo Account.
Duolingo API Dockerized is a Python-based Docker image which allows you to set up a basic JSON API to get cached data about your Duolingo Account. - GitHub - marvinscham/duolingo-api-dockerized: Du…