Build Anki decks from text files containing YouTube URLs
Yanki makes it easy to build and maintain video flashcard decks for Anki. It can use local video or image files, or it can download videos from YouTube or any other source yt-dlp supports.
You will need ffmpeg
installed to use Yanki. On macOS, install it from
ffmpeg.org or with brew install ffmpeg
. On Linux or Windows, try
installing yt-dlp’s ffmpeg.
I recommend using uvx
run Yanki. uvx
is part of uv, which can be
installed a number of ways, but it’s probably simplest to install
uv
through your package manager, e.g. brew install uv
on macOS.
Create a simple deck file, e.g. basic.deck
, to define your flashcards:
title: Basic ASL phrases
more: md:From [Lifeprint](https://www.lifeprint.com/)
audio: strip
https://www.youtube.com/watch?v=FHPszRvL9pg What is your name?
https://www.youtube.com/watch?v=zW8cpOVeKZ4 Are you deaf?
https://www.youtube.com/watch?v=xqKENRGkOUQ Are you a student?
On macOS and some Linux distributions, you can make yanki
open Anki and start
the import of the new deck:
uvx yanki -v update basic.deck
Otherwise, you can make it build an .apkg
and then import that into Anki:
uvx yanki -v build -o basic.apkg basic.deck
There is a reference for the deck file format in REFERENCE.adoc.
The asl/
directory contains example .deck
files that can be used to
build a deck for the vocabulary and phrases in each Lifeprint.com ASLU
lesson. Its README.md briefly explains how the signs were chosen.
Tip
If you are interested in learning American Sign Language, please see Dr. Bill Vicar’s Lifeprint.com ASLU. These decks can help you, but they cannot replace the Lifeprint lessons and vocabulary pages.
Plus, Lifeprint is full of Dr. Bill’s humor.
This is a Python package that can be run with uvx
. The most common usage is
probably just to build your decks and import them to Anki. That’s as simple as:
uvx yanki update *.deck
You can see all the commands and options with --help
:
❯ uvx yanki --help
Usage: yanki [OPTIONS] COMMAND [ARGS]...
Build Anki decks from text files containing YouTube URLs.
Options:
-v, --verbose Be more verbose. May be passed up to 3 times.
--cache DIRECTORY Path to cache for downloads and media files.
[env var: YANKI_CACHE; default:
/Users/daniel/.cache/yanki]
--reprocess / --no-reprocess Force reprocessing videos.
-j, --concurrency INTEGER Number of ffmpeg process to run at once. [env
var: YANKI_CONCURRENCY; default: 8]
--version Show the version and exit.
--help Show this message and exit.
Commands:
build Build an Anki package from deck files.
list-notes List notes in deck files.
open-videos Download, process, and open video URLs.
open-videos-from-file Download videos listed in a file and open them.
serve-http Serve HTML summary of deck on localhost:8000.
to-html Generate HTML version of decks.
to-json Generate JSON version of decks.
update Update Anki from deck files.
Unless otherwise noted, this is dual-licensed under the Apache 2 and MIT licenses. You may choose to use either.
Files in the asl
directory are not licensed for redistribution. Copyright is
somewhat unclear, and at least some of the material is owned by Dr. William
Vicars.