baton-worker

baton-worker

Docker app from Crazyteddy00's Repository

Overview

Optional download helper for baton-server, the Baton music server. When someone asks for music with Want in the Baton app, this container downloads it from YouTube Music and leaves it in the Download inbox. baton-server then checks each download and files it into your music. Install it only if you want to use Want. It works only with baton-server, not with Navidrome or baton-sync. Set up baton-server first: check that its Worker port is there, and give it a Download worker token (make one with openssl rand -base64 32), keep its Music folder read-write and keep its Download inbox. Then use the same token, the same Download inbox folder and the same PUID and PGID here. The worker runs on Unraid's normal bridge network and connects to baton-server's Worker port (4534) at your Unraid server's IP address, which you type in Server address. It publishes no port, has no web page and needs no HTTPS. Updating or recreating baton-server does not affect it. You don't need to create or chown any folders. On start the container creates App data and the Download inbox, hands them to PUID:PGID, 99:100 by default, and then runs as that user.

Requirements

baton-server installed and running, with a Download worker token set and its Worker port (4534) published.

Related apps

Explore more like this

Explore all

Details

Repository
registry.gitlab.com/crazyteddy00/baton/baton-worker:latest
Last Updated2026-11-06
First Seen2026-11-06

Runtime arguments

Network
bridge
Privileged
false
Extra Params
--init

Template configuration

App dataPathrw

The worker's own folder. It keeps an up-to-date copy of yt-dlp here (checked at start and every 24 hours), its cache, and your YouTube cookies file if you use one. The container creates it if it is missing.

Target
/config
Default
/mnt/user/appdata/baton-worker
Value
/mnt/user/appdata/baton-worker
Download inboxPathrw

Where finished downloads wait for baton-server to file them. Must be the same folder as the Download inbox in baton-server, and outside your music folder. The default matches baton-server's default.

Target
/inbox
Default
/mnt/user/data/media/inbox
Value
/mnt/user/data/media/inbox
Server addressVariable

Required, no default. The address of baton-server's Worker port: your Unraid server's IP and the Worker port set on baton-server (default 4534), for example http://192.0.2.10:4534. Use http:// here, not https://: this traffic stays on your LAN. Change it if you changed baton-server's Worker port or your server's IP. This is not your public address.

Target
BATON_SERVER_URL
Download worker tokenVariable

Required, no default. Exactly the same value as the Download worker token in baton-server. The worker uses it to sign in to the server.

Target
BATON_WORKER_TOKEN
YouTube cookies fileVariable

Optional, empty by default. The path inside the container to a cookies.txt exported from YouTube Music while signed in, for example /config/cookies.txt (put the file in App data). Premium cookies get higher quality. Leave it empty unless the file is there: if it is missing, every download fails.

Target
BATON_WORKER_COOKIES
YouTube clientsVariable

Leave this empty. It is the list of YouTube player types yt-dlp tries, in order; empty means ios,android,web_embedded,mweb,web,tv. Change it only if downloads stop working and a fix tells you to.

Target
BATON_WORKER_YT_CLIENTS
Downloads at once (max)Variable

The most downloads this worker runs at the same time, 1 to 8. Default 4. The Downloads at a time setting on the app's Wanted screen (1 to 4) also limits it, so leave this at 4 and change that instead.

Target
BATON_WORKER_MAX_PARALLEL
Default
4
Value
4
Inbox inside the containerVariable

Where the Download inbox is mounted inside the container. Leave it as /inbox.

Target
BATON_INBOX_PATH
Default
/inbox
Value
/inbox
User ID (PUID)Variable

The user the worker runs as and that owns the downloads it writes. Default 99, Unraid's nobody. Must match the other Baton container (baton-server), so the server can move and clean up the downloads. Change it only together with baton-server's.

Target
PUID
Default
99
Value
99
Group ID (PGID)Variable

The group the worker runs as and that owns the downloads it writes. Default 100, Unraid's users. Must match the other Baton container (baton-server), so the server can move and clean up the downloads. Change it only together with baton-server's.

Target
PGID
Default
100
Value
100
Permission mask (UMASK)Variable

Optional. Removes permissions from new files, as an octal number such as 002. Empty (the default) leaves Docker's usual 022. It only affects files created without fixed permissions, such as the downloaded tracks, and it never makes the folders the worker creates group-writable. Leave it empty unless you know you need it.

Target
UMASK