For the most part, this happens because those programs check if stdout is a pseudo-terminal (pty) and automatically disable color output because if you’re doing say ls -l
and try to parse it, you’ll have all the ANSI escape sequences mixed in, so for safety and predictability they disable color.
It is unfortunately a per-program thing. It is possible to fake it using script
or unbuffer
according to https://stackoverflow.com/a/32981392
Looks like socat
can also be used for that: https://unix.stackexchange.com/a/157463
LineageOS’s default music app, Twelve, supports Jellyfin as a source: