notes/MPV remote socket commands for script control and server use-23PXxpiD.sh
#MPV remote control shell commands
#set things up by installing needed programs
sudo apt install mpv youtube-dl socat
#start service and create file to write to
mpv --idle --input-ipc-server=/tmp/mpvsocket
#load file
#this example is playing a youtube video so youtube-dl is needed
echo loadfile "https://www.youtube.com/watch?v=JSiLviAsX6M"|socat - /tmp/mpvsocket
#or if you want json response you can use json to run commands
echo '{ "command": ["loadfile", "https://www.youtube.com/watch?v=HeeE1XIxHzg"] }'| socat - /tmp/mpvsocket
#Pause file
echo '{ "command": ["set_property", "pause", true] }'| socat - /tmp/mpvsocket
#unpause file
echo '{ "command": ["set_property", "pause", false] }'| socat - /tmp/mpvsocket
#to append another file to the end of the playlist
echo loadfile "https://www.youtube.com/watch?v=Gzn396wr9AY" append-play |socat - /tmp/mpvsocket
#seek forward and back in seconds
echo '{ "command": [ "seek", "+1" ] }' | socat - /tmp/mpvsocket
echo '{ "command": [ "seek", "-1" ] }' | socat - /tmp/mpvsocket
###the above commands don't show the OSD (On Screen Display)
#if you want, you can send keypresses instead, which will show OSD
echo '{ "command": [ "keypress", "right" ] }' | socat - /tmp/mpv.socket
echo '{ "command": [ "keypress", "left" ] }' | socat - /tmp/mpvsocket
echo '{ "command": [ "keypress", "up" ] }' | socat - /tmp/mpvsocket
echo '{ "command": [ "keypress", "down" ] }' | socat - /tmp/mpvsocket
##get a full list of keys with this command
mpv --input-keylist
#you can list all options like this
mpv --list-properties
#or, if you know the shortcut keys, you can always use them
echo '{ "command": [ "keypress", "]" ] }' | socat - /tmp/mpvsocket #speed up
echo '{ "command": [ "keypress", "[" ] }' | socat - /tmp/mpvsocket #slow down
#reset speed by sending BACKSPACE key list this
echo '{ "command": [ "keypress", "BS" ] }' | socat - /tmp/mpvsocket
#screenshot
echo '{ "command": [ "keypress", "s" ] }' | socat - /tmp/mpvsocket
###other commands
#send your own message to screen
echo '{"command":["show-text","This is a message"]}' | socat - /tmp/mpvsocket
#show OSD of current position
echo show-progress | socat - /tmp/mpvsocket
#i3 keybindings
bindsym XF86AudioPlay exec echo cycle pause | socat - /tmp/mpvsocket
bindsym XF86AudioPause exec echo cycle pause | socat - /tmp/mpvsocket
bindsym XF86AudioStop exec echo cycle pause | socat - /tmp/mpvsocket
bindsym XF86AudioPrev exec echo playlist_prev | socat - /tmp/mpvsocket
bindsym XF86AudioNext exec echo playlist_next | socat - /tmp/mpvsocket
syntax highlighted by Code2HTML, v. 0.9.1