Random Video Player v1.40 (Can sync with MFP)


Have you ever found yourself scrolling through your vast collection of videos, unsure of what to watch, and wishing for a pleasant surprise instead? Well, I know I did.

Playing random videos from your different folders and whatnot is certainly possible with all kinds of players. But the process is often clunky and it always bothered me to go the extra mile for such a simple feature.

I’m a c# rookie at best, but thankfully I found the amazing Mpv-NET library, which let me focus on what truly matters: usability. RVP makes it a breeze to enjoy your video collection in a new and exciting way. With just a few clicks, you’re ready to dive into a seamless viewing experience, where the next video is always a delightful surprise. I have a lot of fun with this and I hope you will too!

I present you RVP!


  • Playing random videos from a location you define with a simple click
  • Create/Save/Load custom lists filled with video files you can define
  • Quick and easy navigation
  • Hotkeys and Mousecontrols for quick and easy control of the player
  • Synchronize with MultiFunPlayer while playing random videos

Microsoft Defender issue
I updated the readme on github to reflect on the Microsoft Defender issue and also created a ticket with Microsoft.

Until it might be resolved, the easiest way would be to follow those steps to make an exception for Defender:

  • Download the file, it will fail
  • Start → Virus & Threat Protection
  • ‘Protection History’
  • Expand the header that say ‘Thread quarantined’
  • under ‘Actions’ choose ‘restore’

First run:

  • On it’s first run, every setting will be at default and the application will create a config file next to it’s executable called ‘RVP-Config.json’ where settings will be stored from now on.
  • Click on the cog-wheel icon to setup everything.
  • Typical usage would be something like:
  • Open Player with your default folder, either press play or
  • Open the FileBrowser / ListBrowser to choose which folder to play from / create a list to play from
  • Switch the toggle for ‘Folder/List’ depending on what you want to play

Sync to MFP:

  • Download MultiFunPlayer if you don’t already have it
  • In RVP under settings, activate ‘Timecode Server’
  • In MFP, activate ‘MPC-HC’ as a source (Yes)
  • While RVP is running, press connect on MFP and it starts synchronizing
  • You need to play videos from your folder with scripts ofc.
  • Have Fun!


  • Mostly customizable
  • All info found within the settings!


Please leave feedback or report issues you may encounter <3


looks cool but both downloads have chrome and windows defender flagging it as a virus and immediately quarantining. they are a bit more aggressive than usual about this file


Thanks for your reply!

That is unfortunate. (Another user reported this as well) On virustotal there are false positives by Microsoft (and sometimes this other one) VirusTotal

Though, I don’t know what it doesn’t like exactly. My defender doesn’t detect anything.

Care to share what version of windows you’re using?

For the time being, I could only advice to either exclude it from defender or compile it by yourself (which isn’t a solution for everyone)

Sorry for the hasstle :confused:

1 Like

I updated the readme on github to reflect on the Microsoft Defender issue and also created a ticket with Microsoft.

Until it might be resolved, the easiest way would be to follow those steps to make an exception for Defender:

  • Download the file, it will fail
  • Start → Virus & Threat Protection
  • ‘Protection History’
  • Expand the header that say ‘Thread quarantined’
  • under ‘Actions’ choose ‘restore’

Compiling the project yourself would also work, as Defender is context aware, but that’s the more complicated solution.


I’m on Win 11. made the exception and it works fine, thanks!
syncing with mfp was very easy

1 Like

RVP got an update to 1.3! Download on github: Release v1.3 - Random Video Player · Peanutccino/Random-Video-Player · GitHub

Detailed changes:

  • Added a favorite function
    • Press the button or shortcut ‘F’ to save current file as favorite
    • It will be stored in your selected list location (Default \user\documents\RVP_ListFolder\Favorites.txt)
    • Can be loaded via listbrowser
  • Added a shuffle toggle as per user request
    • Either press the button or use shortcut ‘S’ to toggle shuffle ‘on’ and ‘off’ (Default ‘off’)
    • Turned ‘on’, behavior is like before: Whenever you change a source to play from, RVP will get all files from that source and randomizes the order.
    • Turned ‘off’ behavior changes to: Whenever you change a source to play from, RVP will get all files from that source and plays in parsing order. (Note: Toggling shuffle will refresh the current list)
      • Since it’s playing in parsing order, this also means that when you load from a folder and select “recent files only”, the order will be newest => latest
  • Added media shortcuts and changed behavior to hook globally as per user request
    • Media Play/Pause, Media Previous/Next are supported. Media Stop will be recognized but function wise is the same as Play/Pause
    • Other shortcuts will only work while RVP UI is the active window!
  • Added a file extension filter selection within the settings as per user request
    • In the settings menu, you can now select what file types are used when loading files (Default video files only)
      • This affects playing from a folder directly. So depending on whether ‘Include videos’ and ‘Include images’ is checked, it will load matching file types.
      • This does NOT affect custom lists, as you can manually define what entries should be in your list and it will play those no matter your filter settings.
  • Added a .funscript visualizer for fun and for indicating that a compatible file is loaded
  • Added a help section in the settings menu
    • It links to github (Where you can find latest releases and additional information)
    • And you can find a shortcut list there (Which is also on github and in this thread)
  • Added a new cursor position indicator when hovering the progress bar
    • Previously used the tooltip function which was resource intensive and not satisfying
    • Optimized that and improved UI
  • Bugfixes and optimization
    • Handled some exceptions when you are denied acces to a folder for whatever reason
    • Handled some exceptions when you change paths after loading
    • Removed some timer chunk that was used to retrieve MPV data and instead uses MPV events directly which is a lot less resource intensive
    • Added more savety checks to prevent exceptions

