Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kamui-fin/yt-to-anki

Simple anki addon to generate decks from youtube videos
https://github.com/kamui-fin/yt-to-anki

anki language-learning subs2srs subtitles ytdl

Last synced: about 1 month ago
JSON representation

Simple anki addon to generate decks from youtube videos

Awesome Lists containing this project

README

        

An Anki addon that generates a full-fledged deck with audio and pictures from a YouTube link using subtitles with the click of a button. This eliminates the need for having to download a video, or the accompanying subtitles, re-timing them, and dealing with TSV files to import. For those of you familiar with Subs2SRS, consider this to be the YouTube version.

This addon offers several features:


  • Supports all languages

  • Fallback to automatically generated subs if man-made captions could not be found

  • Set a limit to how many cards are generated

  • Choose the dimensions of the pictures

  • Fast card generation


Installation


  1. In Tools > Addons, click Get addon and use the code 964531817

  2. Restart Anki for changes to take place


If you are a Linux or Mac user, make sure to install ffmpeg using your package manager.

Usage


  1. Enter the YouTube link for the video

  2. Choose the appropriate note type and fields for the card data

  3. Specify the subtitle language (default: English)

  4. Hit generate. After a bit, refresh your decks, and you should see a deck named after the title of the video


Quality of the subtitles

TL;DR: In order to get the best learning experience, work with the YouTube'svideos that have high-quality manually generated subtitles (e.g., TED talks).Enable option "Optimize subtitles" to get sentence-based Anki cards: one cardper sentence.

The YouTube to Anki (Y2A) extension uses subtitle ranges to cut the correspondingaudio fragments out of the downloaded video. If the subtitles are well-craftedby the creators of a YouTube video, the resulting Anki cards will 90%+ perfectlymatch the audio from the MP3 files generated by the extension.

YouTube's videos can have automatically and manually generated subtitles.

When a video has manually generated subtitles, it is likely to have:


  • Capitalized sentences and correct punctuation.

  • Subtitle ranges matching the actual sentences as they are spoken on a video.


For the manually generated subtitles, the Y2A extension provides an optimizationwhich merges the subtitle texts so that the full sentences are formed, onesentence per one Anki card. The optimization relies on the punctuation foundin the subtitles, e.g. ".", ",", "?" in order to decide when a sentence shouldend. The option is enabled with the "Optimize subtitles" flag.

Examples of good YouTube videos that can be used for testing this extension:


When a video has automatically generated subtitles, it is most often that theextension cannot produce good Anki cards: the subtitle text will have neithercapitalized letters nor punctuation, and therefore the Anki cards will not besentence-based.

Development

Before moving on, be sure you have python and poetry setup.

  1. Clone the repository

git clone https://github.com/kamui-fin/yt-to-anki.gitcd yt-to-anki

  1. Install dependencies

poetry install

  1. Install pre-commit hooks

poetry run pre-commit install


  1. If you are on windows, you need to create a top-level directory called ffmpeg with ffmpeg.exe inside

  2. Bundle everything (or update the bundle)


poetry run invoke package-dev

  1. Create a symlink of dist/ inside of your Anki data's addons21/ folder

ln -s ./dist ~/.local/share/Anki2/addons21/yt-to-anki

  1. Now you can use the dev command for simultaneously running anki with the updated bundle

poetry run invoke dev

Contributing

All contributions are gladly welcomed! Feel free to open an issue or create a pull request if you have any new changes/ideas in mind.