Scene Matcher

:placard: Summary Find StashDB matches for untagged scenes using known performer and studio associations. Adds a “Match” button to the Tagger UI that searches by linked performers and studios.
:link: Repository https://github.com/carrotwaxr/stash-plugins/tree/main/plugins/sceneMatcher
:information_source: Source URL https://carrotwaxr.github.io/stash-plugins/stable/index.yml
:open_book: Install How to install a plugin?

Scene Matcher

Find StashDB matches for untagged scenes using known performer and studio associations. Adds a “Match” button to the Tagger UI that searches by linked performers and studios.

:link: Links

:package: Installation

  1. Go to Settings → Plugins → Available Plugins
  2. Click Add Source and enter: https://carrotwaxr.github.io/stash-plugins/stable/index.yml
  3. Find Scene Matcher in the list and click Install
  4. Reload the UI when prompted

:sparkles: Features

  • Match Button on scenes without a StashDB ID in the Tagger UI
  • Smart Search queries StashDB for scenes featuring your linked performers or studio
  • Relevance Scoring ranks results by match quality:
    • +3 points for matching studio
    • +2 points per matching performer
  • Duplicate Detection shows scenes you already have lower in results
  • Native Integration injects the selected UUID into Stash’s search field—Stash’s Tagger handles the rest
  • Rate Limit Handling with configurable request delays and retries

:gear: Configuration

Setting Default Description
Stash-Box Endpoint (first configured) Which stash-box to query. Leave empty to use your first endpoint (usually StashDB).
Request Delay 0.5 seconds Delay between paginated StashDB requests. Increase if you see 429 errors.
Max Retries 3 Retry count for failed requests (504, 503, connection errors).

:rocket: Recommended Workflow

  1. Navigate to the Tagger (single scene or bulk view)
  2. Scenes without a StashDB ID show a Match button
  3. Click to open a modal with potential matches from StashDB
  4. Results are sorted by relevance—click one to select it
  5. The UUID is injected into Stash’s search field
  6. Stash’s native Tagger handles saving and creating linked entities

:pushpin: Requirements

  • Stash with at least one stash-box endpoint configured (e.g., StashDB)
  • Scenes must have performers or a studio linked to that stash-box

:beetle: Troubleshooting

No Match button appears

  • Ensure the scene has performers or a studio linked to StashDB
  • Scenes that already have a StashDB ID won’t show the button

429 Rate Limit Errors

  • Increase the Request Delay setting in plugin configuration

No results found

  • The linked performers/studio may not have any scenes on StashDB
  • Try linking additional performers to the scene first

:clipboard: Changelog

v1.1.0

  • Added configurable request delay and retry settings
  • Improved error handling for StashDB rate limits

v1.0.0

  • Initial release

Probably a bit niche and should be used carefully with regards to submitting matches to Stash DB. It has been working for me, finding solid matches for some of my content that doesn’t match by fragment readily. Much of this content I know what performers and or studio it should be and have manually tagged that much of it on the Scene.

It first tries some text search strings based on the available info. This is usually a bit smarter than the one Stash generates from the filename. If that fails, you can do a deeper search on all content for that studio and/or performers, trying to sort by relevance and duration proximity