Mykhailo Pavlov
Back to Projects

Multilingual Vocabulary Automation Engine

Released
Released Oct 2025
PythonFlaskLLM IntegrationAnkiConnectWeb Scraping
Summary

A hands-off pipeline that scraps definitions, generates context with LLMs, and pushes ready-made flashcards straight into Anki in 100+ languages.

The Problem

Manual flashcard creation is a bottleneck for language learners. I wanted to automate scraping definitions, generating audio, and pushing cards directly to Anki.

The Solution

Built a Python tool with Flask that scrapes definitions from Oxford, Cambridge, and Wiktionary. Uses LLMs to generate example sentences and context. Pushes cards to Anki via AnkiConnect using JSON-RPC. Supports 100+ languages.

Key challenges solved:

  • Scraper fragility: Built a fallback chain of Oxford then Cambridge then Wiktionary so the tool keeps working when sites change their HTML.
  • Media handling: Built a media manager that hashes filenames to prevent collisions and cleans up unused assets.
  • Distribution: Packaged the app into a single .exe with PyInstaller so users don't need to install Python.

Generated 1,000+ cards during testing. CI pipeline runs integration tests on every commit. Tracks card lifecycle in a local SQLite DB to prevent duplicate uploads.