Nova Tag Reader ๐
Prove the tags actually landed
- files
- console
- tags_json
- file_count
- files
Tag writing is the sort of task where "it ran without errors" and "it worked" are different statements. A column that didn't match, a field name that went into a frame the player doesn't read, a file that silently wasn't touched - none of that throws.
Nova Tag Reader ๐ is the verification half. It walks the same NOVA_FILES batch and lists the tags that are actually stored on each file, as a console report and as JSON. Chain it straight after Nova Tag Writer, which passes its batch through, and you verify a write in the same run.
The robustness bit that matters
Most tag readers assume a fixed set of keys - read LYRICS from a Vorbis comment, and if it isn't there, KeyError halfway through the listing. This one reads whatever the file really carries, so a missing field reports as missing instead of exploding. That's what show_missing is for: on by default, it tells you which of your requested fields the file doesn't have rather than quietly omitting them.
It also normalises across formats. ID3 frames (TIT2, TPE1, TRCK, USLT) and MP4 atoms (ยฉnam, ยฉART, ยฉlyr) get mapped back to the same names a FLAC would report under, and container-specific oddities are flattened - MP4 stores track numbers as (number, total) pairs, which come out looking like what a Vorbis or ID3 file would show. So a mixed folder of FLACs, M4As and MP3s reads as one consistent table instead of three dialects of the same metadata.
Inputs and outputs
- files - the batch.
- fields - comma-separated, in the order you want them listed. The default is the sensible set:
tracknumber, title, artist, album, date, genre, comment, copyright, encodedby, lyrics. Use*to dump every tag the file carries, which is what you want the first time you point it at someone else's library. - show_missing - report requested-but-absent fields.
- max_value_chars - default 160. It exists because of lyrics: a full lyric sheet per file turns your console into a wall of text.
0means no limit. Note the tooltip's careful distinction -tags_jsonis never truncated. The console is for reading; the JSON is for machines.
Outputs: console, tags_json (every tag found, per file), file_count, and files passed through so you can keep chaining.
Install
ComfyUI Manager โ Nova Audio Player โ install โ restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/NovaFemme/ComfyUI-NovaAudioPlayer.git
Under โถ๏ธ Nova Audio โ ๐ฆ Delivery & Metadata. It needs mutagen, which the pack declares, so Manager gets it for you - and if you cloned by hand and nothing ran pip:
<venv>/bin/python -m pip install mutagen
There's no degraded mode for tag work, so the node reports the missing package in words instead of failing weirdly. The guarded import is why a missing mutagen costs you the two tag nodes rather than all 25.
Where it fits
Nova Batch Load Audio ๐ผ โโโถ Nova Tag Writer ๐ท๏ธ โโ files โโโถ Nova Tag Reader ๐ โโโถ Nova Console ๐ฅ๏ธ
Both example workflows the pack ships for this chain need nothing but the pack itself, which makes "verify my metadata actually got written" one of the fastest things to try here - and the reading habit is worth keeping. Wire the console to a Nova Console with a label, turn show_missing on, and read what's there. The alternative is finding out years later that a third of your library has no albumartist because the column was named Album Artist and you never checked.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| files | NOVA_FILES | Batch from Nova Batch Load Audio, or passed through from Nova Tag Writer. | |
| fields | STRING | tracknumber, title, artist, album, date, genre, comment, copyright, encodedby, lyrics | Comma-separated tag names to list, in this order. Use * to list every tag the file carries. |
| show_missing | BOOLEAN | true | Report requested fields the file does not carry, instead of quietly omitting them. |
| max_value_chars | INT | 1600โ100000 | Truncate long values (lyrics!) in the console text. 0 = no limit. tags_json is never truncated. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| console | STRING | Formatted tag listing โ wire this into Nova Console. |
| tags_json | STRING | Every tag found, per file, as JSON. |
| file_count | INT | How many files were read. |
| files | NOVA_FILES | The same batch, passed through. |