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.

no comments (yet)

sorted by: hot top controversial new old
there doesn't seem to be anything here