Native messaging host for ff2mpv written in Rust
Find a file
eNV25 dbc4e5c8f0
Refactor {send,read}_message() (#11)
* Refactor {send,read}_message()

* Use binding for Take

---------

Co-authored-by: Ryze <50497128+ryze312@users.noreply.github.com>
2024-02-16 08:53:21 +00:00
.cargo Use cargo config to build multiple targets 2024-02-14 14:30:17 +03:00
src Refactor {send,read}_message() (#11) 2024-02-16 08:53:21 +00:00
.gitignore Add Cargo.lock. Fixes #4 2023-09-04 23:10:55 +03:00
Cargo.lock Bump version and dependencies 2024-02-14 16:34:35 +03:00
Cargo.toml Bump version and dependencies 2024-02-14 16:34:35 +03:00
ff2mpv-rust.json Added example configuration file 2023-03-14 21:22:54 +03:00
LICENSE Initial commit 2023-02-13 21:14:26 +03:00
README.md Add manifest_chromium to README and help message 2024-02-14 16:52:45 +03:00

ff2mpv-rust

Native messaging host for ff2mpv written in Rust.

This is a native compiled binary, so it runs much faster and doesn't require external dependencies by itself, unlike Python and Ruby scripts.

What is this?

This is a script for hooking mpv and ff2mpv, that allows opening any video link in mpv straight from the browser.

Installation

First, install ff2mpv extension from AMO or Chrome Store.

After that get native messasing host manifest:

ff2mpv-rust manifest

Or for Chromium/Chrome:

ff2mpv-rust manifest_chromium

Install it following manual installation instructions on ff2mpv wiki.

Configuration

On Linux configuration file is searched in such order:

  1. $XDG_CONFIG_HOME/ff2mpv-rust.json
  2. $HOME/.config/ff2mpv-rust.json
  3. /etc/ff2mpv-rust.json

On Windows configuration file should be placed at: %APPDATA%/ff2mpv-rust.json.

See example configuration.

Command line interface

ff2mpv-rust provides command line interface with following commands:

help: prints help message
manifest: prints manifest for Firefox configuration
manifest_chromium: prints manifest for Chromium/Chrome configuration
validate: checks configration file for validity

Note that it won't fail on invalid commands, but instead assume it is called from browser, blocking the input.

Contributing

All issues and pull requests are welcome! Feel free to open an issue if you've got an idea or a problem. You can open a pull request if you are able to implement it yourself.


Made with ponies and love!
GNU GPL © Ryze 2023