1
 
 

Hey friends, I wanted to share Sharestream: https://codeberg.org/sharestream/sharestream

It's a lightweight FastAPI app that sits in front of Stash and turns selected videos or tag collections into clean, shareable links with first-class social previews on Lemmy, Mastodon, Discord, Bluesky, etc. — without exposing your Stash API key or making your Stash instance public.

Highlights:

  • Short, customizable URLs for individual videos and tag-based collection shares
  • Optional per-share passwords, expirations, and resolution
  • Rich Open Graph / Twitter-player previews with animated WebP thumbnails for clients that support them, content-negotiated static JPEGs for ones that don't
  • Configurable embed policy: preview clip, full video, or dynamic based on size/duration
  • Custom Video.js skin (also used inside Mastodon-style inline embeds) that fits any video to the viewport correctly on first paint
  • Optional limit_to_tag safety—public browsing only surfaces specifically tagged videos
  • Optional CW / age-gate overlay for new visitors
  • Contact / DMCA takedown form
  • Curated public homepage
  • Drop-in branding
  • Admin dashboard

All viewer-facing Stash media — HLS playlists/segments, MP4 previews/full streams, WebP previews, thumbnails — is served through access-checked proxy routes. Direct Stash media URLs cannot leak, and full videos are never stored locally.

I've refactored the codebase to pave the way for Jellyfin and potentially other backend support, but for now it's Stash-only.

I’m running a demo instance using stock footage from Pond5: https://share.lemmy.porn/ (100% SFW; <100% uptime).

Password-protected tag collection example: https://share.lemmy.porn/HIMjx5Y (pw: shar3str3am)

Full disclosure: development has been AI-assisted/"vibecoded." I'm actively reviewing/red-teaming/refactoring—and, since last week, running it on a "production" gallery with 25GB/day+

I’d love feedback, feature requests, or security concerns from the Stash community.

2
Release v0.31.1 · stashapp/stash (discourse.stashapp.cc)
submitted 4 months ago by [M] to c/stashapp@discuss.online
3
Release v0.31.0 · stashapp/stash (discourse.stashapp.cc)
submitted 4 months ago by [M] to c/stashapp@discuss.online
4
5
submitted 6 months ago by [M] to c/stashapp@discuss.online
6
submitted 7 months ago by [M] to c/stashapp@discuss.online
7
Release v0.30.0 · stashapp/stash (discourse.stashapp.cc)
submitted 8 months ago by [M] to c/stashapp@discuss.online
8
submitted 8 months ago by [M] to c/stashapp@discuss.online
9
submitted 8 months ago by [M] to c/stashapp@discuss.online
10
submitted 8 months ago by [M] to c/stashapp@discuss.online
11
submitted 9 months ago by [M] to c/stashapp@discuss.online
12
submitted 9 months ago by [M] to c/stashapp@discuss.online
13
submitted 9 months ago by [M] to c/stashapp@discuss.online
14
submitted 9 months ago by [M] to c/stashapp@discuss.online
15
Release v0.29.3 · stashapp/stash (discourse.stashapp.cc)
submitted 9 months ago by [M] to c/stashapp@discuss.online
16
Release v0.29.2 · stashapp/stash (discourse.stashapp.cc)
submitted 9 months ago by [M] to c/stashapp@discuss.online
17
Release v0.29.1 · stashapp/stash (discourse.stashapp.cc)
submitted 9 months ago by [M] to c/stashapp@discuss.online
18
Release v0.29.0 · stashapp/stash (discourse.stashapp.cc)
submitted 9 months ago by [M] to c/stashapp@discuss.online
19
 
 

Release Notes

v0.28.1 - 2025-03-20

