Go to file
zenyd 9bdce00501 update speed-transition
* use sub-end instead of sub-text. Disadvantage is that ignoring subtitles is broken right now. Advantage: image based subtitles are working.
For dvd subtitles (that's what I tested) it can happen that some subtitle lines, get 'eaten'. They don't show even though they should.
* implement sub-timeout: when subtitles are displayed without change for some time (5s) -> speedup. (Useful for autogenerated subtitles)
* improvements to skip mode:
    - better behaviour if next subtitle is not in cache
    - option for non-exact skips. This also implements seek-back since a skip is not guaranteed to end at the next line. It might skip over it.
* users can now supply a script configuration file (speed_transition.conf)
* remove key binding for sub visibility. Pressing v seems to handle this nicely.
* change key binding for skip mode to alt + j
* added bunch of debugging code to better debug issues
2024-02-12 03:28:35 +01:00
censor add script censor 2021-03-13 16:18:52 +01:00
subselect Providing Auth configuration via subselect.conf (#37) 2024-01-19 21:07:15 +01:00
LICENSE Initial commit 2017-09-05 18:48:07 +02:00
README.md update speed-transition 2024-02-12 03:28:35 +01:00
copy-paste-URL.lua add script copy-paste-URL 2021-03-09 01:57:39 +01:00
delete_file.lua delete-file: option to move instead of delete 2022-04-22 00:08:36 +02:00
speed-transition.lua update speed-transition 2024-02-12 03:28:35 +01:00

README.md

speed-transition

This is a lua script for the mpv media player. The purpose of this script is to speed up the video if no subtitles are visible for a certain amount of (user configurable) time. It is inspired by the speed-between-subs script.

How it works

The script looks for the next subtitle and if it is ahead by 5 (default) seconds the video gets sped up and resumes normal playback just before the subtitle becomes visible. This is done to prevent audio glitches when speech starts.

Usage

For the script to work it is necessary to have an appropriate subtitle selected. It's possible to hide the subtitles with v and still have the benefit of the script. To enable it press ctrl + j and to switch modes press alt + j.

It works best in video-sync=audio mode (the default in mpv), because it will then be able to minimize frame drops on speed transition from high->normal. Stutter-free playback is the result.

Sensible defaults have been set, but if you want to change the lookahead value take care to not set it larger than what the buffers can provide. This applies to embedded subtitles and not external.

operation modes

The script supports two operation modes speed mode (default) and skip mode. In skip mode the video doesn't speed up, but it gets skipped (with delay) till the next subtitle. It can be configured to skip directly to the next subtitle or in steps. To switch between them press alt + j.

skip mode can be further configured to allow non-exact but fast skips. Disadvantage: it is likely that the the next subtitle gets skipped over. Therefore seek-back is implemented so the video gets seeked back just before the skip to aleviate this problem. In general leaving exact skips on (default) is recommended.

Key binds

Key Bind Effect
ctrl + j Toggle script on/off
alt + j switch modes (speed up/skip) - also enables script if disabled
alt + '+' Increase speedup
alt + '-' Decrease speedup
alt + '0' Increase leadin (time before the next subtitle to return to normal speed)
alt + '9' Decrease leadin
alt + '8' Increase lookahead (if the next subtitle is closer than this, don't speed up)
alt + '7' Decrease lookahead

Options

Option Description
lookahead if the next subtitle appears after this threshold then speedup/skip
speedup the video speed set during speedup
maxSkip max. seconds to skip
directskip directly skip to next subtitle
exact_skip use slow but accurate skips (default)

These and more options can be set in a speed_transition.conf file in the script-opts folder.

subselect

A lua script for downloading subtitles using a GUI and automatically loading them in mpv. It lets you input the name of the video but mainly tries to guess it based on the video title. Uses subliminal for subtitle download and Python tkinter for GUI. Works both on Windows and Linux (possibly macOS too?).

Right now it only lists subtitles from OpenSubtitles, but has the ability to search for the best subtitle which searches all subtitle providers.

Prerequisits

  1. Install Python 3
  2. Make sure Python is in your PATH
  3. Linux: Depending on the used distribution installation of pip and tk may be necessary
  4. Install subliminal: python -m pip install subliminal should do the trick

Installation

Copy the subselect folder containing main.lua and subselect.py into your script folder. If you have previous installations of subselect where it was not inside the subselect sub folder, remove them.

Configuration

Changing the configuration is optional. Options:

  • down_dir: set the download path for the subtitles
  • sub_language: set language for subtitles [default english]; value is a 3-letter ISO-639-3 language code

Per default the script tries to download the subtitles into the folder from where the video is being played. Is that not possible it downloads them into your HOME folder, or in Windows into your Downloads folder. You may have to set the subselect.py path manually if the script guesses the wrong mpv configuration directory. If the script is somehow not working as expected, it is recommended to set down_dir and make sure it's an absolute path and does exist.

The option to be changed can be put inside a subselect.conf file in the script-opts folder. Create them if they don't exist. Sample subselect.conf if you want to change all options:

down_dir=C:\Users\<me>\subtitles
sub_language=deu

Usage

First invoke the script using alt + u, input a movie name, or use the one provided by the script, search and download subtitles. If you want to change the language for the subtitles append ;[3-letter ISO-639-3 code]. So if you want to search for e.g. german subtitles append ;deu.

delete-file

As the name suggests this is a small script for deleting files played through mpv. You can mark a file to be deleted and can unmark it if desired. Once quitting mpv, the script starts the deletion process. This is platform-agnostic so should work everywhere.

Key Bind Effect
ctrl + DEL mark/unmark file to be deleted
alt + DEL show the list of files marked for deletion
ctrl + shift + DEL clear the list of marked files

The script can be configured to move files instead of deleting them. The default folder for the moved files is C:\Users\<me>\delete_file. To change the defaults create a delete_file.conf inside of the script-opts folder with contents:

MoveToFolder=yes

copy-paste-URL

Like its name suggests - copy and paste links into mpv with ctrl + v to start playback of a video. This needs an open mpv window like mpv --idle --force-window or a window already playing a video. Also the script utilizes powershell, so that needs to be installed as well.

censor

Skip over parts of videos you don't want (others) to view.

##download and installation

download only "censor" folder and its contents. put the "censor" folder(along with files in it i.e "names" folder and "main.lua") in the "scripts" folder inside mpv configuration folder.

Usage:
imagine you want to skip the intro which begins on timestamp 0:2:30 and lasts until timestamp 0:4:00 your anime is called Attack on Titan - 03.mkv. So you create a text file named Attack on Titan - 03.txt inside the names folder. Now open the just created file and paste 0:02:30 0:04:00 inside it. Save and exit. If you open the anime Attack on Titan - 03.mkv it should now skip to the timestamp 0:04:00 after the playtime reaches 0:02:30. If you now also wanted to skip the ending you would add one more line to the text file with contents like this 0:21:00 0:22:00 source of usage - zenyd (https://github.com/zenyd/mpv-scripts/issues/30#issuecomment-872418598)