A mobile video player, reader assistant and card creation toolkit tailored for language learners.
Latest GitHub Release:
0.25.12-beta 🇯🇵 → 🇬🇧
📚 Uninterrupted language immersion at your fingertips
jidoujisho is an Android video player, reader assistant and card creation toolkit with features specifically helpful for language learners.
- [x] Text selection of subtitles allows for quick dictionary lookups within the application
- [x] Export cards to AnkiDroid, complete with a snapshot and audio of the current context
- [x] Selecting a word allows export to AnkiDroid with the sentence, answer, meaning and reading
- [x] Morphological analysis of subtitles allows either tap selection or drag selection of subtitles
- [x] Repeat the current subtitle from the beginning by flicking horizontally
- [x] Swipe vertically to open the transcript to jump to time and review subtitles
- [x] Open the app to trending videos in Japan, import and export a channel list and search with suggestions
- [x] YouTube playback support for videos with Japanese closed captions and automatically generated subtitles
- [x] Use card creator mode to quickly search images and definitions with imported photos and text
- [x] Dictionary tab remembers words queried for review between sessions and allows resuming back to context
- [x] Import Yomichan archive dictionaries and export cards with pitch accent information from Kanjium
- [x] Frictionless sentence mining workflow for readers via ッツ Ebook Reader
- [x] Playback support for network streams including Chromecast and Plex external player support
⚕️ Current state of the project
jidoujisho is still in development, and is currently in hiatus. The project will receive fixes to critical bugs and issues. Rollout of new features will resume in time.
Built for the Japanese language learning community, the application is free and open source software, and is available to download here on GitHub. Current features planned on the roadmap are listed below, but as of now there is no estimate on any updates.
Please note that the development of the app switches between changes being implemented and being left alone for daily use. Update frequency may depend on the gravity of any issues that arise. Hiatuses provide practical insight on usage and where development should go next.
🚅 Next Up
- [x] Fixes for slow video loading due to scoped storage and H.265 video playback
- [x] Use of the AnkiDroid API instead of share intent to streamline card export and Anki output customisation
- [x] Morphological analysis of subtitles for better text selection
- [x] Improved monolingual dictionary support
- [x] Various immersion modes for oral practice
- [x] Include pitch accent information in dictionary and exported cards
- [x] Reader enhancements for manga and novel sentence mining
- [x] Instant queries and offline use via support of Yomichan archive format dictionaries
- [ ] Improve text segmentation and custom dictionaries query results
- [ ] Dedicated Android TV experience with a remote control
- [ ] HTML summary tags for dual query mode
🛣️ Stretch Goals
- [ ] Extensive language support with text segmentation for other languages
- [ ] Tinker around with releasing the app on other platforms if possible
🎞️ A glimpse of jidoujisho in action
📖 Using the application
🚨 Supported Formats
jidoujisho will take video and audio formats as supported by VLC. Subtitles may be embedded within the video being played and selected during playback.
If you wish to use external subtitles, they may be in SRT, ASS or SSA format and you may import them during playback through the menu. You may switch between different audio and subtitle tracks. Image-based subtitles such as PGS are not currently supported.
YouTube closed captions are taken from TimedText XML, which is only publicly exposed to videos that have user-generated Japanese subtitles. Here is a fair sample of YouTube videos with such subtitles showcasing some very practical application use cases. If unavailable, Japanese automatic captions can be queried from videos. Please be aware that critical inaccuracies are to be expected in such cases.
☝️ Important Links
Below are some links that some users might find useful.
🚀 Getting Started
A primer on the basics of the application is as follows.
- 📲 Download and install the latest beta onto your Android device
- ⏯️ Play a video by selecting from your local media library or picking a YouTube video
- 📚 Start reading with the Reader tab to launch ッツ Ebook Reader to read an EPUB or HTMLZ file
- 📋 Select text with tap to select or drag to select
- 📔 When the dictionary definition for the text shows up, the text is the current context
- 🗑️ Closing the dictionary prompt will clear the clipboard
- 🌐 Switch between dictionaries by holding on the headword or swiping vertically in the pop-up dictionary
- ↕️ You may swipe vertically to open the transcript in the player, and pick a time or read subtitles
- ↔️ Swipe horizontally in the player to repeat the current subtitle audio
- ➕ Swipe left or right on dictionary results to scroll through multiple definitions
📲 Exporting to AnkiDroid
- 📤 You may also export the current context to an AnkiDroid card, including the current frame and audio
- 🔤 Having a word in the clipboard will include the sentence, word, meaning and reading in the export
- 📝 You may edit the sentence, word, meaning and reading text fields before exporting to AnkiDroid
- 🃏 The front of the card will include only the sentence
- 🎴 The back of the card will include the audio, image, reading, word and meaning
- 📑 You may apply text formatting to the card with the AnkiDroid editor once exported
- ⚛️ Customisation of the Anki export is possible by changing the default template in AnkiDroid
🙌 Advanced User Tips
- 🇯🇵 Can't find Japanese subtitles for your media? Try finding what you need at kitsunekko
- 📚 Users may import their own Yomichan custom dictionaries for offline use and instant lookups, some can be found here
- 🤚 Hold onto the headword or swipe vertically in the pop-up dictionary to quickly switch between dictionaries
- 📑 External subtitles with the same name as the selected video file will be loaded by default
- ⏲️ If your subtitles are off, you can set the delay or pad the exported audio time with an allowance
- ▶️ A resume button is at the top of the main menu, and returns to last video or book
- ⌛ Users may select Context from a dictionary result to go back to the exact duration in video or scroll position in book
- ⛓️ Channels may also be added by pasting a link of any video by the channel in List new channel
- 🖧 You may also watch videos from your Plex server and cast the current video to a Chromecast
- 📡 Users that prefer to stream rather than download can open the app with a direct link to video
- ✊ Export a range of multiple subtitles by holding onto a subtitle aside from the current one in the transcript
- ⚠️ If AnkiDroid is not running in the background, tap on the export message to open it
- 🗃 The AnkiDroid deck you last export to will be remembered for your next export
- 📹 The quality closest to the last selected quality will be selected by default for YouTube videos
- 📢 Automatic captions are more excellent in podcasts and news programs with clear speakers
👥 Contribution and attribution
jidoujisho is written in Dart and powered by Flutter. Bilingual dictionary definitions are queried from Jisho.org and monolingual dictionary definitions are from Sora. Pitch accent patterns are sourced from Kanjium. Reader WebView linked to ッツ Ebook Reader. Video streaming via YouTube. Image search via Bing.
If you like what I've done so far, you can help me out by testing the application on various devices so that I can gauge the compatibility of the application with different versions of Android, making a donation or collaborating with me on further improvements.
The logo of the application is by Aaron Marbella, support his awesome work if you can!
Kanjium: The pitch accent notation, verb particle data, phonetics, homonyms and other additions or modifications to EDICT, KANJIDIC or KRADFILE were provided by Uros O. through his free database.