Skip to content

ekydum/ekydum-server

Repository files navigation

Ekydum Server

Free media server

Features:

  • Server accounts management
  • YouTube library management
  • HLS CORS proxy (m3u8 manifest, segment)

Requirements

  • Docker & Docker Compose

Quick Start

  1. Copy .env.example to .env:
cp .env.example .env
  1. Generate admin token (128+ chars):
node generate-token.js
  1. Update .env with generated token

  2. Start services:

docker-compose up -d
  1. Server runs at http://localhost:3000

Run a Ekydum client to connect to the server using your server URL and the admin token.

Optional: yt-dlp cookies for YouTube/Google challenges

If anonymous yt-dlp extraction becomes unreliable, the server can pass a Netscape-format cookies file to yt-dlp.

  1. Put a cookies file on disk, for example ./secrets/youtube.cookies.txt
  2. Mount it into the container, for example in docker-compose.override.yml:
services:
  app:
    volumes:
      - ./secrets/youtube.cookies.txt:/run/secrets/youtube.cookies.txt:ro
  1. Set the env var in .env:
YT_DLP_COOKIES_FILE="/run/secrets/youtube.cookies.txt"

If YT_DLP_COOKIES_FILE is unset, the server continues to use anonymous extraction.

Development

Create docker-compose.override.yml from example. Edit code... Restart the app service

See API_EXAMPLES.md

Architecture

  • Node.js / Express.js
  • PostgreSQL / Sequelize
  • Redis / ioredis
  • yt-dlp

About

Ekydum Media Server

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors