OK, so it took more than an hour.
Re upmpdcli/TIDAL - I now have it working against mconnectLite on my iPad.
FIrst hurdle - tried to install the Python module
Code:
rho@m900pre6c:~ $ sudo python -m pip install tidalapi==0.7.6
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
For more information visit http://rptl.io/venv
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
So I rook the bull-in-the-china-shop approach and passed the
--break-system-packages option on the second try. Seems to have installed the package but again I get warnings of possible breakage and suggestion to use a virtual environment.
Second hurdle - grabbing the necessary credentials and stuffing them in
upmpdcli.conf.
Oof, the first method looks laborious but would be useful, IMO, because you can see explicitly what you're doing (and see caveat, below).
I chose, instead, to follow Jean-Francois's "Alternatively, for OATH2 mode..." method.
Opened a terminal on the moOde player (m900pre6c) and ran
journalctl -f to watch the messages. Started mconnectLite on the iPad. Chose the m900pre6c UPnP mediaserver and player in Browser and Play to, respectively. Browsed down to the Tidal folder. Up pops the following upmpdcli messages in the journal (sans the May 13 11:50:15 m900pre6c upmpdcli[4927]: preface to each message)
Code:
CMDTALK: tidal-app.py: Tidal Plugin Release 0.3.0
CMDTALK: tidal-app.py: enable_read_stream_metadata=[False]
CMDTALK: tidal-app.py: enable_assume_bitdepth=[True]
tidal: getcachedir: me: upmpdcli
CMDTALK: tidal-app.py: Cache dir for [tidal] is [/var/cache/upmpdcli/tidal]
CMDTALK: tidal-app.py: DB version for [tidal] is [12]
CMDTALK: tidal-app.py: browse: path: ----
CMDTALK: tidal-app.py: browse: path_list: --['0$tidal$']-- last: --0$tidal$--
CMDTALK: tidal-app.py: Loading credentials ...
tidal: getcachedir: me: upmpdcli
CMDTALK: tidal-app.py: get_credentials_from_config_or_files pkce file is not available
tidal: getcachedir: me: upmpdcli
CMDTALK: tidal-app.py: File /var/cache/upmpdcli/tidal/credentials.json not found
tidal: getcachedir: me: upmpdcli
CMDTALK: tidal-app.py: File /var/cache/upmpdcli/tidal/pkce.credentials.json not found
CMDTALK: tidal-app.py: PKCE credentials not statically available
CMDTALK: tidal-app.py: OAUTH2 credentials not statically available
CMDTALK: tidal-app.py: Visit https://link.tidal.com/XXXXX to log in, the code will expire in 300 seconds
Here I've obscured the actual 5-character code in the link.
Immediately opened the link on a web browser on my laptop, logged into the app with my TIDAL credentials, and got a message back in the browser that my device had been successfully linked to my accound.
Back to mconnectLite. The TIDAL folder is now fully populated and I'm listening to The Poll Winners: Barney Kessel with Shelly Manne and Ray Brown, a jazz album I cherished back when I was a teenager. The moOde player seems a little slow to respond when I start a track but it's now playing and the WebUI is displaying the coverart and track info. Seems to display only the currently playing track and not the album track list but I haven't delved very deeply.
Caveat: The method I chose creates OATH2 credentials, whiich limits access to 24bit/48KHz files (which is fine for me at this stage in my life!). To create PKCE credentials instead, and hence be able to access 24bit/192KHz files, requires using the first method with extra steps. It's all explained in the referenced documentation.
Regards,
Kent
ETA -
1. I'm not sure it was needed using the second authentication method, but I thought I had seen a note somewhere that I had to uncomment the line
#tidaluser = tidal in upmpdcli.conf in order for the plugin to start, so I did before I did anything else. When I get the chance, I'll repeat the process on another player without this initial step.
2. Using the second method results in the authentication credentials being stored in
/var/cache/upmpdcli/tidal/credentials.json
rather than in upmpdcli.conf.