Language Learning Toolkit
Overview
gogadget
is a toolkit for producing immersion and priming materials for language learning.
- It tries to solve the problem that many of the most powerful tools available are hard to install, difficult to use or require lots of effort to configure for optimal results.
- It is capable of downloading audio and video files, automatically transcribing subtitles from videos and podcasts, and automatically producing filtered Anki decks with sentence audio / translations / screenshots / definitions.
Video tutorial
Coming in a few days...
Useful links
Key features
- Simple, well documented interface that is consistent across each of its tools.
- Download video, audio and subtitle files.
- Automatic generation of subtitles from video and audio files.
- Produce filtered Anki decks from subtitles that:
- Contain images and sentence audio from the source video / audio files.
- Automatically filter out common and known words to reduce Anki review load.
- Prioritises words that are the most frequent in the source media.
- Include automatic translations of sentences and definitions of words.
- Can be built for an individual episode or a whole season.
- Create word frequency analyses for priming purposes.
- One click installer for Windows and simple installation steps for macOS and Linux.
- Ability to save defaults so that commands can be kept as short and memorable as possible.
- It supports 19 languages fully with partial support for many more.
- Once you have installed the resources for your language, all modules apart from
gogadget download
are fully offline. This makes it useful for travelling or for processing personal conversations as there is no server involved.
Why is gogadget
free?
gogadget
is free software, both in terms of "free beer" and "free speech".
You can therefore run the program as you wish, for any purpose, provided that you comply with the terms of the license (AGPLv3-or-later). This means that, theoretically, you could even modify it and distribute your own version (even though I would personally much rather that you submit a pull request to improve this version!) The main practical restriction of AGPLv3 is that you need to license your version under these same terms, including making your source code available to your users so that everyone can benefit from it.
Why free:
- I have greatly benefited from other pieces of free software such as the incredible Anki. It therefore only feels right to give back in the same manner.
- There are far too many pieces of software that try to lock you in, force subscriptions on you, steal your data, etc. I didn't want to create another one!
- I don't run any servers for the application so the only real cost is my time. Therefore, I don't need to charge.
- I hope that this can be a platform that others can build upon and therefore continue the cycle of creating high quality tools that anyone can use and tweak.
Acknowledgements
gogadget is Copyright © 2024 Jonathan Fox.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.
All materials in this repository are covered by the aforementioned license, unless specifically noted below:
- src/gogadget/ytdlp_cli_to_api.py has been directly reproduced from yt-dlp's github page (license) without modification.
- The Windows installer bundles the binaries for both FFMPEG (license) and uv (license).
- The Bootstrap framework javascript and CSS files stored within src/gogadget/resources/html have been directly reproduced without modification (license)