🐛 Bug fixes

  • Fixed scene not playing from sub-second marker position when navigating from markers page. (#5744)
  • Fixed URL not being excluded correctly in Studio tagger. (#5743)
  • Fixed UI crash when loading saved filter with timestamp criteria. (#5742)
20
 
 

Release Notes

v0.28.0 - 2025-03-19

✨ New Features

  • Markers now have an optional end time (#5311, #5633)
  • Marker times now have sub-second precision (#5431)
  • Added Grid view for Markers. (#5443)
  • Scene markers can now be filtered and sorted by their duration. (#5472)
  • Added custom fields for Performers. (#5487, #5632)
  • Added Sort Name to Tags. (#5531)
  • Added Image scraping. (#5562)
  • It is now possible to configure an API key for a stash scraper source. (#5474)

🎨 Improvements

  • Changed modifier buttons to be selectable options in object filter selectors. (#5203)
  • Changed Group Details images to be a flippable front/back rather than showing both at once. (#5367)
  • Performer select now shows the performer age based on the date field. (#5110)
  • Stash IDs now have an Updated At field. (#5259)
  • Performer Death Date is now fetched from stash-box. (#5653)
  • Batch Performer Update now handles Performers merged on stash-box. (#5664)
  • ETA is now shown for tasks. (#5535)
  • Scene Updated At field is now updated when Interactive Heatmap is generated. (#5401)
  • Handy now resyncs automatically. (#5581)
  • It is now possible to query by scene name in a stash scraper. (#5722)
  • Added Scene Code sort by option. (#5708)

🐛 Bug fixes

  • Fixed errors when scraping stash-box performers with null birthdates. (#5428)
  • Fixed video files with identical phashes being merged during scan. (#5461)
  • Fixed scraped tags showing the scraped tag name rather than the matched tag name. (#5462)
  • Fixed unmatched scraped tags appearing in the Tag field when scraping groups. (#5522)
  • Fixed issue where creating a new tag from the Tag selector would not update the tags field. (#5522)
  • Invalid tagger blacklist entries now show an error message instead of crashing the UI. (#5497)
  • Fixed Performer aliases not being excluded when updating from tagger. (#5566
  • Fixed scene scrubber not working correctly in Tagger view. (#5507)
  • Fixed Handy script not playing after revisiting scene. (#5578)
  • Fixed various Handy playback issues. (#5576)
  • Fixed incorrect image being shown in the lightbox when clicking on Group or Performer images in the applicable detail pages. (#5659)
  • Saved Filters are now included in full export/import. (#5465)
  • Fixed issue where entering text into the setup input fields would defocus the fields. (#5459)
  • Fixed race condition when registering plugin custom routes. (#5523)
  • Fixed scraping multiple URLs using the mapped scrapers. (#5677)
  • Fixed excluded tags not being excluded when identifying scenes. (#5686)
  • Fixed database locked error messages after migrating. (#5723)
  • Fixed issue where scraped tags that resolve to the same tag would result in no scraped tags being shown. (#5733)
  • Fixed Image Wall Margin setting not working correctly. (#5496)
  • Fixed scraper errors when scraping from a stash instance. (#5474)
  • Fixed duplicate Groups Scene filter criterion option. (#5504)
  • Fixed back button returning to non-existing tag after merging. (#5712)
21
 
 

Release Notes

v0.27.2 - 2024-10-16

🎨 Improvements

  • Scene player now shows the starting position when resume time is set. (#5379)

🐛 Bug fixes

  • Fixed items being selected twice when selecting items in the Grid list. (#5377)
  • Fixed 62 migration error for some users. (#5363)
  • Fixed scenes incorrectly autoplaying on queue selection. (#5379)
  • Videos no longer begin playing when seeking before video has started. (#5379)
  • Videos will now resume from the correct time when switching sources due to error. (#5379)
22
 
 

Release Notes

v0.27.1 - 2024-10-10

🎨 Improvements

  • Live transcode requests are now debounced to spawn fewer ffmpeg instances while scrubbing. (#5340)
  • Blobs location may now be set using environment variable STASH_BLOBS. (#5345)

🐛 Bug fixes

  • Fixed UI infinite loop when sorting by random without a seed in the URL. (#5319)
  • Fixed dropdowns not displaying correctly in the merge dialogs. (#5299)
  • For single URLs, link icon now shows the dropdown menu instead of navigating to the URL. (#5310)
  • Fixed redirection when page > total pages to the last page instead of the first. (#5321)
  • Fixed display of rating criterion when using decimal rating system. (#5334)
  • Fixed parent/child Tags not showing in alphabetical order. (#5320)
  • Fixed performance issue when viewing studios where system has many images with no studios. (#5335)
  • Clicking on the video player timeline before video is started now plays the video from that point instead of playing from the beginning. (#5340)
  • Fixed UI crash when front page has filters using legacy movies scene filter. (#5348)
  • Restored legacy behaviour where selection is persisted when paging or changing filter. (#5349)
  • Fixed UI crash when navigating to image without files. (#5325)
  • Fixed panic when deleting image without files. (#5328)
  • Fixed matched performer and studio links not including base URL in Tagger. (#5337)
23
 
 

Release Notes

v0.27.0 - 2024-09-23

💥 Note: The Movie concept has been renamed to Group.
💥 Note: Tagger settings have been reset, but are now persisted between browser sessions. Show male performers and Set Tags are now defaulted to true. Please verify your settings before using the Tagger.

✨ New Features

  • Movies have been renamed to Groups and now may contain orderable sub-groups with descriptions. (#5105)
  • Added support for multiple URLs for Performers. (#4958)
  • Added ability to set tags on Studios. (#4858)
  • Added support for multiple URLs for Groups. (#4900)
  • Added ability to set tags on Groups. (#4969)
  • Added ability to set a specific image as a Gallery Cover. (#5182)
  • Added support for setting default filter for all views. (#4962)
  • Added preview scrubber to Gallery cards. (#5133)
  • Added support for bulk-editing Tags. (#4925)
  • Added filter to Scrapers menu. (#5041)
  • Added ability to set the location of ssl certificate files. (#4910)
  • Added option to rescan all files in the Scan task. (#5254)

🎨 Improvements

  • Added button to view sub-studio/sub-tag content on Studio/Tag details pages. (#5080)
  • Made tagger settings persistent. (#5165)
  • Added birthdate and age to Performer select. (#5076)
  • Made pagination control more compact. (#4882)
  • Added filter and count badge to Scraper lists in the Metadata Providers page, and improved presentation. (#5040)
  • Clicking Rescan on the details pages will now properly recalculate file details. (#5043)
  • Added performer sorting options for career length, measurements and weight. (#5129)
  • Added path column option to scene and gallery list tables. (#5005)
  • Moved Reload scrapers option to top of Scrapers menus. (#5142)
  • Added scene filter criterion for Scene Marker queries. (#5097)
  • Scene Player now allows interacting with the controls before playing video, and errors no longer prevent interacting with the Scene Player. (#5145)

🐛 Bug fixes

  • Fixed videos and images having incorrect dimensions when the orientation flag is set to a non-default value during scan. (#5188, #5189)
  • Fixed mp4 videos being incorrectly transcoded when the file has opus audio codec. (#5030)
  • Fixed o-history being imported as view-history when importing from JSON. (#5127)
  • Deleting a zip-based or folder-based Gallery and deleting the file/folder now removes files from the existing image if the image has multiple files, instead of removing the image. (#5213)
  • Fixed Intel Quicksync hardware encoding support. (#5069)
  • Fixed hardware transcoding not working correctly on macOS devices. (#4945)
  • Fixed ffmpeg version detection for n- prefixed version numbers. (#5102)
  • Anonymise now truncates o- and view history data. (#5166)
  • Fixed issue where using mouse wheel on numeric input fields would scroll the window in addition to changing the value. (#5199)
  • Fixed issue where some o-dates could not be deleted. (#4971)
  • Fixed handling of symlink zip files. (#5249)
  • Fixed default database backup directory being set to the config file directory instead of the database directory. (#5250)
  • Added API key to DASH and HLS manifests. (#5061)
  • Query field no longer focused when selecting items in the filter list on touch devices. (#5204)
  • Fixed weird scrolling behaviour on Gallery detail page on smaller viewports (#5205)
  • Performer popover links now correctly link to the applicable scenes/image/gallery query page instead of always going to scenes. (#5195)
  • Fixed scene player source selector appearing behind the player controls. (#5229)
  • Fixed red/green/blue slider values in the Scene Filter panel. (#5221)
  • Play button no longer appears on file-less Scenes. (#5141)
  • Fixed transgender icon colouring. (#5090)
  • Refreshed built in freeones scraper. (#5171)

Plugin API changes

  • PluginAPI.patch.instead now allows for multiple plugins to hook into a single function. (#5125)
24
 
 

Release Notes

v0.26.2 - 2024-06-27

🐛 Bug fixes

  • Fixed issue where performer could not be created without disambiguation if a performer with the same name and populated disambiguation exists. (#5019)
  • Fix resize loop in grid views. (#5004)
  • Fix query field values duplicating in tagger view when scene list is updated. (#5000)
  • Fix identify clearing parent studio when merging studio field. (#4993)
  • Fix manually selected studio not being applied during scrape. (#4953)
25
 
 

Release Notes

v0.26.1 - 2024-06-10

🐛 Bug fixes

  • Fixed identify task defaults not displaying correctly. (#4931)
  • Fixed issue where full hardware transcoding did not work where a filter was not required. (#4934)
  • Fixed new performer tags not displaying correctly in the performer scrape dialog. (#4943)
  • Added missing console object in javascript runtime environment. (#4944)
view more: next ›