Watch your Stash library in VR for that full immersion effect.
Stash-VR bridges your Stash instance and VR video player allowing you to browse, play and manage your scenes using the video players native VR UI.
It's lightweight, optionally configurable and has support for two-way sync.
Install Stash-VR, point it to your Stash instance and point your VR video player to Stash-VR.
(Traditional flat/2d videos as well as VR videos are supported.)
Container images available at docker hub.
For details or docker compose see docker_compose.yml.
After installation open your endpoint (e.g. http://localhost:9666
) in a regular browser to verify your setup.
docker run --name=stash-vr -e STASH_GRAPHQL_URL=http://localhost:9999/graphql -e STASH_API_KEY=XXX -p 9666:9666 ofl0w/stash-vr:latest
Stash-VR listens on port 9666
by default. To change local port, use docker port binding, e.g. -p 9000:9666
, or set env. LISTEN_ADDRESS=:9000
to listen on port 9000
instead.
Download and extract a binary for your platform. Run stash-vr -h
to display help.
Example: Connect to Stash running on localhost:9999 with api key XXX and set Stash-VR to listen on port 9000:
stash-vr --STASH_GRAPHQL_URL=http://localhost:9999/graphql --STASH_API_KEY=XXX --LISTEN_ADDRESS=:9000
STASH_GRAPHQL_URL
http://<stash.host>:<9999>/graphql
.STASH_API_KEY
Browse to http://<host>:9666
using a supported video player. You'll be presented with your library within their respective native UI.
To enable two-way sync with Stash the relevant toggles (Overwrite tags
etc.) in the cogwheel at the bottom right of preview view in HereSphere needs to be on.
Scene metadata is handled using Video Tags
in HereSphere.
To tag a scene open it in HereSphere and click Video Tags
above the seekbar.
On any track insert a new tag and prefix it with #:
i.e. #:MusicVideo
.
This will create the tag MusicVideo
in Stash if not already present and apply it to your scene. Removing a tag in HereSphere will untag the scene in Stash.
Same workflow goes for setting studio and performers but with different prefixes according to below:
Metadata | Prefix | Alias |
---|---|---|
Tags | #: |
Tag: |
Studio | $: |
Studio: |
Performers | @: |
Performer: |
(Both Stash and HereSphere use the word tag but they use it differently. Tags in heresphere are akin to Markers in Stash)
Markers in Stash need a primary tag. Marker title is optional.
To create a marker using HereSphere play the target scene and create a "tag" on any track using Video Tags
.
The naming format is:
<tag>:<title>
will create a Marker in Stash titled <title>
with the primary tag <tag>
<tag>
will create a Marker in Stash with primary tag <tag>
and no title.Set the start time using HereSphere controls. Tags (markers) in HereSphere has support for both a start and end time. Stash currently defines Markers as having a start time only. This means the end time set in HereSphere will be ignored.
Enable sync of markers by setting ALLOW_SYNC_MARKERS=true
but make sure you've also read the caveat.
When the favorite-feature of HereSphere is first used Stash-VR will create a tag in Stash named according to FAVORITE_TAG
(set in docker env., defaults to FAVORITE
) and apply that tag to your scene.
Tip: Create a filter using that tag, so it shows up in HereSphere for quick access to favorites.
Ratings set in HereSphere will be converted to its equivalent in Stash (4.5 stars => 90).
Increment o-count by adding a tag named !O
(case-insensitive) in Video Tags
.
Current o-count is shown as O:<count>
. It is also visible in the preview list on the thumbnail by the lower right heart.
Toggle organized flag by adding a tag named !Org
(case-insensitive) in Video Tags
.
Current state is shown as Org:<true/false>
Both DeoVR and HereSphere has algorithms to automatically detect and handle VR videos. It's not foolproof and to manually configure the players with custom layout/mesh-settings you can tag your scenes in Stash as follows:
DOME
180° equirectangularSPHERE
360° equirectangularFISHEYE
180° fisheyeMKX200
200° fisheyeRF52
190° Canon fisheyeCUBEMAP
Cubemap (lacks support in DeoVR?)EAC
Equi-Angular Cubemap (lacks support in DeoVR?)SBS
Side-by-side (Default)TB
Top-bottomIf a mesh is provided but no layout then default layout SBS
will be used.
Most common combination is DOME
+SBS
meaning most VR videos only need the DOME
tag.
When using Video Tags
in HereSphere to edit Markers Stash-VR will delete and (re)create them on updates.
There currently is no support for correlating the markers (tags) in HereSphere to a Marker in Stash.
!! Any metadata, besides the primary tag and title, related to a marker will NOT be retained !!\ (id, preview, secondary tags and created/updated time). If you're not using these fields anyway you probably won't notice the difference.
DeoVR/HereSphere both seem to have limits and struggle/crash when too many videos are provided than they can handle.
FILTERS
with a list of filter ids such that the total amount of videos are lowered to a "reasonable" amount.When the index page of Stash-VR is loaded Stash-VR will immediately respond with a cached version. At the same time Stash-VR will request the latest data and store it in the cache for the next request. This means if changes are made in Stash and the player refreshed, it will receive the cached version built during the last (previous) request. Just refresh again and the player should receive the latest changes. In other words, refresh twice.
Stash-VR | Stash |
---|---|
v0.7.x | v0.23.x |
v0.6.x | v0.18.x |
v0.5.x | v0.17.x |
v0.4.x | v0.16.x |
If you have issues arising from running an older version of Stash the recommended path is to upgrade Stash before attempting a fix.