Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HearnTube

Learn Japanese from the videos you'd like to watch.

Paste a YouTube link and HearnTube turns its subtitles into an interactive transcript. Tap any word to see its reading, dictionary entry, then save the ones worth keeping, along with the clip and audio they came from, straight into a spaced-repetition deck powered by FSRS.

Review them until they stick. Then prove it: in the Versus arena, players pool words from their own decks and race to fill in the blanks.

Dependencies

Runtime

  • Node.js >= 22.5: the app uses the built-in node:sqlite.
  • yt-dlp: must be installed. Subtitles and card audio are fetched by exec on it (controllers/ytdlp.js).
  • SQLite >= 3.0.0: needed for controllers in database.js and dictionary.js.

npm packages

  • express
  • ws
  • helment
  • cookie-parser
  • argon2
  • kuromoji
  • ts-fsrd

Front-End

  • chart.js

Installation

To run, the project needs the dependencies listed in the runtime section. node, yt-dlp and sqlite3 need to be installed on the local system.

After having cloned the repository, get the jmdict english common dictionary from here, rename it to jmdict-eng-common.json and move it to /data.

To install the npm dependencies run the following in the project root:

$ npm install

Then start the service by executing:

$ node server.js

Dictionary data (JMdict)

Dictionary content is derived from JMdict, the property of the EDRDG, used under the CC BY-SA 4.0 licence. The generated dictionary database (data/dict.db) is a derivative of JMdict and is therefore also distributed under CC BY-SA 4.0.

The jmdict-eng-common.json source file is the common-entries English build from scriptin/jmdict-simplified (conversion tooling also under CC BY-SA 4.0).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages