Lidarr post processing #47
Replies: 3 comments 2 replies
-
So for me, TLDR: I'm not doing any post processing anymore. (not using any of the scripts for lidarr connect feature, except for Plex notify) I believe Lidarr should not overwrite the tags if you do post-process or tag the files after import if the settings are set to not keep the files in sync. However, I think because of tagging and file modifications, it causes lidarr to freak out and my guess is that is why when it rescans, it takes forever... Likely due to the fact that lidarr will essentially re-read the tags and match the files, which is an intensive process. Hypothetically (untested), your best bet is to likely pre-process tag the files first before import, and not have lidarr tag them at all. So disable tagging in lidarr, and only have lidarr rename/organize the files. This way the files are never modified after the fact and likely won't cause an issue with lidarr. But I'm making some assumptions.... without any testing to validate... Edit: |
Beta Was this translation helpful? Give feedback.
-
So I have just about exhausted my knowledge on the subject. One iteration of my script retained the mod time and ensured the file size were left intact after setting the genre tag. (I read somewhere in the lidarr code that this was checked). These files were still being picked up by the scanner and subsequently retagged. Taking a look around the lidarr db, I can't see how else lidarr could know that a file needs a tag read and replace performed on it. I have tried a number of different configs on lidarr to prevent this behavior but apparently lidarr and I are just not cooperating. I might just have to learn C# just for this very issue.. I would love if lidarr had a way that you could prevent it from writing tags other than what is required. In reality, I don't know why lidarr would need anything other than the typical MB ids. Everything else could be "relational" in the database to keep it in check. In addition, the tagger lidarr uses, though quick, sometimes hangs or fails silently. Their PR / Issues list is quite long with lots of "tagging" issues to deal with. I would expect a division of responsibility would be in order. For instance package beets with lidarr and allow it to handle the tagging as a preprocess and then only update the MB ids of what is required. The user would then be left to his own demise with the config. Could you tell me more on how you have things set with respect to tagging? I'd like to have the most "organized" library as I can to keep the OCD at bay. Also with that many tracks I imagine you have at least 1k genres. What applications do you use to play the music? They all seem to have different ways to deal with multiple genres (no one either reads or writes tags in the correct manner) |
Beta Was this translation helpful? Give feedback.
-
Agreed! I have tried just about everything there is and lidarr is just about the best out there albeit still very lacking in a lot of respects. Tagging for me is probably the primary concern. My OCD kicks in when I have that song by that artist I can't remember the name.. So my library ingress could be from multiple places, by artist, by album, by genre, etc. Usually there is only one detail I can remember. Having hot garbage for tags makes this impossible. A very close second place is audio quality. I am no audiophile but I do like a good quality library. Maybe it's time to set out on an adventure and create this all powerful all knowing music managing device!! I can dedicate some time to a big project like that but I don't have any experience in developing something big. However, I think the demand is high enough that more developers would want to join the programming party. |
Beta Was this translation helpful? Give feedback.
-
As you know, I have been lurking around looking for a way to force some specific tags to fill the void where lidarr fails in metadata tagging. I pushed a couple of PRs your way on the old "lidarr-extended" version of these scripts. I have learned a few things since then and would like to share my findings for your reference (some of which you may already know).
I noticed that you still have some left over dependencies "pylast" in your setup scripts that are not being used within the requisite beets plugins configuration. You were smart not to carry over some of the edits I made.
What next?
In my never ending quest for genres to resemble something of use, I am rewriting the beets-lastgenre plugin in Rust with a few extra features. Firstly, It is backed by a database that stores a whitelist, genre tree, configuration and previous results from last.FM api calls. So far, the application consumes around 9ms to examine a track, and write genres which were stored in the database making no web api requests. In the even the track has never been seen before, the request takes up the most time and is something around the 200ms execution time. I plan to expose this at some point.
What's better?
I don't think that having two applications arguing about what tags should exist on a track is a good idea. This means there are two writes and two reads for every track in the library every day, unless of course last.FM and musicbrainz agree on the tagging for that track. Maybe these thoughts and actions would be better served on the upstream at lidarr to implement a more customized way to handle these tags. I've looked through their code and it just doesn't make much since to me. Lidarr seems to only collect genres for artist and album. Not sure yet how these are applied to each track but the album genres are not direct copies of artist genres thusly there must be some calculation that applies something to each track. I just want something that is parsed correctly and makes since when displayed by my music players.
Are you getting any reports of these tasks taking forever? Do any of your scripts apply tags to tracks? Have you noticed that track tags are rewritten? I have tried just about everything to prevent this behavior but Lidarr assumes ownership and thinks it's the authoritative source to tagging.
Beta Was this translation helpful? Give feedback.
All reactions