Files
DRMDTool/README.md
Joren 1c82b619c4 Harden web/download pipeline and split handler modules
Replace shell-based downloader execution with validated arguments, enforce request hardening and safer defaults, and refactor handlers/router/state so job control is safer and easier to maintain.
2026-04-14 10:21:11 +02:00

3.1 KiB

DRMDtool

drmdtool is a utility for processing .drmd files using N_m3u8DL-RE.

Configuration

Create a config.toml file in the same directory as the drmdtool executable:

[General]
BaseDir = "/path/to/save/downloads"
Format = "mkv"
TempBaseDir = "/tmp/nre"
EnableConsole = true
MaxUploadMB = 32

[WatchFolder]
Path = "/path/to/watched/folder"
PollingInterval = 10
UsePolling = true
UseInotify = false

[N_m3u8DLRE]
Path = "/path/to/N_m3u8DL-RE"

[Server]
Host = "127.0.0.1"
Port = 8080
ReadTimeoutSec = 30
WriteTimeoutSec = 30
IdleTimeoutSec = 60
ReadHeaderTimeoutS = 10

[Security]
AuthToken = ""

Configuration Options

  • General

    • BaseDir: Directory where downloaded files will be saved.
    • Format: Output format for the downloaded files (e.g., mkv, mp4).
    • TempBaseDir: Temporary directory for intermediate files.
    • EnableConsole: Boolean to enable or disable console output.
    • MaxUploadMB: Maximum allowed upload size for the web UI.
  • WatchFolder

    • Path: Directory to watch for new .drmd files.
    • PollingInterval: Interval in seconds for polling the watch folder.
    • UsePolling: Boolean to enable or disable folder polling.
    • UseInotify: Boolean to enable or disable inotify for file watching.
  • N_m3u8DLRE

    • Path: Path to the N_m3u8DL-RE executable.
  • Server

    • Host: Bind address for the web server (127.0.0.1 recommended).
    • Port: Web server port.
    • ReadTimeoutSec, WriteTimeoutSec, IdleTimeoutSec, ReadHeaderTimeoutS: HTTP timeout settings.
  • Security

    • AuthToken: Optional token for protecting all endpoints. Recommended when binding to a non-loopback host.

Environment Variable Overrides

You can override the configuration options using environment variables. The following environment variables are supported:

  • BASE_DIR: Overrides General.BaseDir
  • FORMAT: Overrides General.Format
  • TEMP_BASE_DIR: Overrides General.TempBaseDir
  • ENABLE_CONSOLE: Overrides General.EnableConsole (set to true or false)
  • MAX_UPLOAD_MB: Overrides General.MaxUploadMB
  • WATCHED_FOLDER: Overrides WatchFolder.Path
  • USE_POLLING: Overrides WatchFolder.UsePolling (set to true or false)
  • USE_INOTIFY: Overrides WatchFolder.UseInotify (set to true or false)
  • POLLING_INTERVAL: Overrides WatchFolder.PollingInterval
  • SERVER_HOST: Overrides Server.Host
  • SERVER_PORT: Overrides Server.Port
  • AUTH_TOKEN: Overrides Security.AuthToken

Web UI Usage

  1. Run the executable:

    ./drmdtool
    
  2. Open a web browser and go to http://localhost:8080

    If Security.AuthToken is configured, include it as a query parameter: http://localhost:8080/?token=YOUR_TOKEN

  3. Use the interface to upload .drmd files and monitor download progress

CLI Usage

To process a file directly from the command line:

./drmdtool -f /path/to/file.drmd

This will download the file and save it in the base directory specified in the config.

Previews

Index Page

Index Page

Select Page

Select Page

Progress Page

Progress Page