Some preview images of the update:


1 Like

I like the idea and with a good interface, can see myself using this sporadically.
Appreciate the work!

1 Like

Thanks so much! I’m happy if you enjoy it :slight_smile:

Bit demanding so feel free to say no.
Any way you could make this work with Scriptplayer (GitHub - FredTungsten/ScriptPlayer: ScriptPlayer is a video player that controls the Handy and lots of other toys in sync with videos.)?
Currently it seems very close to when using the MPCHC video player in Scriptplayer it detects RVP but unlike playing videos in MPCHC it does not load the currently playing videos funscript.

1 Like

Hey, thanks for your feedback :smiling_face_with_three_hearts:

I will take a more detailed look later, but this should be an easy adjustment. Seems like Script Player asks for more variables than MFP which I trimmed down for efficiency.

I might push a small update around weekend.

Edit: After investigating a bit, it seems ScriptPlayer isn’t just reading more variables, but actively posting commands to MPC-HC as it’s taking control over the player.

So unfortunately I have to say, that this means I propably won’t add compatibility, unless I find another way.

I would always recommend using MFP though, it’s awesome.

1 Like

How do you play multiple videos? I cant get the scripts attached to the videos

1 Like

I appreciate your input! Though, I’m not entirely sure if I understand your problem adequately, so I’ll try to explain some stuff a bit more generalized:

To actually use scripts while playing them with RVP, you need to have MultiFunPlayer running and set up correctly!

So how does it actually work, step by step:

  • Make sure, you actually have videos with associated scripts ready:

    • Video and .funscript share the same name e.g. “Video1.mp4” and “Video1.funscript”
    • All associated files have to be in the same directory next to each other
  • Download RVP and unzip it to the location of your choice

    • Run it
    • Click on the clogwheel to open the settings page
      • Activate “Timecode Server”
      • Take a moment to look at the other settings
    • Click on the folder icon and navigate to the folder that holds your videos + scripts and choose to use that folder to play from
    • RVP will now scan all files within that folder and starts playing videos at random from it
  • Setup MFP correctly:

    • Download MFP to the location of your choice and run it
    • In the top most area, click on the ‘+’ sign at the right edge of the area (Toggle media source)
    • From the list that opens, select ‘MPC-HC’ so it’s added to the area as available source
    • Either click on ‘auto-connect’ below the MPC-HC entry, so MFP will automatically connect if it finds something or simply click ‘connect’ when RVP is running already.
    • Depening on your sync toy, choose the correct connection at the bottom most area

MPC-HC should state “connected” and as soon as you play videos with a .funscript in the same directory as the video, it will automatically load those scripts and control your connected sync-toy.

Does this help clarifying? Let me know!

For the other parts of your question:

What exactly is meant with multiple videos? Note, RVP always take either a directory or a list made of entries of your choice to play from. It’s not designed to play a single file.

Anyways, have a great day! And let me know if you need to know something else :slight_smile:


Actually nevermind! I guess it was just the day. Its perfectly working now!

1 Like

New Update version 1.32 released! Mostly optimization and bug fixes; See changelog for details:

New Features:

  • Drag volume slider with mouse | Previous: Only on click and scrolling was available
  • Added option to include associated .funscripts when deleting/moving a file


  • Reduced memory usage when loading .funscript data
  • Optimized code to avoid unnecessary execution when it isn’t needed
  • Removed unnecessary properties

Bug Fixes:

  • Fixed a possible Exception where a bitmap was no longer valid when drawing was executed by adding a buffer
  • Fixed a possible Exception that occurs when rapidly triggering player navigation
  • Fixed cross thread exceptions from player events
  • Fixed a null reference error when clicking on the white space of listbox elements in folder/listbrowser


  • Changed file structure, making use of a static structures instead of inheritance
  • Drastically trimmed some functions, making them easier to follow and more efficient
  • Cleaned up namespaces

Get the latest update here: Releases · Peanutccino/Random-Video-Player · GitHub


Sorry to bother again, but I finally tried fully testing it. I have gotten it to sync just fine, but the strokes arent full. they are on time but only move like a cm or two

1 Like

You mean the visualization? Could you provide me with a screenshot maybe? :slight_smile:

Just for clarity; RVP does not handle the scripts itself, it only tells the actual Toy-Sync software (MFP) what media it’s playing.

Idk how to send a screenshot over. Maybe I can see you mfp settings? The script will play, but instead of using the full length of the handy, itll follow the script but only use about 2-3 inches of it’s stroke length

1 Like

Nah, it’s fine, since you didn’t mean the graph visualizer.

Sorry for your troubles. I suggest looking at the patch notes for MFP 1.29.0: MultiFunPlayer v1.29.3 - Multi axis funscript player - Now with SLR Interactive support - #689 by Yoooi

And try those settings for the handy. (The first paragraph)

The Handy had problems with MFP before and I don’t know if Yoooi managed to fully fix it with this setting. So I can only recommend to try that. RVP does not control the devices.

New version v1.33 released!

It’s only a small update adding some functionality requested by user:

New Feature:

  • Additional UI button to enable removing current file from active list


  • Optimized some UI tooltips to clarify it’s behavior

Shows path where files are moved to when setting is chosen:
Explicitely state, that files are deleted:
New button to remove files from current list:

- RVP holds a temporary list in it’s memory
- Every change will be kept there but will not be automatically saved to your local list.txt files
- To actually save the list to your .txt files, you need to manually choose to save a list

Scared off by the firewall thing before, just downloaded the new version and it wasn’t blocked by firewall by default.
Very useful tool.

1 Like