XBVR Guide - Host your own Video/Funscript streaming with Images, Previews and More!

XBVR Windows Setup Guide

XBVR is a streaming media server application that takes VR Videos/Funscripts and provides an easy playback/browsing experience.

Per poll results, we will be starting with a guide based around Windows. A Linux/Docker/NAS version will be added later, but you can export your config from Windows over to Docker later if you want to get started now!


  • Windows PC with local VR video files or access to them via a network share/NAS
  • LAN IP Address of your PC (Use a static IP if possible)

#1: Initial XBVR Setup

  • Download the latest XBVR Windows_amd64.zip from the Releases page (Releases · xbapps/xbvr · GitHub) Extract the Zip file to a location on your computer (This will be where you run XBVR from, it does not “install”)
  • Run XBVR.exe (Allow some time for first startup)
    • If you get a “Windows SmartScreen” warning click “More Info”-> “Run anyway”
    • If you get a “Windows Firewall” popup click “Allow Access”
  • Open XBVR in your web browser (

#2: Set up Scrapers

Scrapers gather the scene/actor data from VR sites which XBVR matches to your files and uses to provide thumbnails, descriptions, etc.

  • OPTIONAL – See Advanced Setup #1 below to speed up initial scraping
  • Go to Options (top menu) → Scrapers (left menu)
  • Toggle “Enabled” for any sites you have videos for
    • I do not recommend doing all sites as this will use unnecessary disk space/make scraping take extremely long
  • Click “Run selected scrapers”
  • Allow scraping to complete (Monitor on upper-right, this will take some time so recommend getting a drink, etc.)

#3: Set up Scripts/Videos

Here we tell XBVR where your videos/funscripts are located

  • Go to Options (top menu) → Storage (left menu)
  • Under “Path to folder with content” enter a path on your computer that contains your video/funscript files
    • You can add multiple paths if you have your files in multiple locations
    • If your files are on a NAS, you can use a mapped drive path instead
  • Click “Rescan all folders”
  • Allow the scanning to complete (Monitor on upper-right)

#4: Match your Videos and Funscripts to Scenes

This is the tedious part of setup. If you kept default file names from studios, you may have a lot automatically matched… for everything else (such as my entire library since I use a standard naming convention) you’ll have to match them yourself.

  • Click on “Files” (top menu) then select “Unmatched”
  • Click “Match” on the first file
  • If you see the correct scene displayed, click “Assign”
    • If not, select a portion of the text for the studio, scene title, actress, etc. and use the respective button above the search field to narrow the search, then “Assign”. You can also enter your own text in to the search field
    • If you cannot find a match, use the left/right arrows to move to the next file (you can set up manual scrapers/manual scenes later, there should generally be very few that won’t match to something)

#5: Start Using XBVR

At this point XBVR is set up and running on your PC, it’s time to test everything in VR!

  • Open HereSphere on your headset
  • Access the HereSphere Web Browser and go to http://your-pc-ip:9999/heresphere
    • For DeoVR simply go to http://your-pc-ip:9999
  • Browse and play your videos!
    • If the video has an associated Funscript (Step #4), it will play automatically in HereSphere/Deo once you have a toy connected

Continue to the Advanced Setup section below if you want to get the most out of XBVR.

Version 1.0 - Nov 11, 2023


Advanced Setup

Now that XBVR is up and running, there are a number of changes we can make to improve the experience.

#1: Prevent Windows Defender from scanning XBVR
If XBVR is running fine, I would recommend skipping this step. This will speed up XBVR scrapes/scans significantly (and reduce resource usage on your PC), but you will be disabling Windows Defender protection on XBVR’s application and files. Weigh the risks and decide if this is important to you.

  • Click on the “Windows Security” (Shield) icon on the lower-right section of your taskbar (You may need to use the “^” to show hidden icons)
  • Click “Virus & Threat Protection”
  • Scroll down to “Virus & threat protection settings” and click “Manage Settings”
  • Scroll down to “Exclusions” and click “Add or remove exclusions”
  • Click “Add an exclusion” → Choose Folder and enter your XBVR Cache Path (C:\Users\your-username\AppData\Roaming\xbvr)
  • Click “Add an exclusion” → Choose Process exclusion and enter “XBVR” (without quotes)

#2: Disable DLNA
XBVR Comes with a DLNA server pre-enabled. This broadcasts within your network and will show up easily for others. It is entirely unnecessary if you use HereSphere or DeoVR so I would recommend disabling it, unless you live alone or don’t care who might stumble on your collection.

  • Go to Options (top menu) → DLNA (left menu)
  • Toggle “Enabled” to off
  • Click “Save and apply changes”

#3: Generate Previews for your Videos
This one is a “Killer Feature” for XBVR. You can have preview play (Both in-browser and in-headset) when you put your cursor over a video. If you have a sizeable library this will take a LONG time. You can still use your PC while it runs, otherwise start preview generation before going to bed/away for the day.

  • Go to Options (top menu) → Previews (left menu)
  • Customize preview settings (I chose 10x 1.2 second snippets starting at 15seconds, with a resolution of 480px. Adjust to your taste)
  • Click “Test settings”
  • After a few moments, an example preview will be shown. If you are satisfied click “Save settings”, otherwise adjust and test again
  • Click “Start generating previews”

#4: Set up your Watchlist/Favorites/Wish/Custom Lists
These lists can be used to quickly access your scenes in a Browser/Headset. Watchlist and Favorites will automatically appear in the headset view, you can select whether or not other custom lists will be.

  • Go to Scenes (top menu)
  • Click on the Watchlist (calendar) icon for scenes you want to queue
  • Click on the Favorite (heart) icon for scenes you want to revisit
  • Create custom lists (Searches) for easier browsing

Custom List Examples:

Name: Watched / Sort By: Watched Date (Descending) / Show in Headset: No / Purpose: Rating scenes recently watched/Removing from watchlist

Name: New Scripts / Properties: Scripted / Watched: No / Show in Headset: Yes / Purpose: Scripted Scenes not yet watched

Name: Asian / Properties: Scripted / Tags: Asian, Asian Female / Show in Headset: Yes / Purpose: Scenes with Asian Girls

#5: Set up Scheduled Tasks
Scheduled Tasks will update your media library, previews and data scraped from VR sites.

  • Go to Options (top menu) → Task Schedules (left menu)
  • Rescrape: This can use a lot of resources so set it to run at a time of day where your PC will be idle. My settings are: “Every 23 hours”, “Time of day: 02:00-06:00”, “Start 30 minutes past the hour”, “Do not run at startup”
  • Rescan: This scans your folders for new Videos/Scripts. I personally run this on the same schedule as Rescrape, but if you don’t want to wait overnight for files to be scanned, or manually scan when adding files, you can use a more aggressive schedule here (hourly, etc.)
  • Preview Generation: Same schedule as above
  • Actor/Stashdb Rescrape: No Schedule

#6: Enable Heatmaps in headset view
This will show heatmap previews in the headset browser.

  • Go to Options (top menu) → Players (left menu)
  • Enable “Enabled” under “Funscript Heatmaps”
  • Click “Save and apply changes”

#7 Enable Heresphere / DeoVR Advanced Options

  • Go to Options (top menu) → Players (left menu)
  • For DeoVR:
    • Main tab: Enable “Watch time tracking”
    • DeoVR Tab: Enable “Remote Mode” (and turn on in DeoVR app in headset)
  • For Heresphere:
    • Heresphere Tab: Enable “Allow Ratings Updates”, “Allow Favorite Updates”,“Allow Tag Updates”, “Allow Watchlist Updates” and “Allow Saving Hsp Files”
  • Click “Save and apply changes”

Extra Tips

#1: Shut down XBVR
You can optionally shut down XBVR when not in use.

  • Locate the XBVR icon in your system tray (lower-right area of the taskbar)
  • Right-click and Quit

#2: Rate and Favorite your scenes
There is an automatic “Favorites” category in the Headset view. Ratings can help you further narrow things down, search by star-rating, as well as providing a “Scene average Score” to performers. You can also rate performers on the “Actors” tab.

#3: Mark Videos Watched
You probably have lots of videos you have already watched, You can mark these videos as watched. Enable the “Watched” (eyeball) and you will be able to toggle “Watched” status for videos from the Scenes tab.

  • Go to Options (top menu) → Web UI (left menu)
  • Enable “show Toggle Watched Status button”
  • Click “Save”

#4: Hide Duplicate Scenes from Scrapers
Some scenes are published to multiple sites. If you are getting a lot of duplicates, or want to match everything to a specific site (Say VRHush instead of VRPHub) click “Hide” (red eyeball with a slash) on unwanted duplicates to prevent them coming up in future searches

#5: Use Filters / Toggle the web view in-headset
If you want to access XBVR’s Web UI click the Player icon on the upper-left in Heresphere/Upper-right of DeoVR – using this you can set up custom lists/manage XBVR inside VR.


–Reserved for Linux/Docker–


So, I tried to follow your instructions but for some reason I cannot access the local server through the DeoVR browser on my phone. It just giving me error. ERR_SSL_PROTOCOL_ERROR. However, I can reach the local server through the chrome browser on my phone. It is just not working in DeoVR Cardboard.

DeoVR may be defaulting to HTTPS - click the “lock” icon next to the address and/or make sure the url is http://your-pc-ip:9999 -not- https://…

If that doesnt work let me know and ill try DeoVR Cardboard (I assume that’s on android?)

Yeah, httpS was the problem. Now it is working. I can play vids from my phone. Thanks for a hint!
However, I still need some help.
I have a video for which I created my own script. So, how can I match my script with the video? I’ve placed the video and funscript with the same name in the folder but I still can’t match them. The video is marked as “unmatched” and when I’m trying to match it with the funscript the search is not giving me any results for the script. Also, how can I run it on my Keon? Where should I connect my Keon and by which means? Do I need to install some another software like Intiface central?

update. Somehow I managed to match video with the script. But still can’t figure out how to connect Keon to run everything :sweat_smile:

If you search for the Scene using “Quick Find” (top menu) does it show up? (without a file matched, obviously)

If it does, go to the file you want to match, and just delete the entire “Search:” field. Type the name of the scene in, highlight the text and click “title:” and it should come up. You can also add site/cast in the same way to narrow it down. Manually match your Funscript and Video both to the scene and you’ll be good to go!

If it does not, you may need to enable a scraper for the site which has that video, or create a manual scene (I can add a guide for manual scenes later)

You connect your Keon(/Handy/Etc.) to the player (DeoVR/Heresphere) using the standard methods for those players. For DeoVR you have to visit www.sexlikereal.com in the browser (every time you open the app, unfortunately) then you should have options for toy sync appear in the menu. Once you have your device configured, you should only need to visit www.sexlikereal.com once in the DeoVR browser each time you open the app, and your device should connect.

If there is a funscript associated to your video, it should just play, assuming your Keon is synced with DeoVR.

Bruh. I was hoping there is a way to avoid visiting SLR and run the scripts even without the internet access. But, unfortunately, looks like for now there is no such option. So finally, I managed to match the script with video and run everything but this is not what I expected for. Anyhow, thanks for your help and for this instruction!

The sexlikereal.com thing is a limitation placed by DeoVR unfortunately. They require you to visit the site to unlock funscript/toy capabilities in the player.

If you have another way of playing funscripts locally, XBVR may still do what you want. Heresphere is great for VR, not sure what options exist for Android smartphones - I’ll do a little googling later and/or see if there is a workaround to get scripts working in Deo while fully offline :slight_smile:

Few years ago when I bought the Onyx, I could play local videos and scripts on my phone through the FeelVR/Feelconnect app. Unfortunately, later on Kiiro removed the feature to play local vids to get more money from the online videos. So many years already passed after this happened and there is still no any similar solution for smartphones.I still have the old version of this app on my phone but unfortunately, it is not recognizing the Keon.

I’m thinking now to buy myself a Quest 3. But the price is a bit high. Also I’m not sure if I will be able to run everything offline. Not a big deal but sometimes I really need this feature.

I was not able to find an android workaround but Heresphere states compatibility for direct Bluetooth connection to the Keon so getting a quest3 (or a used q2) should do what you want. With that you should be able to use XBVR with scripts without internet.

It also looks like the new Haptics Connect app could be made to work if XBVR added compatibility for it, since it does use a browser (similar to DeoVR) - but it gives a “Cleartext not allowed” error when trying to load in the app currently. You might consider joining the XBVR Discord or posting an issue on their Github to see if compatibility could be added later. I believe this would allow you fully-offline compatibility with the Keon and XBVR, but its up to their devs to add it.

Haptics is not working without internet connection. I tried already :sweat_smile:

Hello everyone
i need help to set up my xbvr with my handy (i use deoVR with SteamVR)
i have correctly installed and added videos and scripts to xbvr, i think i understand how the interface works.
I run the videos without any problems but I can’t run the scripts, I guess I’m missing a setting but I can’t find it …
I guess I need to connect xbvr to SLR for this to work, but could someone tell me where this needs to be set?
(I understand that heresphere works great but I’d like to avoid spending another $30)

edit : just found five minutes later ^^
just need to go on slr site to connect the handy, then i went to my localhost:9999, works just fine, I hope we’ll soon be able to do without this little constraint.

You don’t need to spend 30$ every time. Just buy 1 video + script on SLR. It will cost like around 13$ all together. After that you will gain access to the haptics sync link all the time and it will not disappear. You will be able to play all local scripts and videos on your device.

it won’t disappear => really?what guarantees do we have? (answer: none)
scenes and scripts can disappear at any time on SLR, if a studio or creator so decides :wink:

Dude I just told you how to avoid monthy subscription and save some money. And this method is working fine for years already. But you are right, nobody can guarantee anything. :sweat_smile:

Hello everyone, could someone who works with the funscript post picture by picture. With DEOVR and Heresphere - shows but the Funscript simply doesn’t work. Do you need to run a few programs on your PC? At DeoVR - Haptic Connect shows disconnected - SLR Premium

thanks in advance

DeoVR needs to be connected to your Toy in order for XBVR (or any funscripts) to work. This is independent of XBVR, but I have a basic outline of the steps above (quoted here):

No extra software is needed outside of XBVR server and a player of your choice (DeoVR or Heresphere). Deo and Heresphere can both connect to your toy directly, then XBVR serves the video/script to the player.

1 Like