StashApp/Stash-Vr Enhancements - StashInteractiveTools

Ivdb won’t work within HereSphere directly. The only way to use the tokens there are

  • use their chrome extension to view the video via website
  • download token via my plugin or directly and serve the video directly from your HD.

As for your example I don’t think that will work because HereSphere won’t know the token to use. What would work is if you say we t to VRbangers site within HereSphere it will serve their funscripts and video without you having to download.

You may have more luck reaching out in the HereSphere on if your example will work or not from the dev. HereSphere VR Video Player for Quest 2/Pro/3 supports Handy, Keon, Launch and Passthrough - #652 by deskey51

Thanks!!! I will for now use your stash-vr version with local files. Many thanks for creating it

Hello. Interested by this “Interactive” Tools, but this is not clear at all how ton install it.
Only a link to the Git, but on it, nothing more. Which file to download, and then how to install?

Thanks for your help.

Same question as above, does anyone have any guide on how to install this for someone who has not technical knowledge. thanks

So I managed to get it installed, but I’m not sure how to get the multi script support working. I tried adding prefixes at the end of some scripts but nothing pops up when I go to the video settings. Any guidance would be appreciated.

hey! any chance you can share how you got it installed?

The Stash-VR feature is uber-nice as it should prevent you from needing to redownload the funscript if you swap out your Handy, something I’ve had to do before and it took hours. Any chance CMSCRIPT support could be looked at? (although I’m fairly sure they’re low quality anyway - POVR/WankzVR)

Lastly, any idea when a formal docker may be out for that or if oflow will incorporate upstream? Trying to compile directly on UnRAID or over at dockerhub is giving me the same error, oddly. Just trying to figure out how much time to waste haha

Error: buildx failed with: ERROR: failed to solve: process “/bin/sh -c go generate ./cmd/stash-vr/ && go build -ldflags "-X stash-vr/internal/build.Version=$BUILD_VERSION -X stash-vr/internal/build.SHA=$BUILD_SHA" -o ./stash-vr ./cmd/stash-vr/” did not complete successfully: exit code: 1

@ptitcerf, @Colemank135, @stopzing6
I didn’t forget about you guys just been tied up. I’m trying to get the stash plugin setup correctly so all you can use the update plugin feature from within stash vs having to manually install it. Also there are some few bugs with the multi script support that I’m fixing. Planning on to having this all out by tomorrow.

@mangoo5289 You can now use blackx69/stash-vr So the full command will be

docker run --name=stash-vr -e STASH_GRAPHQL_URL=http://localhost:9999/graphql -e STASH_API_KEY=XXX -p 9666:9666 blackx69/stash-vr:latest

2 Likes

Awesome, thanks so much, I have that cutover and working.

As a note for users, it seems the IVDB site is served over two URLs, so you want the ivdb and not the handyfeeling.com one. unless the code is updated to include the second.

The only slight hiccup I see is that the vids themselves are no longer considered Interactive by Stash (makes sense as this is an add-on modification) nor by Stash-VR, so if you happen to go looking for the scene, filter by performer name and then expect to see it in an Interactive view, it won’t be present. Minor in impact but my OCD is piqued lol

Thanks for all the grest stuff you guys do!

Sadly, I ended up reverting for now (just updating repo name in the already existing container). For whatever reason, the scenes I added the URL to seem to drop out of the stash-vr UI. Admittedly, I am over the 10k link limit but I haven’t run into this problem before, although i did get one scene to show up and get working, so… All I can see on the log side is this from when I think the view is being populated, no issues on ofl0w:

Feb 18, 15:18:18 ERR write error=“write: write tcp 172.17.0.12:9666->192.168.1.161:36278: write: broken pipe” mod=heresphere route=scan
Feb 18, 15:18:18 ERR write error=“write: write tcp 172.17.0.12:9666->192.168.1.161:36310: write: broken pipe” mod=heresphere route=scan
Feb 18, 15:18:18 ERR write error=“write: write tcp 172.17.0.12:9666->192.168.1.161:33858: write: broken pipe” mod=heresphere route=scan

I trimmed the fiters down somewhat, here is some more logging I found:

Feb 18, 15:42:26 WRN Failed to parse resolution from label error=“no resolution height found in label” label=MP4 mod=heresphere route=videoData videoId=5254

panic: runtime error: invalid memory address or nil pointer dereference

→ stash-vr/internal/ivdb.Client.GetTokenUrlFromUrl
→ /build/internal/ivdb/client.go:98

stash-vr/internal/api/heresphere.maybeSetHandyTokenScriptUrl
  /build/internal/api/heresphere/videodata.go:150
stash-vr/internal/api/heresphere.buildVideoData
  /build/internal/api/heresphere/videodata.go:117
