MCPcopy Index your code
hub / github.com/Hound-Media-Server/hound

github.com/Hound-Media-Server/hound @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
820 symbols 1,828 edges 175 files 193 documented · 24%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Hound Media Server

Logo

The Modern Hybrid Media Server

Watch and Track Movies and TV Shows. Self-hosted version of Plex/Stremio + Trakt, Simkl, etc. Hound aims to be a complete ecosystem of watching, tracking, downloading, and archiving media.

Hound is a fully-featured media server, like Jellyfin or Plex, but with the additional ability to stream content through P2P (torrent) or HTTP/Debrid sources. With Hound, you get the benefits of fully controlling your media like Jellyfin, but can also stream instantly like Stremio. It's the best of both worlds.

[!CAUTION] Hound is still under heavy development and may contain bugs. Please backup your data periodically.

[!NOTE] Full documentation and installation guide can be found here.

Links

Demo

Access the demo here

username: github
password: password

Platforms

You can download the Android and Android TV apps from the App Repo in the releases page. You'll need to sideload the .APKs. iOS and tvOS share the same codebase, but are not available yet since they have more requirements to publish, for now you can only run them on XCode. Stay tuned.

Installation

Docker compose is the preferred method for installing Hound. Read the installation docs here.

Features

Current

  • Stream and download your own content from your drives, or stream content directly from P2P (torrent) and HTTP/Debrid sources through Stremio addon (AIOStreams)
  • Trakt-like features, all your watches are automatically tracked and easily browsable
  • Customize your home layout with built-in catalogs or MDBList lists
  • Create custom collections/lists
  • Add reviews and comments to your media
  • Watch calendar and statistics
  • Android and Android TV clients (iOS and tvOS coming soon)
  • Focus on UI/UX, and Admin experience
  • Really fast to setup, zero to watching content in <10 mins, few dependencies

Planned

  • Transcoding
  • Manually create your own movies/shows
  • Data export
  • Third-party review score integration (eg. IMDB, Metacritic, RT)
  • View actor information (eg. movies they've played)
  • View public collections / other user's collections
  • Review individual seasons, episodes (TV Shows)
  • Add private notes for your movies, episodes

Development

Make sure postgres is running on your machine. Copy server/dev.env.example to server/dev.env, then customize for your dev environment — at minimum, set HOUND_SECRET to a unique random value (e.g. openssl rand -base64 48); the server panics on startup if it's empty. Build and run both the frontend and backend separately. By default, the frontend runs on http://localhost:3000 and the backend runs on http://localhost:2323.

Backend

cd server
go run main.go

Frontend

cd web
npm install
npm run start

Screenshots

home page tv page tv page 2

Extension points exported contracts — how you extend this code

IVideoPlayerProps (Interface)
(no doc)
web/src/pages/VideoPlayer/VideoPlayer.tsx
CreateHistoryModalProps (Interface)
(no doc)
web/src/pages/Modals/CreateHistoryModal.tsx
WatchActivity (Interface)
(no doc)
web/src/api/services/watchHistory.ts
GetWatchActivityResponse (Interface)
(no doc)
web/src/api/services/watchHistory.ts
WatchStats (Interface)
(no doc)
web/src/api/services/watchHistory.ts

Core symbols most depended-on inside this repo

failTask
called by 35
server/workers/download_workers.go
getUserIDFromContext
called by 32
server/controllers/v1/helpers.go
getSourceIDFromParams
called by 21
server/controllers/v1/helpers.go
DeleteCache
called by 14
server/database/cache.go
SetCache
called by 11
server/database/cache.go
getEnvString
called by 11
server/config/config.go
GetCache
called by 10
server/database/cache.go
getFallbackSubtitle
called by 7
server/model/subtitles.go

Shape

Function 686
Struct 121
Interface 9
Method 4

Languages

Go66%
TypeScript34%

Modules by API surface

server/sources/tmdb.go31 symbols
server/database/media_records.go22 symbols
web/src/pages/Admin/HomeRows.tsx21 symbols
server/model/catalog.go17 symbols
server/database/ingest.go16 symbols
server/database/watch_history.go14 symbols
server/controllers/v1/watch_history.go14 symbols
server/providers/providers.go13 symbols
server/model/external_library.go13 symbols
server/database/genres.go13 symbols
server/workers/external_library_worker.go12 symbols
server/workers/download_workers.go12 symbols

For agents

$ claude mcp add hound \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact