Python API to MPV using JSON IPC
Project description
Python MPV JSONIPC
This implements an interface similar to python-mpv
, but it uses the JSON IPC protocol instead of the C API. This means
you can control external instances of MPV including players like SMPlayer, and it can use MPV players that are prebuilt
instead of needing libmpv1
. It may also be more resistant to crashes such as Segmentation Faults, but since it isn't
directly communicating with MPV via the C API the performance will be worse.
Please note that this only implements the subset of python-mpv
that is used by plex-mpv-shim
and
jellyfin-mpv-shim
. Other functionality has not been implemented.
Installation
sudo pip3 install python-mpv-jsonipc
Basic usage
Create an instance of MPV. You can use an already running MPV or have the library start a managed copy of MPV. Command arguments can be specified when initializing MPV if you are starting a managed copy of MPV.
Please also see the API Documentation.
from python_mpv_jsonipc import MPV
# Uses MPV that is in the PATH.
mpv = MPV()
# Use MPV that is running and connected to /tmp/mpv-socket.
mpv = MPV(start_mpv=False, ipc_socket="/tmp/mpv-socket")
# Uses MPV that is found at /path/to/mpv.
mpv = MPV(mpv_location="/path/to/mpv")
# After you have an MPV, you can read and set (if applicable) properties.
mpv.volume # 100.0 by default
mpv.volume = 20
# You can also send commands.
mpv.command_name(arg1, arg2)
# Bind to key press events with a decorator
@mpv.on_key_press("space")
def space_handler():
pass
# You can also observe and wait for properties.
@mpv.property_observer("eof-reached")
def handle_eof(name, value):
pass
# Or simply wait for the value to change once.
mpv.wait_for_property("duration")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for python-mpv-jsonipc-1.1.13.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6fc293c74934a9c71bb1037790f03e17338bc0f7b9d6994e8f4d226af1cf6e5 |
|
MD5 | 1b9e61105136b50996db5844d1a2bf0e |
|
BLAKE2b-256 | cc8a27d9f5bf62392ff954b0a028eec95509062382c503aca9c7cadb34dfe92d |
Hashes for python_mpv_jsonipc-1.1.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f5d01491627c6d6beececb1b2a83cef7ec319740fa24e3d762419b74761df84 |
|
MD5 | 2664cca0ea50dd3ae2a94c0ef420388e |
|
BLAKE2b-256 | 9f3d0ca0ecde76a5da7f5c2d9be2b26047ff5e1f5b37f8256f558dec7423a345 |