Skip to main content

project-banner

Language Transfer Flashcards (LTF) is a CLI tool designed to enhance your language learning experience by bridging the gap between Language Transfer's audio lessons and Anki's spaced repetition system. This project transforms the rich content of Language Transfer YouTube lessons into easily digestible flashcards, allowing learners to reinforce their knowledge effectively.

license last-commit repo-top-language PyPI - Version github-actions

About the Project • Installation • Usage • Limitations • Anki: CSV Import • Known Issues • Roadmap • Contact



About the Project

You can also read more about this project in my Medium blog post.

Key Features

  • 🤖 Automated Extraction: Extracts words, phrases, and sentences with translations from Language Transfer YouTube lessons.
  • 📚 Anki Integration: Generates CSV files ready for direct import into Anki, creating instant flashcard decks ( OpenAI API key required).
  • 🔄 Alternative Workflow: Download a text file, containing the prompt and lesson transcript to use with your favorite LLM web interface (e.g., ChatGPT, Claude, etc.).

Why it's Valuable?

  • 🚀 Boost Learning Efficiency: Combine Language Transfer's proven method with Anki's powerful spaced repetition.
  • ⏱️ Save Time: Automate hours of manual flashcard creation.
  • 🛠️ Customizable: Adapt to your preferred workflow, with or without API access.

Build With

python-logo Python

langchain-logo LangChain

typer-logo Typer

Installation

Recommended: Create and activate a virtual environment before installing the tool.

Using pip

pip install language-transfer-flashcards

Using poetry

poetry add language-transfer-flashcards

To verify that everything works and to see all available commands

ltf --help

Create a .env file in your home directory under ~/.ltf/.env with the following variables:

OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
OPENAI_MODEL_NAME=gpt-4.1-mini
TARGET_LANGUAGE=Swahili

Not sure where to create the .env file in your system?

ltf env-location

To see all available OpenAI model names, check the official docs.

To see all valid values for TARGET_LANGUAGE

ltf csv --help

Note: The OpenAI-related variables are optional if you're not using the API.

Usage

Create flashcards in CSV format - file will be saved in current working directory

ltf csv "https://www.youtube.com/watch?v=VIDEO_ID"  # assumes .env file exists

Without the .env file, specify your target-language, the OpenAI model name and API key

ltf csv "https://www.youtube.com/watch?v=VIDEO_ID" -l Swahili -m "gpt-4.1-mini" -k "YOUR_OPENAI_API_KEY"

Important: Find the YouTube URLs for all Language Transfer lessons here.

Usage without using the OpenAI API

Download the full prompt which is used to extract the content of the language lesson in a txt file.

ltf prompt "https://www.youtube.com/watch?v=VIDEO_ID"  # assumes .env file exists

If there is no .env file, add your target-language to the command, for example: -l Swahili

Manual Processing

  • Copy the downloaded content into your favorite LLM web interface - recommended: ChatGPT or Claude.
  • The output will be the content of the lesson in CSV format -> English, Translation.
  • Copy the output into a text editor and create a CSV file
  • Import the CSV file into Anki

Limitations

  • AI Imperfections: LLMs may occasionally produce inaccurate translations or misinterpret context.
  • Transcript Quality: YouTube's auto-generated transcripts can contain errors.
  • Content Discrepancies: Flashcards may sometimes differ from the exact lesson content due to transcript and AI limitations. Review your final flashcards before importing them into Anki.
  • Technical Requirements: Basic command-line knowledge is needed.
  • Estimated API Costs per Lesson:
    • gpt-4o: ~$0.01
    • gpt-4o-mini: < $0.0005

Anki: CSV Import

  1. Open Anki
  2. Create or select a deck for your target language
  3. Navigate to File > Import
  4. Select your generated CSV file for upload
  5. Select the correct seperator for your CSV file, configure Import options and click on Import

Known Issues

  • On Windows PowerShell, URLs with & characters—often from playlist links like
    ltf csv "https://www.youtube.com/watch?v=VIDEO_ID&list=PLAYLIST_ID"
    
    can cause PowerShell to misinterpret parts of the URL as separate commands showing terminal messages like:
    'list' is not recognized as an internal or external command,
    operable program or batch file.
    
    The command still runs successfully. Since the playlist part is usually not needed, you can shorten the URL to just the video or escape & with a backtick in PowerShell

Roadmap

  • Publish on PyPI
  • Add support for other LLMs (including Ollama)
  • Create a web-based interface for non-technical users

Contact


If you find Language Transfer Flashcards helpful, please consider giving it a ⭐️ on GitHub!

Metadata

Release files for language-transfer-flashcards 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for language-transfer-flashcards 0.1.4
File Size Uploaded Provenance
language_transfer_flashcards-0.1.4.tar.gz 11.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for language-transfer-flashcards 0.1.4
File Interpreter ABI Platform
language_transfer_flashcards-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 25.4 kB

Release files / language_transfer_flashcards-0.1.4.tar.gz

Download URL language_transfer_flashcards-0.1.4.tar.gz
Size 11.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6471028fd725ee9d91df1e8552c3966db6e982b919451a212bbe59d0067b1c2a
BLAKE2b-256 checksum
How to use checksums
62a5c96599a91596675d393be8dbef91814701e89ffb351be2b4b5675088c9a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.9 Windows/10

Release files / language_transfer_flashcards-0.1.4-py3-none-any.whl

Download URL language_transfer_flashcards-0.1.4-py3-none-any.whl
Size 14.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b0d85b474a473d170e3a238040bca9f00e8b6bf278e0caf89fb85268323a34eb
BLAKE2b-256 checksum
How to use checksums
be2213333cc1a2cd7daf370431bd195e972e0b65dae8c38c5630a8facebf77d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.11.9 Windows/10

Security for language-transfer-flashcards 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page