API
Log in with your drmt account, then send audio straight to the mastering engine. Ideal for batch-processing a folder of tracks.
Credits are pre-bought (buy a pack; new accounts get 5 free). Each successful master spends 1 credit;
failed masters cost nothing, and an empty balance returns 402.
Endpoints
Base URL https://master.drmt.co.uk. Authenticate with the same email and password you use
on the site.
POST /api/login
Send { email, password }. Returns an access_token that lasts about an hour.
POST /api/master
Send a multipart file with a Bearer token. You can also pass target_lufs to set the loudness target. Returns the mastered WAV bytes. The X-Mastering-Report header carries a base64 JSON summary.
Quick start
# Get a token (valid about an hour):
TOKEN=$(curl -s -X POST https://master.drmt.co.uk/api/login \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"your-password"}' \
| python3 -c "import sys,json; print(json.load(sys.stdin)['access_token'])")
# Master a file (spends 1 credit on success):
curl -s -X POST https://master.drmt.co.uk/api/master \
-H "Authorization: Bearer $TOKEN" \
-F "file=@my-track.wav" \
-o mastered.wavBatch a folder
Mastering a whole folder takes about a dozen lines. Point PRE_MASTERS at your
folder of tracks, run the script, and the mastered files land in POST_MASTERS.
Set your DRMT_EMAIL and DRMT_PASSWORD in the environment, and pip install requests first.
import os, pathlib, requests
API = "https://master.drmt.co.uk"
PRE_MASTERS = "/myaudio/premasters" # your input folder
POST_MASTERS = "/myaudio/mastered" # where results are written
token = requests.post(f"{API}/api/login", json={
"email": os.environ["DRMT_EMAIL"],
"password": os.environ["DRMT_PASSWORD"],
}).json()["access_token"]
pathlib.Path(POST_MASTERS).mkdir(exist_ok=True)
for track in pathlib.Path(PRE_MASTERS).glob("*"):
out = requests.post(f"{API}/api/master",
headers={"Authorization": f"Bearer {token}"},
files={"file": open(track, "rb")})
pathlib.Path(POST_MASTERS, track.name).write_bytes(out.content)
print("mastered", track.name)Need higher volumes? Get in touch.