Git Product home page Git Product logo

easympv's Introduction

easympv (mpv plugin)

⚠️ Work in progress: Master branch can be unstable!

Some Images

More images

Extends base mpv with more features and makes it a bit more user-friendly.
Currently supports Windows, macOS and Linux.
macOS support is experimental and not fully finished, as I lack a device to test on.

Features

  • Menus with custom Fonts, optionally everything is controllable using only the mouse, useful for home theater use!
    • Different languages are supported! See the bottom of this page for more information.
    • The color of the selector is customizable
  • Integrated File Browser, Disc/Device Selector, URL Input
    • Save folders to Favorites
    • Load subtitles during playback
    • Remove files from within mpv
  • Automated applying of shadersets, such as Anime4K, FSRCNNX, CRT and more (these are included)
  • Automated applying of color profiles
  • Automatic skipping of certain chapters (such as Openings/Endings)
  • Quick toggles for properties you don't have to touch often, such as fps or aspect-ratio, saving precious keybinds!
  • A more advanced reimplementation of autoload.lua, providing interactive playlist management
    • This is currently very half-baked and will often break, see Known Issues.
    • Please disable autoload.lua if you use it, otherwise this functionality will be disabled at runtime!
  • A reimplementation of autosave.lua
    • Please disable autosave.lua if you use it, otherwise this functionality will be disabled at runtime!
  • Automatic Updates & Git Pulling
    • Git Pulling may lock up mpv in some cases, see Known Issues.
  • Overlays, such as:
    • A simple digital clock (screen corner position can be customized)
      • It could be cut off at weird window sizes, see Known Issues.
    • On-screen log, so you don't have to launch mpv from a terminal to read it (CTRL+ALT+~)
    • Command input for mpv commands (CTRL+~)
    • A JavaScript console for easier debugging (CTRL+Shift+~)
      • All of these can also be toggled from the Developer Options (Preferences -> Developer Options)
  • A simple API to create and remove menus from other plugins
    • This might get replaced with a better solution down the line.

Installation

Please be aware of the Known Issues before installing this.

Prerequisites

Windows

  • Windows 8 or higher
    • Windows 7 might work if you update Powershell and .NET Framework to v4.5+
  • mpv, the newest version from here

macOS

  • mpv, preferably installed using brew: brew install mpv

Why?: This version of mpv has been compiled with LuaJIT support, which is needed for some of the more advanced plugins like mpvcord. easympv by itself does not need it, so if you have no need for plugins like mpvcord, any other up-to-date mpv distribution will probably work.

Linux

The automatic installer script will (hopefully) take care of any dependencies.
If you wish to install easympv manually you will (at least) need the following dependencies:

  • mpv (duh)
    • If you want plugins like mpvcord to work, it needs to have been compiled with LuaJIT support (Not all distributions do this!)
  • either wget (preferred) or curl (usually preinstalled)
    • This is only needed for the updater, easympv will only ever send requests to GitHub!
  • xclip OR wl-clipboard (if you use Wayland)
    • When in doubt, install both!

Install

Windows Installer

Unfinished. Installing manually is recommended for now.
If you feel adventurous, you can download the installer from here.
In case you choose this route, make sure to select the Git version in the installer, otherwise you will forever be stuck on that version.

Linux Installer

Paste this into a terminal:
sh -c "$(curl https://raw.githubusercontent.com/JongWasTaken/easympv-installer/master/installer.sh)"

⚠️ Running random commands from the internet can be dangerous, you should always check what exactly you are running. Read the source here (i suck at bash scripting, sorry).

This script should work on Arch and Debian/Ubuntu, though it has not been fully tested yet.
Please report issues!

Manual (All platforms)

Download the latest release (or the master branch) and put all files into %appdata%\mpv (Windows) or ~/.config/mpv (everywhere else).
Launch mpv to generate config files (mpv.conf, input.conf, easympv.conf) and follow the on-screen instructions.

Known Issues

Autoload.js

  • The generated mpv playlist will sometimes clear itself.
  • The generated mpv playlist will sometimes not be in the correct order.
  • Jumping to a playlist entry in the playlist menu will rarely crash mpv.
    • This is probably some kind of file path name issue.

Because of these issues, it is currently recommended to use autoload.lua alongside easympv.
The Autoload module will be disabled automatically.

UI.js

  • Clock positioning can look incorrect on non-standard resolutions.

Utils.js

  • Git update will currently lock up mpv in most cases.

Misc

  • macOS code paths have not been tested in a while and will probably cause issues or crashes.

Syncplay Incompatibility

  • SyncPlay's chat integration somehow offsets the OSD, which makes menus appear out of bounds.
    • Workaround: Disable chat integration, and use the SyncPlay window instead.
    • I am currently unaware of a solution to this.

Ideas

  • Overhaul menu definition to make code more readable?
    • This would also make third-party menu integration possible.
    • This would result in a lot of work, so this idea might be scrapped.

Localization

easympv now supports different languages!
These languages are currently implemented:

  • English
  • German

See the wiki page for more information.

License

All easympv code and assets (all JavaScript files and images in scripts/easympv/images/) are licensed under the MIT License.
Third-Party assets in this repository use different licenses, such as fonts and shaders.
See scripts/easympv/Credits.txt for all attributions.
Special thanks to VideoPlayerCode for their awesome plugins. They have served as inspiration for this project, although none of their code has been reused.
Please open an issue if I forgot someone!

easympv's People

Contributors

jongwastaken avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.