Tuesday, November 29, 2022

Plex for music: Compilations Are your tracks tagged well enough?

 

Plex is a great personal streaming service when you use plexamp. Especially if you are using lossless flacs, it can easily replace spotify. However, you soon realize that plex has been created with movies and not music in the minds. I played around with plex in recent months and like to share my experiences with plex and some third party tools and workarounds which can be a great help to improve listening experience even further. 
 
 A word concerning my setup: I use plex on a Synology Nas with an ARM-Processor, so no Docker Installation, no Supersonic functionality on plexamp. At home, I use a Windows Machine to access the plex installation via web. Same applies when using an ipad, either I listen to music, then I use plexamp or I fiddle around, then I access via web. The Ios app of plex just works fine for playing movies (which I don't use much). 

The issue with Compilations


It is a well known issue that plex can't handle compilations well. The reason is that the track artist is just a text field and not a usable attribute in the database. 

If you want to keep your compilation as one album, you have to tag the album artist as "Various Artists". In this case tracks will not show up on the artist page. At least you can search for the artist and that will give you also the tracks of a compilation as separate tracks. 

How to mass-tag missing track artists


One caveat though: You should have your tracks properly tagged, with both Various Artists in the album artist field and the name of the artist in the trackartist field. 

Say you have been missing out and you'll have quite a lot of tracks without a trackartist. The search will not render the expected result. If you don't want to go into every single track and fill in the track artist, you can use a mass tagger like mp3tag and import the appropriately tagged tracks back to plex. 

First, go to your music library and filter all tracks with missing or false id3 tags. For example, let plex show you all tracks with the album artist "Various artist", then sort by track artist and mark those tracks without a track artist assigned. 

 Create a playlist with those tracks. Then export the playlist as described in a previous post, import it into mp3tag and update the tags. As a last step, let plex read the updated tags. 

Voilà: Plex search should now find those tracks as well. 


Playlists vs. Collections

In case you wondered: What is the difference between playlists and Collections?
One thing I find the most striking is that playlists are based on tracks whereas Compilations can show either tracks or whole albums. 

If you want to reorganize your files grouped in a playlist, you will be disappointed: playlists don't offer any possibilities to manage the items. Collections are more flexible: You can change properties both on a collection level for all items but also on the individual item level. 

Transform playlists into collections and vice versa

If you want to transform a collection into a playlist, you can do so by using the context menu. But there is no way to do the opposite on the web interface. However, you can use a script by casvt on github.

Once you have figured out how to use python script, the process is fairly easy.  

1. copy the script to your machine to a folder, i.e.  PlexScriptsMisc
2. identify your plex-server-ip, your plex-port (mostly: 32400) and your individual X-Plex-Token, fill that into the script and save.
3. Start PowerShell and change to that folder: cd C:\Users\....
4. Create a virtual environment: python -m venv pmm-venv) and activate: .\pmm-venv\Scripts\activate
5. Install requirements:: pip install requests
6. make use of optional arguments:  

  -h, --help            show this help message and exit
  -l LIBRARYNAME, --LibraryName LIBRARYNAME
                        Name of target library (i.e. "music ")
  -p PLAYLISTNAME, --PlaylistName PLAYLISTNAME
                        Name of target playlist (i.e. "No1s")
  -r, --RemovePlaylist  Remove source playlist afterwards

7. : run: python playlist_to_collection.py  (i.e. "python playlist_to_collection.py -l "music" -p "No1s")



No comments:

Post a Comment