Skip to content

elfhosted/mediastorm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

496 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mediastorm

mediastorm

A streaming media server with native mobile and TV apps. mediastorm supports:

  • Usenet
  • Real Debrid/Torbox/AllDebrid

Scraping supports:

  • Torrentio
  • Jackett
  • AIOStreams
  • Zilean
  • Newznab indexers

Discord: https://discord.gg/kT74mwf4bu

Setup

mediastorm requires both a backend server and a frontend app. The frontend app on its own does nothing - it needs a running backend to connect to.

Backend Deployment

Deploy the backend using Docker Compose (or use the example in the repo):

  1. Create a docker-compose.yml:
services:
  mediastorm:
    image: godver3/mediastorm:latest
    container_name: mediastorm
    ports:
      - "7777:7777"
    volumes:
      - /path/to/your/cache:/root/cache
    environment:
      - TZ=UTC
    restart: unless-stopped

The cache folder will contain user settings and stream metadata.

  1. Start the container:
docker-compose up -d

The backend will be available at http://localhost:7777. The default login is admin/admin for both the frontend app and the admin web UI.

⚠️ Security Notice: mediastorm is not designed to be directly exposed to the internet. For safe remote access, use a VPN or overlay network like Tailscale to keep your server private while still accessible from your devices.

Frontend Apps

The frontend is built with React Native and supports iOS, tvOS, Android, and Android TV.

iOS / tvOS

Available on TestFlight:

Updates: Incremental updates are delivered automatically via OTA. Larger updates require updating through TestFlight.

Android / Android TV

Download the latest APK: Releases

Updates: Incremental updates are delivered automatically via OTA. Larger updates require manually downloading the new APK from GitHub Releases or using Downloader (code listed with each release).

Configuration

Access the admin panel at http://localhost:7777/admin to configure all settings.

Required API Keys

mediastorm requires API keys from TMDB and TVDB for metadata (posters, descriptions, cast info, etc.):

Service Required Purpose Get Your Key
TMDB ✅ Yes Movie/TV metadata, posters, cast themoviedb.org/settings/api (free account)
TVDB ✅ Yes TV show metadata, episode info thetvdb.com/api-information (free account)
MDBList ❌ Optional Ratings from multiple sources (IMDb, RT, etc.) mdblist.com/preferences (free account)
Gemini ❌ Optional AI-powered personalized recommendations aistudio.google.com/apikey (free tier)

Enter these keys in the admin panel under Settings → Metadata.

AI Recommendations (Gemini)

mediastorm can use Google's Gemini AI to generate personalized "Recommended For You" lists based on your watch history and watchlist. This is entirely optional — without a key, mediastorm still provides TMDB-based "Because you watched..." recommendations.

Setup:

  1. Go to Google AI Studio and sign in with a Google account
  2. Click Create API Key and copy it
  3. In the mediastorm admin panel, go to Settings → Metadata and paste the key into the Gemini API Key field
  4. Save — recommendations will appear in the Lists tab under "Recommended For You"

Cost: Gemini 2.0 Flash is used, which has a generous free tier (1,500 requests/day). A typical user generates ~1 request per day (results are cached for 24 hours per user), so this should remain free for personal use.

Acknowledgments

Thanks to nzbdav and altmount for paving the way with usenet streaming.

Inspired by plex_debrid and Riven.

Special thanks to Parsett (PTT) for media title parsing.

Powered by FFmpeg for media processing and yt-dlp for trailer fetching.

Native playback powered by KSPlayer on iOS/tvOS, ExoPlayer and MPV on Android/Android TV.

License

MIT

About

Repository for the mediastorm project.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go 82.0%
  • HTML 17.6%
  • Other 0.4%