I am trying to read and write the star rating for files with KM and was surprised that it's not part of the file attributes action, because for me Tags & Ratings belong together
I am trying to do it through the command line now, but also hit a roadblock. I can read them with
xattr -px com.apple.metadata:kMDItemStarRating testfile.txt | xxd -r -p | plutil -p -
but I have no idea how to write them, because xattr returns a bplist and needs one to set a new value. Obviously, the list is decoded with the code above, but I have no idea how to create a new one in order to set a new value.
- Does anybody know how to do this and can supply a quick snippet?
- Would this be a feature worthwhile implementing as an additional dropdown option for the "Get / Set File Attribute" macros?
I'm not aware of a star rating system in Finder; which app are you setting that in?
Star Rating is one of the common metadata attribute keys, but you are right, Finder doesn't expose it. I could swear that it used to be part of the "more info" window in older MacOS versions, but I might be wrong.
It works across multiple applications. The ones I use the most are PathFinder and Leap, which is a Tag Browser. Spotlight also picks them up,
Here are two things I found that might be helpful, in case you hadn't already seen them:
Hey, thank you.
Unfortunately, I don't speak python But I saw the second link and gave it a try, but it doesn't work that way anymore. Even though you can pass a number to kMDItemStarRating and it even gets stored, the other apps don't pick it up.
A legit value looks like this now:
jhein:~ jhein$ xattr -pl com.apple.metadata:kMDItemStarRating untitled.txt
jhein:~ jhein$ xattr -plx com.apple.metadata:kMDItemStarRating untitled.txt
00000000 62 70 6C 69 73 74 30 30 23 40 08 00 00 00 00 00 |bplist00#@......|
00000010 00 08 00 00 00 00 00 00 01 01 00 00 00 00 00 00 |................|
00000020 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 11 |..|
And apparently you can decode the binary like this:
jhein:~ jhein$ xattr -px com.apple.metadata:kMDItemStarRating untitled.txt | xxd -r -p | plutil -p -
My problem is that I don't know how to reverse that process in order to set a value.
Yupp, that is very helpful. Thank you!
I've just tried with the Leap trial, and
xattr -w "com.apple.metadata:kMDItemStarRating" 3 ./Catch\ JS\ Error.png
...works for me:
That's on macOS 10.14. What are you running?
Ventura 13.3.1 (a) and I tried again just to be sure and it doesn't work unfortunately
Correction: It does work in Leap, but only there. It doesn't work systemwide and other apps don't pick it up. Pathfinder and Hazel don't
It may be that different apps are using different metadata fields for the star ratings. Find/create a file that shows with 3 stars in all your different apps, then list the
xattrs for that file to find what's been set.
Have a look at this Eclectic Light post for more about
xattrs and some utilities that might help.