UPMPDCLI.CONF(5)

πŸ“¦
version 1.9.17 Β· 2 versions
, in alpine 3.24, arch rolling

πŸ’– upmpdcli.conf(5) β€” Upmpdcli πŸ’–

🌸 NAME 🌸

upmpdcli.conf β€” the upmpdcli.conf documentation, bestie. That’s the whole name section, short and iconic πŸ’…


✨ DESCRIPTION ✨

okay so listen: upmpdcli.conf is literally the configuration file for upmpdcli(1). Its location has to be pointed out to the program either through the UPMPD_CONFIG environment variable or through the -c command line option. No vibes-based guessing, it needs one of those 🫢

Each line in the config file contains a setting name and its value, like this:

logfilename = /tmp/upmpdcli.log

Almost all configuration variables have suitable defaults, and the program distribution includes a sample file, typically installed to /etc, where variables are listed and commented. Very β€œread the sample, queen” energy πŸ‘‘

You should have a look at the online manual for more complete information: http://www.lesbonscomptes.com/upmpdcli/upmpdcli-manual.html 🌈


πŸŽ€ PARAMETERS πŸŽ€

  • logfilename = fn β€” Log file name. Defaults to stderr. This can also be specified as -d logfilename. Some plugins use different files or stderr to log their messages to. πŸ“
  • loglevel = int β€” Log level. Can also be specified as -l loglevel. Some plugins have their own settings that control log verbosity. πŸ‘‘
  • upnplogfilename = fn β€” Enable low level libnpupnp logging and set output name. Set to empty for stderr. This log is not active if this variable is not set at all. Use an empty value for the messages to go to stderr. πŸ’€
  • upnploglevel = int β€” Log level for the low level UPnP lib. For historical reasons the matching values are 1 less than equivalent values for the upmpdcli log. 4 is very verbose. 😭
  • pkgdatadir = dfn β€” XML and other constant data storage directory. Default: $prefix/share/upmpdcli (e.g.: /usr/share/upmpdcli). πŸŽ€
  • pidfile = fn β€” Name of the lock file used to store the current process pid. Only used if the process is launched by user root. Used by the init system, and to avoid multiple instances. The only reason to change the value is if you actually want to have several instances running (also change cachedir in this case). πŸ¦‹
  • upnpiface = cstr β€” Network interface(s) to use for UPnP. This can be left empty to use the first found suitable interface, or set to a single * character for using all interfaces. Else set it to a space-separated list of interface names (use double quotes if the names have embedded space characters). ✨
  • upnpip = string β€” IP V4 address to use for UPnP, alternative to using an interface name. πŸ’œ
  • upnpport = int β€” Port number used for UPnP. libupnp/pupnp defaults to using the first free port after 49152. Note that clients do not need to know about the value, which is automatically discovered. 🫢
  • useipv6 = bool β€” Enable use of IPV6. By default we only use IPV4. 🌸
  • friendlyname = string β€” "Friendly Name" for the Media Renderer. This will be displayed by most Control Points to identify the Renderer. Some OpenHome Control Points may display the ohproductroom value instead. πŸ’–
  • avfriendlyname = string β€” Specific friendly name for the UPnP/AV Media Renderer. The default is to append -av to the friendlyname value. πŸŽ€
  • upnpav = bool β€” Enable UPnP AV services (0/1). This is set by default, but it may be useful to switch it off to avoid cluttering the Renderer choices if you only use OpenHome. ⭐
  • openhome = bool β€” Enable OpenHome services (0/1). This defaults to 1, as OpenHome queuing is superior for most usages. There should be little reason to turn it off. πŸ‘‘
  • lumincompat = bool β€” Disable the OpenHome Credentials service. At some point, this was necessary to enable Lumin to see upmpdcli instances: for some unknown reason, Lumin 1.10 did not discover upmpdcli with Credentials enabled. πŸ™ˆ
  • ohinfotexttodata = bool β€” Store metadata into the OpenHome metatext variable. The OpenHome Info service are supposed to hold different data, mostly for radios, with permanent radio data (icon, url, radio name) set in the Metadata variable, and information about the current title recorded in the Metatext variable. Setting this option will have upmpdcli store any non-empty Metatext data in the Metadata variable. This will help some players display the album art for the current title (e.g. Kazoo). 🌸
  • checkcontentformat = bool β€” Check that input format is supported. Extract the protocolinfo information from the input metadata and check it against our supported formats. Set this option to 0 if a control point or media server sends good audio data with bad metadata. πŸ”₯
  • iconpath = fn β€” Path to the Renderer icon. The image will be displayed by Control Points which support it. The UPnP protocol has provisions for a renderer to send the URL to a descriptive icon as part of the device description. Due to current (and probably permanent) upmpdcli limitations, the image file must be a 64x64 32 bits-per-pixel png file. Default: $pkgdatadir/icon.png. The icon will only be read once, when upmpdcli starts up. πŸŽ€
  • saveohcredentials = bool β€” Save the streaming services login parameters to disk. This allows sharing the password with the upmpdcli media server streaming service proxy, if you are also using it. Avoids having to enter the password in the regular configuration file. Depending on your situation, you may see this as a security risk. The default is true, because I don’t see this as a real issue in the general case. πŸ’…
  • opensslcmd = fn β€” Path to the openssl command. The OHCredentials service needs openssl 1.1.x or newer. Path to the openssl command to use if the system one (in /usr/bin) is too old. Not set by default. πŸ¦‹
  • cachedir = dfn β€” Directory used to store cached data. Only used for the OpenHome queue metadata for now. The default value is ~/.cache/upmpdcli for normal users or /var/cache/upmpdcli when upmpdcli is started as root. πŸ“
  • presentationhtml = fn β€” Path to the presentation HTML document. You can change it to replace the default presentation page. The page will only be read once, when upmpdcli starts up. It can’t presently be used for status updates (but I guess that you could put a redirect in there, to something more dynamic served by a real HTTP server). Default: $pkgdatadir/presentation.html. 🌈
  • enablel16 = bool β€” Advertise L16 format support. L16 is a raw linear 16 bits audio stream and the source of many issues because it does not include identifying information. It used to be disabled by default, because of an mpd bug resulting in a lot of noise. It’s now on by default, but can still be disabled if needed. It seems that it sometimes interfers badly with the win10 "cast to device" feature, so you may try to turn it off if you have problems with this. 😭
  • mpdhost = string β€” Host MPD runs on. Defaults to localhost. This can also be specified as -h host. πŸ’œ
  • mpdport = int β€” IP port used by MPD. Can also be specified as -p port. Defaults to the normal MPD port, 6600. πŸ‘‘
  • mpdpassword = string β€” MPD password. Password for connecting to MPD (only necessary if password access is enabled in the MPD configuration file). πŸ”
  • mpdtimeoutms = int β€” MPD connection timeout in milliseconds. If this is not zero, dialogs with mpd will timeout after the value. This will allow upmpdcli to stay responsive (return errors) if MPD ever becomes stuck. πŸ’€
  • ownqueue = bool β€” Set if we own the MPD queue. If this is set (on by default), we own the MPD queue and will fearlessly clear it. Can also be specified as -q 0|1. πŸ”₯
  • onstart = fn β€” Command to run when playback is about to begin. Specify the full path to the program, e.g. /usr/bin/logger. ✨
  • onplay = fn β€” Command to run when MPD state switches to "PLAY". Specify the full path to the program, e.g. /usr/bin/logger. πŸŽ€
  • onpause = fn β€” Command to run when MPD state switches to "PAUSE". Specify the full path to the program, e.g. /usr/bin/logger. 🌸
  • onstop = fn β€” Command to run when MPD state switches to "STOP". Specify the full path to the program, e.g. /usr/bin/logger. πŸ¦‹
  • onstandby = fn β€” Command to run when the setstandby action is called. Specify the full path to the program. It is called with one 0/1 argument to change the standby state (1 for activating standby), and with no argument to query the state. In all cases, it should print the standby state (0/1) to stdout before exiting. πŸ’–
  • externalvolumecontrol = fn β€” Use external command to manage the the sound volume (0/1). This is used in the case where MPD is unable to control the volume, but some other command can, for example if you have an external amp on which it is possible to set and read the volume through scripts. If set, the calls to MPD to set and read the volume will be replaced by executions of onvolumechange and getexternalvolume. πŸŽ›οΈ
  • getexternalvolume = fn β€” Command to run for reading the sound volume. The command should write a 0-100 numeric value to stdout. πŸ“
  • onvolumechange = fn β€” Command to run to set the volume. Used when externalvolumecontrol is set. Specify the full path to the program, which is called with the volume as the first argument, e.g. /some/script 85. πŸ”Š
  • avtautoplay = string β€” Automatically fake a Play command when track is set. The UPnP/AV SetAVTransportURI, used to set the track to play, normally does not change the current transport state: an explicit Play command is required to start playing if the transport was stopped. Setting this parameter will synthetize a Play command after receiving SetAVTransportURI. This is needed by some control points which do not send the Play command. πŸ‘‘
  • ohproductroom = string β€” The name of the room where the Product is located. Set to "Main Room" by default, displayed in place of the "friendly name" by some control points. ProductRoom is used to group the Product with other related Products in the same physical room (e.g. a source with a pre-amp). Products which are physically linked must always share the same ProductRoom name. 🏠
  • radiolist (fn) β€” bestie, this is the path to an external file full of radio station definitions πŸŽ€ and here's the tea: you can define your radio stations in this main config file, in an external file, or literally both at once. The external file is the whole point of the vibe β€” it makes it way easier to hand the same setup to a bunch of machines, keeps things readable, and yep, it's the default now. Peep the distributed file (the name's below πŸ‘‡) for the deets on how a radio station actually gets defined. Oh and heads up: if you do wanna define radios right here in the main config file, they MUST come at the very end of the file β€” that's non-negotiable β€” because they're defined as subsections, and the last one just keeps going all the way to the end of the file. no cap πŸ’…
  • radioscripts (fn) β€” the radio metadata scripts directory, aka where the scripts that fetch channel metadata live. Default is /usr/share/upmpdcli/radio_scripts. Important little note: the scripts are always looked for first in the locations defined by $PATH πŸ¦‹
  • ohmanufacturername (string) β€” the manufacturer name. that's it. that's the whole thing ✨
  • ohmanufacturerinfo (string) β€” manufacturer information.
  • ohmanufacturerurl (string) β€” URL for the manufacturer's web site.
  • ohmanufacturerimageuri (string) β€” the Uri for the manufacturer's logo πŸŽ€
  • ohmodelname (string) β€” model name.
  • ohmodelinfo (string) β€” model information.
  • ohmodelurl (string) β€” URL for the model's web site.
  • ohmodelimageuri (string) β€” Uri for the model's icon.
  • ohproductname (string) β€” the user-visible product name πŸ‘‘ by default this is set to ModelName.
  • ohproductinfo (string) β€” product information.
  • ohproducturl (string) β€” URL for the product web site. This may be the UPnP presentation page πŸ‘€
  • ohproductimageuri (string) β€” Uri for the product image.
  • ohmetapersist (bool) β€” save queue metadata to disk, 0/1 style. This is what lets your metadata info survive across restarts, the default is 1, and honestly there is no reason to turn it off 🫢
  • ohmetasleep (int) β€” minimum interval, in seconds, between two cache saves. Bumping this up may improve playlist load speed on a slow device (slay for your crusty hardware). The default behaviour is to start a new save as soon as the previous one is done β€” that's if the list changed again in between.
  • msfriendlyname (string) β€” the friendly name for the Media Server (if it's enabled). Default vibe is to append -mediaserver to the friendlyname value ✨
  • msrootalias (string) β€” the Media Server root alias Object ID πŸ”₯ use the specified Media Server container as root. When the Control Point connects it'll show you this container directly, which saves you from having to skip over the top levels if you don't use them (e.g. the active plugin list when there's only one plugin). The value is an UPnP object ID, which β€” tragic β€” is not generally obtainable from Control Points. But the commonly useful values are super simple:
    • 0$uprcl$ β€” direct access to the Local Media root
    • 0$uprcl$folders β€” direct access to the Local Media [folders] tree

An alias must begin with 0 (that's the mandatory UPnP root object ID), followed by $pluginname$, where pluginname could be any subdirectory of /usr/share/upmpdcli/cdplugins except pycommon (e.g. uprcl, qobuz, upradios...), and the rest of it would depend on the plugin type πŸ’…

  • plgmicrohttphost (string) β€” the hostname/IP address used in proxy URLs. Default is to use the same host/address as the UPnP server. Switching to localhost/127.0.0.1 instead loses your ability to stream to a remote renderer β€” but it does give you portable playlists, so, tradeoffs 😭
  • plgmicrohttpport (int) β€” IP port for the Subsonic, Tidal, or Qobuz local HTTP service. The URLs for tracks streamed from these services point to a local microhttpd HTTP server running on this here port. It uses redirection to the actual service URL, or proxying from it, while streaming. Default is 49149 πŸ“
  • plgproxymethod (string) β€” decides whether we proxy (copy from the service to the renderer) or redirect the streaming services' streams πŸ‘‘ This setting is all about how responses from a streaming service get handled β€” think Subsonic, Tidal, Qobuz. The URLs these services hand out are usually short-lived, which means they literally can't be part of a playlist. So upmpdcli hides these resources behind a stable URL that gets presented to the renderer (the player).

With the "redirect" default setting, that stable URL becomes an HTTP 302 redirection pointing to the original streaming resource. The renderer has to resolve that redirection and then it can stream from the original location. Some renderers β€” e.g. AV receivers β€” are just not able to follow an HTTP redirection πŸ’€

With the "proxy" setting, the original URL stays concealed and there's no redirection at all. upmpdcli reads the music from the remote service and serves it to the renderer in parallel. It requires more resources compared to redirection and is less efficient, but some renderers simply don't support HTTP redirection, so here we are πŸ™ˆ

  • msiconpath (fn) β€” path to the Media Server icon. The image will be displayed by Control Points that support it. But because of current (and probably permanent) upmpdcli limitations, the image file must be a 64x64 32-bits-per-pixel png file. Default: '$pkgdatadir/icon.png'. Also the icon is only read once, when upmpdcli starts up 🌸
  • webserverdocumentroot (string) β€” the path from which the UPnP HTTP server will serve files. The values go: 0 = none, 1 = auto, or an absolute path = use it. Some Mediaserver plugins need this, e.g. for serving icon files or cached data. Default value is 1, which results in an actual path of /var/cache/upmpdcli/www or ~/.cache/upmpdcli/www ✨
  • hrauser (string) β€” Hra user name. Like, your Hra login name πŸŽ€
  • hrapass (string) β€” Hra password. The password for your Hra account. keep it secret, keep it safe πŸ”
  • hralang (string) β€” Hra language setting (en/de). Some Highresaudio messages will be set in the appropriate language πŸ’¬
  • hratitle (string) β€” Plugin Title. This gets displayed as the plugin entry in the Media Server root directory πŸ‘‘
  • qobuzuser (string) β€” Qobuz user name, and the value may be bogus πŸ‘€ Basically your Qobuz login name β€” but here's the thing, it must be set to activate the Media Server plugin, and the actual value is not used. So yes, you can put nonsense. iconic.
  • qobuzformatid (cstr) β€” Qobuz stream quality. 5 for mp3/320, 6 for FLAC, 7 FLAC 24/96, 27 for hi-res (if your subscription allows streaming each of the formats) 🎧
  • qobuzrenumtracks (bool) β€” Qobuz track renumbering. Renumbers tracks by counting elements, which avoids issues with Kodi. Enabled by default πŸ¦‹
  • qobuzexplicititemnumbers (bool) β€” explicit item numbers in brackets. Adds item numbers in square brackets in lists, mostly for kodi compatibility/usability. Disabled by default πŸ’…
  • qobuzprependartisttoalbum (bool) β€” artist name before albums in album lists. Prepend artist to album in album lists, mostly for kodi compatibility/usability. Disabled by default.
  • qobuztitle (string) β€” Plugin Title. This will be displayed as the plugin entry in the Media Server root directory 🌟
  • tidaluser (string) β€” bogus user name variable 😌 It decides if the service should be started. Set it to any arbitrary value and you're good.
  • tidaltokentype (string) β€” Oath2 authentication token type. The type of token used for OAUTH2 authentication β€” typically Bearer πŸŽ€
  • tidalaudioquality (cstr) β€” Tidal maximum stream quality. LOW for mp3/96, HIGH for mp3/320, LOSSLESS for FLAC 16/44, HI_RES for FLAC up to 24/48, HI_RES_LOSSLESS for hi-res FLAC files (if your subscription allows streaming each of the formats) πŸ”₯
  • tidaltitle (string) β€” Plugin Title. This will be displayed as the plugin entry in the Media Server root directory πŸ‘‘
  • tidalprependnumberinitemlist (bool) β€” use item numbers in album lists for kodi compatibility. Kodi always tries to sort things, and with this parameter we force it to show the entries in the desired order 😀 periodt.
  • tidalenableimagecaching (bool) β€” enables image caching, requires webdocumentroot. Lets the plugin cache images for Artists and Albums β€” requires webdocumentroot and some disk space, recommended πŸ’–
  • tidalsearchlimit (int) β€” Tidal search limit. Sets the maximum number of items returned by search, defaults to 15 πŸ”
  • tidaloverridecountrycode (string) β€” override the country code. This lets you specify the desired two-letter country code 🌍 When not specified, it should default to the country code of the profile.
  • tidaltrackidregex (string) β€” track id regex expression. The expression used to validate the track_id in trackuri. Do not set it unless you know what you are doing ⚠️ like, seriously, don't.
  • tidalverboselogging (bool) β€” enables verbose logging, defaults to 0 (no). Turns on more verbose logging, which might be useful for testing πŸ›
  • uprcluser (string) β€” bogus user name variable, used for consistency with the other Media Server plugins to decide if the service should be started (so yeah, do set it if you want a Media Server). You probably also want to set uprclautostart=1 so that initialisation kicks off as soon as the program does πŸš€
  • uprcltitle (string) β€” Plugin Title. This will be displayed as the plugin entry in the Media Server root directory ✨
  • uprclmediadirs (string) β€” media directories. This is a space-separated list of directories to explore for music files 🎡 It's used directly as the recoll "topdirs" value, so you can use double-quote quoting for paths with embedded spaces. If it's not set, we'll try to use contentDirs from the Minim config. An error will occur if both are empty 😭
  • uprclnoradioconf (bool) β€” don't make the local radio list as a playlist. By default uprcl will process the local radio list and make it available as a playlist (in the Playlists top container). That can slow down initialisation and is useless if the upradios plugin is also running, so you can disable it with this variable πŸ’…
  • uprclhostport = string β€” the host AND port where the Uprcl HTTP server serves your media files, bestie. Uprcl runs a whole separate HTTP server built on the Python Bottle framework + the Waitress server πŸ“. That server listens on this address and port, and the same address:port gets baked into the URLs we hand out. If you don't set this variable, we default to port 9090 and the same address as the server used for the other services (either plgmicrohttphost or the first ipv4 address used by the upnp layer. not. β€” yes the page literally says "not." there, we're keeping it, iconic πŸ’€). Example: 192.168.1.1:9090. Since it's lowkey reasonable to use the same address as the upnp layer, check out uprclport too if you only wanna specify the port.
  • uprclport = string β€” the Uprcl HTTP server port for serving media files πŸŽ€. This is the port we listen on for media requests. The listen address is either plgmicrohttphost if that's set, or the first ipv4 address used by the upnp layer. Ignored if uprclhostport is set (hostport ate and left no crumbs).
  • uprclconfdir = dfn β€” the uprcl Recoll index directory ✨. Usually not defined at all, and it defaults to /var/cache/upmpdcli/uprcl. The name is a lil misleading ngl, because there's barely any real configuration data in there: it's mostly programmatically generated from actual configuration found elsewhere (but also peek at uprclconfrecolluser πŸ‘€).
  • uprclconfrecolluser = fn β€” the name of the user Recoll config additions file πŸ’…. This is a file full of extra parameters for the uprcl recoll.conf file, and its contents get appended before indexing. Default is /var/cache/upmpdcli/uprcl/recoll.conf.user. If you set it, it should be an absolute path, no exceptions.
  • uprclminimconfig = fn β€” the name of a Minim Server configuration file 🌸. If set, this is the Minim Server config file we fetch parameters like aliasTags, etc. from (see the manual). Not set by default, and totally optional.
  • uprclnotagview = bool β€” suppress the folder "Tag View" entries πŸ¦‹. The "Tag View" entry lets you browse a subdirectory by tags. It can be genuinely quite useful, but it's also a problem with some Control Points, or with certain kinds of usage. So: your call.
  • uprclnoindexing = bool β€” don't run the indexer on startup πŸ™ˆ. Mostly for gaining time when you're restarting the server over and over for debugging. Speedrun vibes.

  • upradiosuser = string β€” a bogus user name variable πŸ’€. It exists for consistency with the other Media Server plugins, which use it to decide if the service should be started β€” so yeah, do set it if you want to see the radio list πŸ“».
  • upradiostitle = string β€” the plugin Title πŸ‘‘. This is what shows up as the plugin entry in the Media Server root directory.
  • upradiosmaxthreads = int β€” the maximum number of threads to use while initializing the radio list πŸ”₯. Most radios are defined by playlist files which may need several network interactions before the actual URL usable by the control point can be reached. We use multiple threads to speed this process up, and this is the max thread count. Parallel slay.

  • radio-browseruser = string β€” a bogus user name variable πŸŽ€. It decides if the service should be started. Set it to any arbitrary value, literally anything, we don't care.
  • radio-browsertitle = string β€” the plugin Title πŸ‘‘. Displayed as the plugin entry in the Media Server root directory.
  • radio-browseripinfotoken = string β€” your IPInfo token ⭐. Set your ipinfo token in order to have the shortcut to the local radios.
  • radio-browsercountry = string β€” the preferred country 🌈. Set this to the preferred country in order to have the shortcut to the local radios. This is the alternative to using the ipinfo token. The value is specified in the form of a country code, e.g. FR, IT, etc.

  • radio-paradiseuser = string β€” a bogus user name variable πŸ’€. Decides if the service should be started. Set it to any arbitrary value.
  • radio-paradisetitle = string β€” the plugin Title πŸ‘‘. Displayed as the plugin entry in the Media Server root directory.

  • mother-earth-radiouser = string β€” a bogus user name variable 🌍. Decides if the service should be started. Set it to any arbitrary value.
  • mother-earth-radiotitle = string β€” the plugin Title πŸ‘‘. Displayed as the plugin entry in the Media Server root directory.

  • subsonicuser = string β€” the SubSonic user name 🫢. Decides if the service should be started. Set it to the appropriate user name.
  • subsonicpassword = string β€” the SubSonic password πŸ”. Required for SubSonic authentication. Set it to the appropriate password.
  • subsoniclegacyauth = bool β€” SubSonic legacy authentication mode πŸ’€. Required for SubSonic authentication with some servers (e.g. lms). Set to 1 to enable.
  • subsonicuseragent = string β€” the SubSonic user agent 🧚. Lets you specify the user agent in http requests; defaults to upmpdcli.
  • subsonicskipuseragent = bool β€” force the user agent to be empty πŸ™ˆ. You might wanna enable this one in case the default user agent causes some trouble. YMMV, bestie.
  • subsonicbaseurl = string β€” the SubSonic server base url 🌸. The URL of the server, without the port. Specify http or https.
  • subsonicport = int β€” the SubSonic server port πŸŽ€. The port of the SubSonic server.
  • subsonicserverpath = string β€” the SubSonic server path πŸ¦‹. Optional β€” use only if the server is exposed on a specific path.
  • subsonicitemsperpage = int β€” SubSonic items per page ✨. Number of items per page for SubSonic.
  • subsoniccachetimeoutartists = int β€” SubSonic cache timeout for artists πŸ’œ. Cache timeout for artists, defaults to 600.
  • subsonicappendyeartoalbumcontainer = bool β€” append year to album container ⭐. If enabled, the year will be appended to the album as a container. Enabled by default.
  • subsonicappendyeartoalbumview = bool β€” append year to album view πŸ‘€. If enabled, the year will be appended to the album view. Disabled by default.
  • subsonicappendyeartoalbumsearchres = bool β€” append year to album as search result πŸ”. If enabled, the year will be appended to the album as a search result. Disabled by default.
  • subsonicappendrolestoartist = bool β€” append roles to artists 🎀. If enabled, the artist roles will be appended to artist entries. Enabled by default.
  • subsonictranscodecodec = string β€” enable transcoding πŸ”₯. If a value is set, it will be used as the codec for the transcoding process. The value should be the file extension of the desired format (without the leading dot), e.g. "mp3" or "flac", as this will provide the ground for communicating the correct MIME type to the renderer.

This is a free-form text that's used in the communication between the Subsonic server (e.g. Navidrome) and upmpdcli. The server must have the corresponding entry for this format value to start the assigned transcoding command.

Transcoding doesn't happen for files that are already in the required format. Periodt.

  • subsonictranscodemaxbitrate = int β€” set max bitrate for transcoding 🎚️. If a value is set, it will be used as the max bitrate for the transcoding process.
  • subsonicserversidescrobbling = bool β€” enable server-side scrobbling πŸ’œ. If enabled, we will scrobble the song when streaming starts. Disabled by default.
  • subsonicprependnumberinalbumlist = bool β€” add a progressive number to album in album lists πŸ”’. Mostly for Kodi compatibility and usability. Enabled by default.
  • subsonictaginitialpageenabledir = bool β€” Subsonic enable Internet Radios πŸ“». Enables Internet Radios. Disabled by default, because upmpdcli offers multiple ways of handling Internet Radios.
  • subsonicshowemptyfavorites = bool β€” Subsonic show empty Favorites entries ⭐. Force entries for Favorites, even if there are no Favorites. Disabled by default.
  • subsonicshowemptyplaylists = bool β€” Subsonic show empty Playlists entry 🎧. Force entry for Playlists, even if there are no Playlists. Disabled by default.
  • subsonictitle = string β€” the plugin Title πŸ‘‘. Displayed as the plugin entry in the Media Server root directory.
  • subsonicallowappendgenreinalbumview = bool β€” Subsonic show genres in album view 🎭. Show Genres in album view. Disabled by default.
  • subsonicallowgenreinalbumcontainer = bool β€” Subsonic show genres in album container entry 🎭. Show Genres in album container, used in album lists. Disabled by default.
  • subsonicenableimagecaching = bool β€” enables image caching, requires webdocumentroot πŸ–ΌοΈ. Allows the plugin to cache images from the server; requires webdocumentroot and some disk space. Recommended.
  • subsonicenablecachedimageagelimit = bool β€” enables pruning for image cache, requires webdocumentroot 🧹. Allows the plugin to remove old cache images from the server. Recommended.
  • subsoniccachedimagemaxagedays = int β€” age limit for image files in image cache in days πŸ“…. Sets the maximum image file age in days, relevant when pruning is enabled.
  • subsonicallowartistcoverart = bool β€” enables use of cover art from artists, enabled by default 🎨. Set it to 0 in order to avoid using coverArt from artists, which can be expensive/slow against Navidrome if Spotify is enabled.
  • subsonicenablemaintenancefeatures = bool β€” enables maintenance features, e.g. list albums without MusicBrainz Id πŸ› οΈ. Set it to 1 in order to enable library maintenance features. Disabled by default.
  • subsonicartistalbumnewestfirst = bool β€” show artist albums from newest to older if left empty or set to 1 πŸ•. Allows you to change the sort order for artist albums. Set it to 0 if you want the order to be ascending instead of descending (default).
  • subsonicmaxrandomsonglistsize = int β€” number of songs in Random Songs (list) 🎲. Set the maximum number of songs in Random Songs (list), defaults to 250, cannot be more than 500.

  • bbcuser = string β€” a bogus user name variable πŸ’€. Set this to activate the plugin; the value is ignored.
  • bbcprogrammedays = string β€” past days in BBC Sounds catalog listing πŸ—“οΈ. This controls how many days are listed in the station displays.
  • bbctitle = string β€” the plugin Title πŸ‘‘. Displayed as the plugin entry in the Media Server root directory.

  • sclogfilename = fn β€” log file name for sc2mpd (default stderr) πŸ“. The value must not be the same as the one used for upmpdcli (except if empty). Don't do it, bestie, it will not slay.
  • scloglevel = int β€” log verbosity for sc2mpd πŸ”Š.
  • scplaymethod = cstr β€” the sc2mpd play method, either mpd or alsa. With this set as alsa, sc2mpd will send the audio directly to the sound driver, which is the only way to really avoid skips and control the synchronization in multi-room setups.
⚠️ For alsa, make sure that user upmpdcli has permission to access the audio devices !
  • schttpport = int β€” port used by sc2mpd for MPD to connect to. Used only for scplaymethod=mpd. sc2mpd only accepts connections from localhost.
  • scalsadevice = string β€” Alsa device used by sc2mpd for playing audio. Only used for scplaymethod=alsa. Use aplay -L to see the possible values.
  • sccvttype = cstr β€” sc2mpd resampling method. Only used for scplaymethod=alsa. sc2mpd uses libsamplerate. The default method is SRC_SINC_FASTEST and a Rasberry Pi 1 is fast enough to use it. Possible values: SRC_SINC_BEST_QUALITY, SRC_SINC_MEDIUM_QUALITY, SRC_SINC_FASTEST, SRC_ZERO_ORDER_HOLD, SRC_LINEAR. See the libsamplerate documentation for descriptions. Anything above SRC_SINC_FASTEST needs a serious CPU. BEST_QUALITY uses approx 25% cpu on a core i7 4770T. Obviously too much, actually might not be sustainable (it’s almost 100% of 1 cpu). MEDIUM_QUALITY is around 10% on the same machine, FASTEST is 4-5%. Given that this is measured for the full process, probably a couple % for the conversion in fact. NONE will turn resampling off: minimum CPU and best quality, but guaranteed glitches from time to time, depending on the clocks skew.
  • scusempdvolume = bool β€” scale songcast stream based on mpd volume value. Allow controlling the volume from the Control Point by scaling the stream according to the mpd volume value. Only works when scplaymethod is alsa.
  • sc2mpd = string β€” path to sc2mpd. Only useful if it is not in /usr/bin and the location is not in the $PATH for the init scripts.
  • screceiverstatefile = string β€” path to a screceiver state file. If set, the sender uri and metadata will be read from the file when initializing the Songcast Receiver service and written to the file when a Sender is set for the service. Useful for preserving the sender information between restarts.
  • scstreamcodec = string β€” codec to use for the network stream.
🚨 !!Standard Songcast receivers only support PCM!! Set to empty or PCM to support foreign receivers. Or use FLAC or OPUS for lower network load.
  • scsenderpath = fn β€” path to starter script. This is normally scmakempdsender which starts the auxiliary mpd and the sender process. Empty and searched in the PATH by default.
  • scstreamscaled = bool β€” scale the Songcast stream. If set, MPD software volume control will be applied to the stream. True by default: using a Control Point to set the volume on the upmpdcli instance which started the Sender affects the volume for all Receivers.
  • scsendermpdport = int β€” localhost port to be used by the auxiliary mpd.
  • scripts_dir = dfn β€” external sources script directory. Location for the scripts used to set up additional external sources. See the Songcast Sender support documentation page.
  • scscriptgracesecs = int β€” grace period to wait for a script process to exit before it is forcely killed. In seconds. Default 2 S.

🌈 SEE ALSO 🌈

upmpdcli(1)


okay that’s the whole page bestie πŸ’– this one is UPMPDCLI.CONF(5) from upmpdcli 1.8.8, dated Mar 04, 2024 β€” periodt ✨

πŸ“¦ where this page comes from