stash-vr/internal/api/heresphere.(*httpHandler).videoDataHandler
  /build/internal/api/heresphere/http.go:87
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
stash-vr/internal/api/heresphere.Router.LogVideoId.func4
  /build/internal/api/internal/logdecorator.go:20
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
stash-vr/internal/api/heresphere.Router.LogRoute.func5
  /build/internal/api/internal/logdecorator.go:12
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
github.com/go-chi/chi/v5.(*Mux).routeHTTP
  /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:444
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
stash-vr/internal/api/heresphere.Router.SetHeader.func1.1
  /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/content_type.go:13
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
github.com/go-chi/chi/v5.(*Mux).ServeHTTP
  /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:73
stash-vr/internal/router.Build.logMod.func1
  /build/internal/router/router.go:59
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
github.com/go-chi/chi/v5.(*Mux).Mount.func1
  /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:316
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
github.com/go-chi/chi/v5.(*Mux).routeHTTP
  /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:444
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
github.com/go-chi/chi/v5/middleware.(*Compressor).Handler-fm.(*Compressor).Handler.func1
  /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/compress.go:213
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
github.com/go-chi/chi/v5/middleware.Recoverer.func1
  /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/middleware/recoverer.go:45
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
stash-vr/internal/router.requestLogger.func1
  /build/internal/router/router.go:78
net/http.HandlerFunc.ServeHTTP
  /usr/local/go/src/net/http/server.go:2141
github.com/go-chi/chi/v5.(*Mux).ServeHTTP
  /go/pkg/mod/github.com/go-chi/chi/v5@v5.0.10/mux.go:90
net/http.serverHandler.ServeHTTP
  /usr/local/go/src/net/http/server.go:2943
net/http.(*conn).serve
  /usr/local/go/src/net/http/server.go:2014
created by net/http.(*Server).Serve in goroutine 29
  /usr/local/go/src/net/http/server.go:3091

Issue sorted. Sadly, that is the error you will receive if you try to use a premium script. Wonder if they can be incorporated somehow but doubtful as it’s based on authentication…

Yeah I don’t have access to any of the premium scripts so doubt I’ll be able to fix it, sorry. But maybe I can find a way add a better error message. I’ll look into.

@ptitcerf, @Colemank135, @stopzing6
You can now install the stash plugin via adding a new Plugin source:

https://raw.githubusercontent.com/blackx69/StashInteractiveTools/refs/heads/next/stash.yml

image
Disregard the version numbers I was in a rush trying to wire up a good release pipeline to make my life easier.

3 Likes

In essence, Naughty America or RealJamVR would issue the token as opposed to ivdb.io. They timebomb their downloaded scripts to expire after 14 days which make them kinda useless in a Stash environment IMO, so having it work via this method would open up a bunch of new script options. That said, I’m sure it would be a major hassle as it would require authentication to the partner site, so I wouldn’t waste your time on it :slight_smile: Thanks again!

Thanks for this, I’ll take a look maybe this evening to install it.

Last I hear HereSphere was trying to add support for this within their inbrowser feature

  1. Latest update (beta branch on Steam for PC version, RC channel for Quest standalone version on Meta Store) adds the “handyTokenUrl” field to the HereSphere web API when requesting video json data. This field should contain a url that will receive a HTTP POST message that contains a “connectionKey” field in a json body, and should respond with a “scriptUrl” field that contains a script download link with a Handy script token. Let me know if there are any issues. Thanks!

So if the website supports it should work. Have you tried to navigate to NA site within heresphere directly ? Usually its under /heresphere endpoint. I would definally reach out to HereSphere either here or on Discord.

tried to pull your stash-vr image, but unfortunately got this when trying to run it:

WARNING: The requested image’s platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
exec ./stash-vr: exec format error
exit status 255

Guess I’m needing a docker image built w/ linux/arm64 :frowning:
I’ll try cloning repo & building it myself :wink:

EDIT:
NOT a Go person, so, looking at what might be wrong…
Looks like the internal/ivdb/api/client.go file doesn’t get generated :confused:
(seeing it in the oapi.yml file)

BUT why docker build didn’t work, got this error:

Step 10/16 : RUN go generate ./cmd/stash-vr/ && go build -ldflags “-X stash-vr/internal/build.Version=$BUILD_VERSION -X stash-vr/internal/build.SHA=$BUILD_SHA” -o ./stash-vr ./cmd/stash-vr/
—> Running in e8c5795b11b7
error writing generated code to file: open …/…/internal/ivdb/api/client.go: no such file or directory
exit status 1
cmd/stash-vr/main.go:2: running “go”: exit status 1
The command ‘/bin/sh -c go generate ./cmd/stash-vr/ && go build -ldflags “-X stash-vr/internal/build.Version=$BUILD_VERSION -X stash-vr/internal/build.SHA=$BUILD_SHA” -o ./stash-vr ./cmd/stash-vr/’ returned a non-zero code: 1

Sorry about that, new to the whole go build pipeline myself. Let me see if I can get that image posted that works for your arch type.