Skip to content

WIP: Add Stash2Plex plugin#660

Open
trek-e wants to merge 1 commit intostashapp:mainfrom
trek-e:add-stash2plex
Open

WIP: Add Stash2Plex plugin#660
trek-e wants to merge 1 commit intostashapp:mainfrom
trek-e:add-stash2plex

Conversation

@trek-e
Copy link

@trek-e trek-e commented Feb 3, 2026

Summary

  • Adds Stash2Plex, a standalone queue-based metadata sync plugin for Plex

Description

Stash2Plex syncs scene metadata from Stash to Plex Media Server. Inspired by PlexSync, but built from scratch with a different architecture—no Plex agent required. Stash2Plex matches files by path and handles all sync logic internally.

Features:

  • Persistent SQLite queue (survives restarts)
  • Automatic retry with exponential backoff
  • Circuit breaker protection during Plex outages
  • Selective field sync toggles (studio, performers, tags, poster, etc.)
  • Performance caching to reduce API calls
  • Batch scene fetching for large syncs
  • Dynamic timeout scaling
  • Dead letter queue for failed jobs

Requirements:

  • PythonDepManager plugin
  • Plex Media Server (no additional Plex agent needed)

Status: WIP but stable (v1.1.4)

Documentation: GitHub Repository


Note: This code was generated with GSD and Claude Code guided by a 30 years of experience IT Architect at the keyboard who is trying to stay relevant. I understand that not everyone appreciates that, and do not wish to debate it. I need to stay employed until all my kids are out of college and this is one way I'm hedging my bets. There is no ethical consumption under capitalism, but I want my Plex library to be metadata'd right.


Test plan

  • Plugin loads in Stash
  • Scene updates trigger sync to Plex
  • Retry logic works on Plex unavailability
  • Queue persists across restarts

🤖 Generated with Claude Code

Stash2Plex syncs scene metadata from Stash to Plex Media Server.
Inspired by PlexSync, but built from scratch with a different
architecture—no Plex agent required.

Features:
- Persistent SQLite queue (survives restarts)
- Automatic retry with exponential backoff
- Circuit breaker protection during Plex outages
- Selective field sync toggles
- Performance caching to reduce API calls
- Batch scene fetching for large syncs
- Dynamic timeout scaling
- Dead letter queue for failed jobs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@trek-e
Copy link
Author

trek-e commented Feb 3, 2026

This is a Plugin, and triggers on Scene update.

@discourse-stashapp
Copy link

This pull request has been mentioned on Stash. There might be relevant details there:

https://discourse.stashapp.cc/t/stash2plex/5597/2

@DogmaDragon
Copy link
Contributor

I don't particularly like CommunityScripts source index having plugins that rely on external services. I think keeping in on your own index is a better fit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants