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.11.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96731b9c784129e5dfe26a88372c35b7ca533483652fcdb433da98e7d64e2655 |
|
MD5 | 9d1ea532b7ece9bf58f2fffb77ff5a5c |
|
BLAKE2b-256 | fbfbeaffd99fdce4545e458ebfd8b19c05eb0354ad921b345794627f4c548a3b |
Hashes for python_mpv_jsonipc-1.1.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6e95b54d83f0c8c8df649a5fd7f90f7bd4558bf2ad3f110e2d7a62b82f33d37 |
|
MD5 | 5ffc9a3a6449e01a159912f7e7c69c55 |
|
BLAKE2b-256 | ddf26d304110d2537af8057277bfc0bbc05bf28820d756d079b49701a7429abc |