Exporting lists of albums and playlists using Nucleus and android: The impossible dream

Why should it be so hard for me (with a Roon Nucleus, android devices, and linux computers) to export lists of albums and the contents of playlists to a text file? The only solution I’ve found is to use a third-party site (Tune My Music) to access my TIDAL library, which of course doesn’t include Roon playlists. That’s my question/comment; the gory details follow.

When I temporarily lost access to most of my Roon library in November (possibly because of a Cloudflare outage), I decided I had to revisit the vexing issue of how to export lists of albums and playlists from my Nucleus to a text file. The Roon app for android can’t do this, nor can Roon installed on a linux box. You need to have a Windows box or a Mac.

Some users have been able to get Wine for linux to run the Roon client. I couldn’t. I installed Wine and downloaded the Roon Windows installer, which failed. ChatGPT told me, “Roon 2.0’s installer is incompatible with Wine, likely due to its reliance on Windows-specific APIs and CPU feature detection.” I uninstalled Wine and then found that the innumerable 32-bit libraries it left behind had broken the update system on my linux box. I spent a lot of time cleaning up the mess.

Some have recommended a linux package called RoonCommandLine. I installed it and then spent hours trying to get the linux box to communicate with the Nucleus. That proved impossible, because the token file needed by RoonCommandline did not exist, and could not be generated by the Roon app on android devices. ChatGPT encouraged me to jigger my router settings to “enable multicast forwarding or IGMP proxy and allow LAN-to-LAN UDP traffic on port 9003”, but I demurred.

Another recommended approach – which was abhorrent to me, but I was desperate – was to install a Windows VM on a linux box and then install the Roon client on the VM. I used KVM/QEMU to create a Windows 10 VM, and then tried to install Roon Remote, thinking, this is it, I’m almost there. But … “Roon could not find WGL functions required to initialize OpenGL”, so it was impossible to start the program. Somewhere on the web I found the comment that “KVM, QEMU and virt-manager don’t have a working feature that could provide OpenGL to a Windows 10 guest. Virtio GPUs won’t work properly with Windows and appear to be limited to a backward-compatible VGA mode with ~2 fps and 800×600.” Of course!

So, I’m using Tune My Music to export a list of my TIDAL albums from time to time. Obviously, it can’t access my Roon playlists, which I’ve spent many many hours curating, so I’m hoping Roon lives longer than I do, which became more likely after all the stress I put myself through by tackling this challenge. No, I won’t buy a Windows machine; it was painful enough having the Windows VM living on my linux box for a few days.

How hard would it be to enable the Roon app for android to export lists of library contents the way Roon clients for Windows machines and Macs do? Between the price of the Nucleus and seven years’ worth of subscription fees, I’ve poured a lot of money into Roon. It would be so nice if Roon Support would actually do something for linux and android users, instead of just letting their anguished comments die after 7 days of inactivity!

I moved this to Feedback > Feature Suggestions where Roon staff is likely to see it. @Paul_Murtaugh, please be sure to vote for it. I agree that this would be a handy feature on iOS and Android.

Maybe can be merged:

1 Like

It’s not your primary question, but you should be able to generate the roon command line token easily on Linux (you are supposed to generate the token on the device you are running command line on).

The author @Ronald_Record is on the forum and I’m sure would be happy to help if you want to try again.

Yes, I’d welcome any advice about how to get RoonCommandLine to work on a linux box. Thank you!

Hi, RoonCommandLine can be installed on Linux systems using either the Debian or RPM packages or via a scripted install on platforms that do not support deb or rpm. See the RoonCommandLine Installation Section of the README.

RoonCommandLine is intended to serve as a command line interface for the Python Roon API and as such, the commands you run with RoonCommandLine are typically executed on the same system as it is installed on although there is legacy support for commands executed remotely via SSH. Thee Roon Core authorization token should be generated automatically during the initial installation process but may need to be refreshed subsequently.

I would need more details to assist with your installation. If you would like to debug/troubleshoot then open an issue in the RoonCommandLine Repository Issues.

Thanks for your response. Can you confirm that, with RoonCommandLine running on a debian box, I will be able to export (to text files) lists of albums and the contents of playlists in the Roon library on my Nucleus? If yes, I will re-install and configure until I encounter the errors I had last time, and will open an issue in RoonCommandLine Repository Issues. (I uninstalled RCL after the installation failed last month.)

RoonCommandLine supports listing of a variety of library items including albums, artists, albums by artist, album tracks, artist tracks, composers, albums by composer, genres, albums by genre, artists by genre, playlists, playlist tracks, tags, and zones.

To list your playlists run roon -l playlists. To list the tracks in a playlist:

roon -l playtracks -p "Your Playlist Name"

The output is not CSV or any other typical playlist format, just plain text. You will need to format it for import into another system. I really did not intend the listing feature for anything more than simply letting me know what I have in my library.

When I want to export and share or import a Roon playlist I do not use the command line, I use the Roon GUI to export to CSV then import to Soundiiz and convert to whatever platform I need.

So, yes, I believe you can do what you ask with RoonCommandLine but it may not be in the format you desire - it is plain text, one item per line and will require some massaging to make it useful for import and/or sharing.

Thanks, it sounds like it does what I want. Plain text is actually my preferred (lack of) format. After I install RoonCommandLine on my Debian box, there is no evidence of any communication with my Nucleus. I opened an issue in the Github forum you referred me to, here.

@Paul_Murtaugh and I were able to get his system manually configured for RoonCommandLine but I still do not know why discovery during installation failed to retrieve the Roon Core IP, Port, or Zones.

@GregD is there any known issue with discovery and Roon Nucleus? I do not have a Nucleus to test with. Is there any Nucleus configuration that could get in the way of Python Roon API discovery?

I use a ROCK / NUC myself which I think is basically the same as a Nucleus, so I don’t think there should be an issue.

The only issue I’ve seen with discovery was that some roon clients (including my Mac) would respond to the server discovery packet even though they were not running a roon core.

Obviously an attempt to get a token from that machine couldn’t be approved by the user.

I revised my sample code to ask all responding servers for approval, and then watched for an approval response.

I then store the server id as well as the token for subsequent discovery.

It’s possibly your discovery logic pre-dates this change.

Ah, that is probably it. I am still using the first discovered server. I will adapt my code using your newer example code. Thanks @GregD !

1 Like