/ReeePlayer

Anki-like app for spaced repetition of video clips

Primary LanguageC++MIT LicenseMIT

Github All Releases

ReeePlayer

The ReeePlayer application is designed for spaced repetition of fragments (clips) of video and audio files with similar principle as in Anki and has the next features:

  • Download mediafiles from different sites
  • Watch video and audio files with two subtitles (by now, only external)
  • Change the playback speed without changing the tempo
  • Skip, fast forward and volume down non-voice parts in real time
  • Quickly select and save video clips with text

Social Network Links

Guides in other languages

Download

Getting Started

Before you start, it is recommended to create or select a directory on your computer for media files that you plan to use for spaced repetition.

This directory can be opened either with (Open Directory) button or being drag-and-dropped with a mouse from Explorer into the application window.

The open directory will look something like in the picture (in the beginning the number of clips will be zero).

To watch some file you need to double click on it.

When there is a clip you want to repeat later, press the Add Clip button or press the Enter key.

The clip you create can be edited if necessary. To save the clip and continue viewing, press Save Clip or Enter. A detailed description of the editing methods will follow later.

To repeat the added clips, click Repeat Clips in the main menu, or select the desired files and subfolders and select Repeat Selected in the context menu.

The upper left corner of the window shows the remaining number of clips to repeat.

When the counter reaches zero, you can still continue repeating. In this case, the most appropriate clips will be suggested (with the repetition time approaching). For these, the next repetition interval will increase according to the time elapsed since the previous repetition.

Details

Prepare video files

First of all, it is recommended to create a directory on your computer for media files that you plan to use for spaced repetition. For example, you can create Video directory on disk C: as shown below.

Then, for convenience, you can create subdirectories in the main directory for videos with different subjects. But this can also be done later at any time. If you already have video files, copy them into the directory (or the subdirectory) you have created.

Open ReeePlayer and push . Navigate to main directory (e.g. C:\Video) and press Select Folder.

ReeePlayer uses yt-dlp, so it is possible to download video from different sites. Press .

Copy one or more video-links into the URLs field.

Enter subtitle languages, separated by commas. Regular expression can be used. A few examples:

  • en (english without specifying country)
  • en-us (US-english)
  • en-gb (GB-english)
  • en.* (all available english)
  • en.*,ru.*,es.* (all available english, russian and spanish)
  • .* (all available subtitles)

The preferred resolution field is needed to limit the size of the downloaded video. The common resolutions are: 360p, 480p, 720p, 1080p (the higher the value, the better the quality and larger the video size).

Select directory and press Download.

To save time on specifying the directory you can right-click the mouse on the directory in the main window

Select video engine

ReeePlayer supports 2 video player engines: VLC and Web (Chromium). VLC supports more formats and rewinds faster, but Web changes the playback speed more smoothly. Try them both.

Watching

When you start watching a video file named x.<ext>, the application searches for subtitle files named x<lang>.<srt or vtt> in the same directory. Available subtitles can be selected from the dropdown list in both panels.

The input field is for synchronizing subtitles with video using arrows or the mouse wheel.

The button controls subtitle visibility (always show or hide), and controls visibility of the current cue only.

Hotkeys:

  • Space - play/pause
  • Left, Right - rewind or forward for 2 seconds
  • 5, 6, 7, 8, 9, 0, -, =, Backspace - playback speed: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.25, 1.5, 2.0 of normal
  • 1, 2 - show the current text of the first/second subtitles if they are hidden
  • Enter - add a clip

You can skip or fast forward the non-voice parts by pressing the button on the taskbar. It is recommend to adjust the voice detection by pressing .

Unfortunately, it takes time (~300-500 ms) for the player to change the speed after fast-forwarding. To eliminate the negative effect, increase the value in the Margin before.

Adding a clip

The start and end of the clip being created, determined by the current cue of subtitles.

If necessary, you can change them using:

  • Keys Ctrl+Left, Ctrl+Right, Alt+Left, Alt+Right (recommended)
  • Arrows on the toolbar
  • Scroll the mouse scroll wheel when you hover over the corresponding input field
  • Use mouse over waveform as shown below

If you want to complete the text of the clip with the previous or next cues from the subtitles, you can do so with the buttons.

Hotkeys:

  • Space - play the clip
  • 5, 6, 7, 8, 9, 0 - playback speed: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0 of normal
  • Enter, Ctrl+Enter - save the clip
  • Delete - cancel clip creation

Repetition

In this mode, you can edit the clip (beginning, end, texts) in the same way as when you create it.

Hotkeys:

  • Space - play the clip
  • 5, 6, 7, 8, 9, 0 - playback rate: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0 of normal
  • Enter - mark the clip as repeated and go to the next one
  • Backspace - return to the previous repeated clips

Where the clips are stored

All clips of a file named x.<ext> are stored in the file x.user.json in the same directory. For example:

This storage approach allows you to change the file hierarchy as you wish, i.e. move, rename, merge directories. It's important to keep the clip file next to the media file and only move them together.

The file format is JSON, so you can view and edit it in any text editor:

Build

Compiler with C++17 support is required. By now it tested only for MSVC 2019.

Windows

  • Install Qt 6. Add directory %QTDIR%/bin to the PATH environment variable
  • Download VLC 3.0.8. Add extracted directory to the PATH environment variable or copy folder plugins and libraries libvlc.dll, libvlccore.dll to the build directory.
  • Install cmake with version not lower 3.16.0

Run from the project catalog:

mkdir "../ReeePlayer_build"
cd "../ReeePlayer_build"
cmake --build . --config Release

Other