Floating Scene Player

This is a plugin that adds a floating video player to your scene browsing pages. Makes it easier to preview scenes without constantly navigating away.

Main features:

  • Floating player you can drag around and resize
  • Click any thumbnail to play it in the player
  • Hover over thumbnails for quick previews
  • Quick links to performers, tags, and studios while watching
  • Works on mobile with touch support
  • Auto-adjusts for vertical/horizontal videos
  • CSS override settings for customizations

Installation:

Plugin source URL: https://codddarrr.github.io/stashapp-plugins-repo/main/index.yml

Add it in Settings → Plugins → Available Plugins, then install “Floating Scene Player”

How it works:

Click the ⛶ button in the bottom right to open the player. Then just click scene thumbnails to watch them. You can drag the player around or resize it however you want.

The plugin only shows up on pages with scene content (scene lists, performer pages scenes tab, tag pages scenes tab, etc). It stays out of the way on list-only pages.

GitHub: GitHub - codddarrr/stashapp-plugins-repo

Let me know if you run into any issues or have suggestions.

2 Likes

Moved to more appropriate category.

1 Like

I love this plugin so much! I’ve been wanting for something that would let me perform some of my tasks while also not losing my video, and I’ve so far been opening another tab and using the PiP functionality. This is a much better option!

Some suggestions from using it a little so far:

  • It would be great if it could use the current UI theme instead of the default one.
  • Is it intentional that the video auto-plays on hover instead of only on-click? I accidentally switch videos in grid view in the scenes tab because of this, and it’d be nice to see the preview play for a thumbnail without changing the floating player’s content.
  • If there’s a way to keep the player up when switching between tabs and pages, it’d be a great addition. Then I could do things like initiating a scan in the settings tab while a video is playing and then returning to the scenes tab in order to tag the new videos found in the scan, etc.

Anyway, I love it regardless, so thanks again!

Glad you like it :slight_smile:

Changes have been made, update to the latest and you’ll see new settings on the plugin page.

1 Like

You rock! Seriously, I wasn’t expecting that you’d even have read my suggestions by now, but you nailed all three in a day!

1 Like

Nice one, can you add the option to play the video externally? I know there is another plugin that does so.. but having this one do it will be a great feature since it’s concerned for enhancibg the video player

just FYI, external video playing is completely seperate and requires a lot of hacks to escape the browser sandbox, look through the code for the existing ones if you want a general idea of how it’s done

I’m a little confused, maybe you can help me understand. So if there a plugin that allows you to click a video and have it open in an external video, and if that’s the behaviour you want, why would you also want to use this plugin? Wouldn’t the behaviour of the other plugin be better? Or is there something this plugin does that that one doesn’t do?

Video players contained within the browser are barely restricted, once you try to exit or bypass the browser environment, you run into a multitude of problems

1 Like

yep, this i get :slight_smile: i was asking the user who was requesting the feature

Ah sorry, the default images threw me for a loop since they’ve been all over the discord as well

Fair, fixed!

Never got familiar with discourse

Yes, I like the idea behind this plugin and its functions. However, I prefer not to have too many plugins running at the same time. That’s why I was asking if your plugin could also handle the external player feature. Still, I understand that might be difficult to implement, so I’ll continue using the other plugin alongside this one. Thanks, for this plugin though, it’s really helpful.

Well.. I actually liked it more than having an external player, it does the job perfectly. Great job… One thing, can you add support for .wmv?

Glad you look it. This should work for any video that Stash already plays in your browser, all it does is cause the video to play in a floating window instead of the main one.

Well, just tested it.. .wmv works in chrome, but doesn’t work on the plugin!

Would it be possible to send all videos to a single stream address?

This is a feature request. I love your plugin, and it is so close to something that I would love even more that I just can’t resist asking you if this would be possible.

This plugin is pretty close to a dream many have had for a while that is to be able to pipe stash videos to an external player like VLC or MPV full screen on another monitor; while using this plugin I had an idea about this.

When this plugin is active, what if you sent all videos to a single stream address instead of a unique one for every video?

Currently, if you activate this plugin and then right click the floating video and turn on picture-in-picture mode, you get a player that is outside of the browser which updates every time you click on a new video and you can even move it to another monitor. The only thing is the (edit: chromium) PIP player sucks and you can’t actually maximize it on a separate screen (try it yourself, you will see what I mean). This is SO CLOSE to the dream.

Then I had an idea. I know if you copy the stream address of any stash video, you can paste that in to an external media player and it will play. This also works with your plugin’s floating video, of course, because it’s playing the same streams but, it won’t update like the PIP does because every time you click on another video, the stream address changes to the new unique address.

If all you did was force all videos to be sent to a single stream (or just clone them to a single stream?), then with your plugin you could paste that stream to any external player which would then update every time you click on a new video and the floating video updates.

1 Like

I think I understand what you’re asking for but I don’t think it’s a good fit for this plugin. I did make a standalone plugin for that though: Stream Queue. Let me know if that meets your needs.

Thanks for the reply. I checked out stream queue and it wasn’t really what I’m looking for.

I vibecoded this plugin as an example of what I’m looking for. Maybe someone like you could actually make a decent plugin out of it. It comes with a video player that I made because I don’t know of any other way to do it.

I have no idea if this plugin will actually work on another person’s machine so you may have to make some changes, but it works for me atm. All the plugin itself does is read search results from stash and update a playlist file that is in the plugin folder. The video player monitors the playlist file and, when it detects a change, loads/reloads all of the videos from the playlist in to a 2x2 or 3x3 grid of interactable videos.