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.
118 lines
3.1 KiB
Markdown
118 lines
3.1 KiB
Markdown
# 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:
|
|
|
|
```toml
|
|
[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
|
|
|
|

|
|
|
|
## Select Page
|
|
|
|

|
|
|
|
## Progress Page
|
|
|
|

|