I am sharing with you all the script player I’ve been using. This is a player I made myself after not finding any good player for Linux that fit my needs.
This player requires python and mpv to be installed on your machine. it is also recommended to use it with special actions from your file manager to easily launch it from any video file. seen below.
Here is the readme for more information on how to install and use this script. Enjoy!
handy-mpv
Simple script to play funscripts using mpv and the power of python.
Shortcuts
Q : Quit application
up arrow: pause script playback but keep video playing.
down arrow: Re-sync script / restart script playback. use this if for some reason your script becomes out of sync.
all other mpv shortcuts should work as inteded.
# example usage
$ python app.py yourscript {args}
#arguments
--double: doubles every stroke in the provided script (does not modify the actual file)
This option is mostly created for fapheroes. results may vary for normal scripts but sometimes creates very interesting results.
for fapheroes however, this makes it so every beat is a full stroke. so assuming you have 4 beats such as:
O---O---O---O
the resulting motion will be:
up-down-up-down-up-down-up
instead of:
up---down---up---down
this was created to more closely match the way I would play fapheroes without the handy.
aditional notes
on startup, the script will do a time sync with the handy server to insure accurate strokes. The server delay is stored in a file and the sync will no re-happen for an hour after that.
on the first sync with the device. it is usually required to run the script twice. if your video never starts. it’s probably for this reason. simply re-run the script.
pausing the video will pause the script. however, if you press the resync button. the script will start playing with the video still paused.
scrubbing the player automatically scrubs the script to the appropriate timestamp.
If you have a looping video, the script will also loop.
What would be required to enable local playback via bluetooth and/or local handycontrol instance? I just got my unit and wanting to contribute to improving quality of life on *nix.
I’m not familiar with how the bluetooth works for the handy, but for local playback, I think it’s just a matter of changing the server for the handy api calls. You just need to keep the endpoint that converts funscripts to csv, since I don’t think this comes with the local server.
Sorry for the late reply, been busy working on other things. I’ll be pushing an update soon, couple stuff broke for me after updating some local libs. probably should figure out how to package this as an executable.
Hello! thanks for the interest!, the video is “Fap Hero - Ero Festival” I think I got it from one of the big script archives torrents that are floating around on the web. I can give you the script tho, believe liquid made it.
def video_pause_unpause(property_name, new_value):
paused = new_value
if paused:
sync_play(0, 'false')
else:
value = player._get_property('playback-time')
if value is not None:
time_ms = int(value * 1000)
sync_play(time_ms, 'true')
player.observe_property('pause', video_pause_unpause)
Yup, that worked perfectly fine! Thanks a lot! <3
Ok, I played around with it, and the “config=True” is enough if your mpv configuration is in the default place. (So ~/.config/mpv) If it doesn’t exist then it creates that path, but doesn’t create any files. So the below is enough for the default place:
player = mpv.MPV(config=True, input_default_bindings=True, input_vo_keyboard=True, osc=True)
Also if you put non existent path into the config_dir, then it’ll be created. And for some reason it doesn’t read ~/ as home path, so to be safe it’s better to put the full path.