/memento-french

Video player where you can click on French subtitles to view English translation

Primary LanguageC++GNU General Public License v2.0GPL-2.0

Memento

TODO (in order of priority)

  • have subtitles up from bottom of screen so that in fullscreen when the toolbar appears it doesn't move the subs up
  • secondary subs
  • don't hide subs/hide bottom toolbar when term is open and mouse not on term
  • better phrases/idiom recongition?
  • anki integration
  • subtitle theming options
  • play from command line with mpv options
  • clean up code
  • term dark mode

Overview

Memento is a FOSS, mpv-based video player intended for studying Japanese.

image info

Features

  • Grammar aware subtitle search
  • Yomichan-style Kanji cards
  • Support for Yomichan dictionaries
  • Anki card creation through AnkiConnect
  • Support for mpv upscalers, plugins, and configuration files

Dictionaries

Dependencies

  • Qt5
    • QtCore
    • QtGui
    • QtWidgets
    • QtNetwork
    • QtSvg
    • QtDBus (Linux)
  • ffmpeg
  • mpv
  • sqlite3
  • MeCab
    • With a system dictionary like ipadic on Linux and OS X
  • Json-C
  • libzip
  • youtube-dl (optional)

For the best experience, install Noto Sans CJK JP and the Kanji Stroke Order fonts.

Building

I do not guarantee that any branch will successfully build or be bug-free. If you want to build a stable version of Memento, compile a release from source.

Linux

To install Memento on Linux, type the following commands:

make
sudo make install

Windows

  1. Install MSYS2
  2. Open MSYS2 MinGW 64-bit
  3. (Optional, may break things if MSYS2 is buggy) Make sure MSYS2 is up to date by running these commands:
    pacman -Sy --needed msys2-runtime pacman
    pacman -Su
    
  4. Install the necessary tools and dependencies:
    pacman -S git make mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-ffmpeg mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-qt5 mingw-w64-x86_64-mpv mingw-w64-x86_64-mecab mingw-w64-x86_64-json-c mingw-w64-x86_64-libzip
    
  5. Clone the repository:
    git clone https://github.com/ripose-jp/Memento.git
    
  6. Build Memento:
    cd Memento
    ./windows-build.sh x86_64
    
  7. The resulting file will be in
    build/Memento_x86_64
    

Mac OS X

Important Note: The OS X version of Memento has a myriad of problems that make it unusable for casual use. This build guide is intended for OS X developers interested in fixing the OS X port of Memento. Check this issue for a list of confirmed bugs or to contribute new bugs.

  1. Install Homebrew with this command:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. Install the necessary tools and dependencies:
    brew install git cmake gcc ffmpeg sqlite3 qt5 mpv mecab mecab-ipadic json-c libzip
    
  3. Clone the repository:
    git clone https://github.com/ripose-jp/Memento.git
    
  4. Build Memento:
    cd memento
    mkdir build
    cd build
    cmake ..
    cmake --build .
    
  5. The resulting executable will be:
    memento/build/src/memento
    

Configuration

Most mpv shaders, plugins, and configuration files will work out of the box. The Memento config directory is located at:

Linux

~/.config/memento

Windows

[installation directory]\config

Mac OS X

~/.config/memento

If any mpv binds or plugins do not work, please create an issue in the issue tracker.

Acknowledgements

MpvWidget code is based off of libmpv example code by w4m.

https://github.com/mpv-player/mpv-examples/tree/master/libmpv/qt_opengl

Some code based off of Baka-MPlayer.

https://github.com/u8sand/Baka-MPlayer

UI inspired by and dictionaries provided by Yomichan.

https://foosoft.net/projects/yomichan/

Fullscreen icons sourced from here.

https://www.iconfinder.com/iconsets/material-core

Various icons sourced from here.

https://www.iconfinder.com/iconsets/ionicons

Pause, play, skip, and seek icons sourced from here and used under the CC 3.0 License

https://www.iconfinder.com/iconsets/play-rounded

window_build.sh depends on this script with a slightly expanded blacklist

https://github.com/mpreisler/mingw-bundledlls