Finderの色タグはAIではなく過去の自分が付けた — xattrの中の「レッド\n6」という文字列
写真の中身を説明するタグはファイルの中にはない。サービスのサーバーにだけある
OneDriveに同期している写真・動画5,500件ほどから「笑っている場面」のようなものを探せるか調べていて、約300件にタグが付いているのを見つけた。iPhoneかOneDriveが付けたAIタグだと思った。
中を見たら、全部自分がFinderで手で付けた色タグだった。ローカルファイルの「タグ」はほとんどが人の付けた色ラベルで、写真の中身を説明するAIタグはファイルの中にはない。 タグがファイルのどこにあるのか、誰が付けたのかの見分け方を書いておく。
タグはファイル本体ではなくxattrにある
xattr(拡張属性)は、ファイルの中身とは別にファイルに付く「名前 = 値」のメモだ。Finderのタグは二か所に跡を残す。
com.apple.metadata:_kMDItemUserTags に、タグの一覧がbinary plistの配列で入る。タグひとつは "名前\n色番号" という形の文字列だ。日本語のmacOSで付けた赤は "レッド\n6"、韓国語のmacOSで付けた赤は "빨간색\n6" になる。色番号は0なし、1グレー、2グリーン、3パープル、4ブルー、5イエロー、6レッド、7オレンジ。
com.apple.FinderInfo には旧式のラベル色が1バイトのうち3ビットで入る。ここには色がひとつしか入らない。タグを複数付けても、こちらは最後の一色だけだ。
自分で見るならこうする。
xattr -l photo.jpg
xattr -px com.apple.metadata:_kMDItemUserTags photo.jpg | xxd -r -p | plutil -p -
二行目はbinary plistをほどいて配列で見せてくれる。テスト用のファイルにタグを二つ書き込んで実行すると、0 => "Red の次の行に 6" が出た。文字列の中の改行がそのまま出る。mdls -name kMDItemUserTags もあるが、Spotlightが索引しないフォルダ(/tmpなど)では (null) だった。
誰が付けたのかを見分ける
| 候補 | 判定 | 根拠 |
|---|---|---|
| iPhoneの写真アプリ | 違う | 人物・シーン認識の結果は写真ライブラリのDBの中にある。書き出したファイルにFinderタグとしては書かない |
| OneDriveの自動タグ | ローカルでは違う | タグ名がmacOS標準の色名そのままだった。中身を言うタグはひとつもなかった |
| Finderで人が | そう | 色番号付きの形式、そして日韓二つの言語が混ざっていた |
決め手は言語だった。ある旅行フォルダは レッド、別のフォルダは 빨간색 だった。言語設定の違う二つの環境で付けたということだ。一枚に色が2〜4個重なっているものも多かった。色ごとに意味を決めて人が選んだ跡だ。付けた記憶が自分になかっただけだ。
実測(2026-09-26)
OneDrive同期フォルダ全体の約14,900件のうち、写真・動画はjpg 4,407 / heic 1,341 / png 1,305 / mov 358 / mp4 60。_kMDItemUserTags があるファイルは約300件で、すべて色タグだった。IPTC/XMPキーワード(kMDItemKeywords)は0件。コメント付きの191件は写真ではなく、Googleが作ったPDFなどだった。
つまり「笑っている写真」のような検索は、ローカルのメタデータではできない。
タグは三種類、住む場所が違う
| 種類 | どこに | ファイルを動かすと |
|---|---|---|
| Finderの色タグ | ファイルのxattr | xattrを保つコピーでだけついていく |
| IPTC / XMPキーワード | ファイル本体の中 | ファイルと一緒に動く |
| サービスのAIタグ | 写真アプリ・OneDriveのサーバー | ついてこない |
中身で検索したいなら、色タグに頼らず、ローカルの画像モデルで説明を新しく付ける方向を考えることになる。それは次の実験だ。
まだ確かめていないこと。OneDriveがFinderタグを別のMacまで運ぶのか、mdfind で レッド を探したとき 빨간색 も引っかかるのか。それと、タグを付けた日時はxattrに残らないので、いつ付けたのかは分からない。
何千件もの写真や文書を中身で探せるようにしたいと考えているなら、https://www.negabaro.com/contact から相談してほしい。
動作フロー
Finderでタグを付けると、_kMDItemUserTagsのxattrに「名前\n色番号」の文字列が積まれる
FinderInfoには旧式のラベル色がひとつだけ残る
`xattr -px … | xxd -r -p | plutil -p -` でほどいて見る