Tag Archives: tag

id3ren: Unfortunately, this will be brief

My posts will likely be rather sporadic in coming days; the real-life issues that cropped up last week have spilled over into this one, and until I can get to a solid period of free time, I’m afraid I’ll have to keep things quick.

I do have id3ren for today, which is a command-line music file tagger in the vein of mp3rename or mp3rename or … well, let’s just say there are many in this style.


Invoke id3ren, add a flag and target the files. Simple and clean. πŸ˜‰

I was a little surprised that id3ren didn’t seem to have an -h option to show its flags, but the man page for id3ren will list the full array available. Most of them appear to be what you might expect, but I’d suggest looking for some of the “shortcuts” that I saw, which should streamline some of the most popular functions.

The home page above didn’t work for me, but id3ren is in Debian, so the source code is still available if you want to build this in a different distro. I’m afraid I didn’t have enough time to tinker with it in Arch, and I didn’t see a PKGBUILD for this in AUR.

Sorry to be so brief; I’ll try to carve some time out of the days to come, and properly approach the next titles. 😐

btag: Action-interaction

I failed to make a note of who submitted btag as a console-environment audio file tagger, and I apologize for that. I do try to give credit where and when it is due.


As you can see, btag works in an interactive fashion by default, stepping through audio files one by one and allowing you to edit or delete the embedded data. In the example above, btag confined itself to tags which had existing data, and will confirm your adjustments when it reaches the end of the list.

btag also handles some passive editing, to include case adjustments or language specifics. This I like a lot, since it means you don’t have to manually edit every file in your collection just to adopt title case folder-wide.

btag also allows for renaming files by their tag data, again as a command-line option, and a long list of other conversions or adjustments. The author mentions a desire to stack btag against some of the things EasyTag can do, and for the most part, I think he has covered it.

I see btag is in Debian, but not in Arch nor AUR. If you’re looking for a low-maintenance program to contribute to the Arch user base, this might be a good one.

I can’t find a lot of faults with btag that are worth mentioning, or aren’t tiny nitpicking points of display or arrangement. I’m sure btag can handle 90 percent of the naming/renaming/tagging/retagging tasks you might have for your collection, with a varying degree of ease and efficiency.

In that way, I can give it a thumbs-up, but I probably won’t adopt it on my own systems. I feel like btag is one step shy of a proper EasyTag replacement, but doesn’t make the final leap to a full-screen console application, perhaps like stag, cursetag or even the onboard editor in ncmpcpp do.

In that way I rank it alongside things like bashtagger, id3tool or id3ed and some others, which are viable and useful tagging options … but lack the extra “kwan” to draw me to their camp. So mote it be.

bashtagger: Joining the coalition party

I eagerly await the arrival of the console tool that replaces EasyTag on my system — even more so now than I have for the past five or six years, because EasyTag took it upon itself to make the leap to GTK3, and now splatters my screen with all kinds of ungodly ugliness. 😳

I’ve come close, with both stag and cursetag, and my hope is that the prophet appears soon who will herald the arrival of the chosen one. I did get another tip from hakerdefo that bashtagger might be close, but I’m withholding my endorsement until the miracles can be verified. πŸ˜‰


bashtagger works in a menu format, allowing you access to tag information in flac or ogg files (no mp3, which suits me fine). You can set and erase tags over single or multiple files at once, and most every interaction is done through a line-editing prompt.

Color use is good, and the menus are exceptionally easy to navigate. In fact, the only difficulty that I had with bashtagger was its preference to run from the same directory as its target files. I am not sure why my attempts to feed it a target directory were turned down, but it was easily sidestepped by moving the script to the same folder as the files.

bashtagger does allow for a configuration file, and apparently that’s where the options to rename files based on their tags must reside. I tried once or twice to rename music files according to their internal tags, but the results I got were different from what I expected. I will take responsibility for those errors though.

By my experience, bashtagger lacks the one small feature that might rank it with things like stag or cursetag — the ability to reverse the rename function, and fill tag data based on the file name.

It’s a bit of an oddball feature, but it’s the one I look for as a sign of a true believer. I looked long and hard at bashtagger, but I don’t think it includes that feature, which makes me sad. If I have overlooked it, please help me.

bashtagger does seem to streamline the omnipresent console tools that can fill data or erase tags via command-line flags, which I count as an improvement. I’d like for it to make the last remaining steps toward the few features it doesn’t yet have, but I am patient.

The collective irony is that between these three — stag, cursetag and bashtagger — and the built-in tagging tool in ncmpcpp, EasyTag might no longer be needed. … πŸ˜•

tagfs, xtagfs, dhtfs and more: Tag, you’re it

For some reason, the last file tagging utility I mentioned, tagsistant, touched off a flood of suggestions on tagging titles. Four or five came from just one contributor alone, and I got e-mails about two or three more from other counties.

I didn’t know file tagging tools were so prolific. I’d always just relied on directory trees as the simplest way to arrange things, but now it seems I am living in 1988. 😐

Anachronistic me aside, I’m terribly grateful for all the suggestions. But the sheer volume — and the time it would take to build, set up, learn, playtest and evaluate all of them — means I must go the short route, and list them here as potentially interesting to you, the reader.

I don’t like doing this because there are undoubtedly some very useful tools in here, and it levels the field between the truly genius and the truly jejune. It’s hard to spot a real winner in a crop this dense though, so if you can attest to any one of these, please give us a steer.

  • Dantalian: By the home page’s admission, a “multi-dimensionally hierarchical tag-based transparent lightweight file organization system.” This struck me as closest to tmsu, which I liked best of what I’ve used.
  • debtags: If I understand correctly, debtags is the Debian solution for tagging the tens of thousands of titles in their collection, and that’s quite a testament. tagcoll, if I read the wiki right, is the go-to tool for manipulating the tags. I don’t know (but perhaps you do) if debtags or its underlying structure are applicable beyond that project itself.
  • dhtfs: A tagging system that sports “dynamic directory hierarchies based on tags associated with files.” That suggests to me that the directory structure will evolve as the tags are applied, which is either attractive or horrifying, depending on you. Personally I’m curious in a morbid kind of way, because I like to manage the way things are arranged on my system. Perhaps I shall set up a dummy system and try it out, just for kicks.
  • django-tagging: Kevin sent this one by e-mail, but I don’t have any experience with django, and I think this might go way beyond what I could investigate.
  • flickerfs: This one might be oddball of the group: I believe this latches on to your flicker account and allows you to work the tags in use there. But I don’t use flicker, and so I might be way off base with this one. Thanks to Lars for suggesting it though.
  • pytagsfs: I see this in Debian with the description, “arranges media files in a virtual directory structure based on the file tags,” which might mean it works something like dhtfs for audio files. I might give this one a try later. The home page listed on the package page doesn’t seem to be related to the project, though.
  • stagfs: A “proof-of-concept non-hierarchical FUSE file system deriving structure from independent tag files.” The term “proof-of-concept” says to me that it wasn’t intended for actual use, but it might be a viable product, so don’t take my word for it. I am quite frequently wrong. 😦
  • tag-fs: I have my doubts about this one, only because the downloadable source file is all of 36.7Kb, and the trunk is suspiciously concise. Also, it doesn’t appear to have seen updates since 2008, which is not necessarily a bad sign, only a little worrisome.
  • tagfs: Not to be confused with the previous project, this has seen more recent updates and appears to be (have been?) a more complete effort. It also seems to have an approach like tmsu or tagsistant, and I can see where it might have inspired those two titles. Another of Eric Davis‘s suggestions from a month ago.
  • tracker: tracker confuses me a little bit: Apparently this is a plugin for Nautilus, but I also see that there are things like tracker-utils in Debian, so maybe there are text-based tools that can run it too. If you use GNOME :\ you may want to investigate further. If they can’t be split off from the graphical component, then. … 😦 Thanks to Jonas for the note.
  • xtagfs: I have a strong suspicion this is intended as a tool for Macs, but I won’t discount it out of my relative ignorance about Mac-related software. And sometimes I see where tools written for Macs are implantable in Linux systems. You probably know better than me. … 😐

Of course, like I implied earlier, I simply don’t have the time right now to work with every title here, and so there may be one or two in there that are not only incapable or inappropriate, but impossible. My apologies if you stumble across something so useless as to be laughable. I feel obligated to share the information I receive, since people are kind enough to pass it my way. Just remember, as always, your mileage may vary. Happy tagging. πŸ™‚

tagsistant: Tagging with a different approach

After my great delight at trying tmsu, I was willing to try out tagsistant on Eric Davis‘s suggestion. And between the two of them, I think Eric is right: tmsu might be a better fit for me too.


I can see similarities between tmsu and tagsistant; both use directory trees to arrange tags, and to show combinations between them. tagsistant seems very intuitive when it comes to finding mixed tags, with a simple plus sign showing combinations, and so forth.

tagistant “tags” files by “copying” them into a tag folder, which means adding an entire subfolder is a lot easier than tmsu was. And you can tag a directory itself, without necessarily applying the tag to files inside it. I can see where that might be preferable, and the home page suggests that will keep the database slim.

tagsistant is also file-manager friendly, and I suppose the same thing could be said about tmsu. Once I had a few files tagged and cross-tagged, I could work my way through the directory tree with Midnight Commander, and see how files were arranged between tags.

Probably the best part of tagsistant was the setup. The home page shows you in simple steps how to create a tag system, tag individual files and work the query process. It’s a very comfortable introduction.

My complaints against tagsistant are also simple and fairly straightforward: Perhaps biggest, there’s no way I could see to query the tag system without working through the folder tree.

With tmsu I could just ask it outright what tags were applied to a file, but I don’t see an analogue for that in tagsistant. Please point it out to me, if I’m just being dense.

Second, I see no expedient way to apply multiple tags at a time. The copy-file-to-tag motif is an interesting approach, but it doesn’t lend itself to adding three or four tags at once. I prefer tmsu’s approach, of just listing tags in quick succession.

That might go back to my first, and this last point, just that the tree structure for tagsistant is a useful format, but can be very cumbersome without a file manager. Tab completion helps, but each query up or down the tree is going to require some backspacing, correction and possibly even retyping. My advice? Pick a quick file manager. :\

(Of course, maybe if you could combine this with something like commacd, you might have a very powerful combination. … 😐 )

tagsistant is by no means an unusable tool, and depending on your files and tags, you may prefer this over other options. Definitely look through the advanced documentation, because it will help you with a lot of tagsistant’s finer points.

As for myself, I’ll stick with tmsu, unless one of Eric’s other recommendations wins me over. … πŸ˜‰

stag: A good find, and a good tool

I got an e-mail from hakerdefo last week with a link to stag, which is an mp3/ogg/flac tag editor for the console, and this one is quite interesting.


I sense a lot of potential here. It seems to have all the requisite parts — a tree browser, a list of files to edit and a panel of tag data, all connected via the TAB key.

To get you started with stag, remember that the directory panel in the upper left only shows folders. I was stuck for a little while wondering why stag couldn’t “see” the files in a folder, until I realized it was expecting me to press the spacebar over a folder to add all the files in it.

Do that, and the files will appear in the right panel, as candidates for editing. Press TAB to bounce to the right, and you can again navigate up and down again with the arrow keys.

Now pressing the spacebar marks a file for editing, and you jump straight to the bottom panel and the available tag info with ENTER. If you press ENTER on a selected tag, you’ll be able to edit it along the lowest line of the screen, and press ENTER to submit it to that file.

You’re not done yet. Press TAB twice more to navigate back to the file window, and press “s” to save one file, or “w” to write them all to disk. And your work should be done.

I am thrilled with stag because it can handle editing more than one tag at a time. If you use the spacebar to highlight more than one file — or use the slash with a regex string for more control — then enter the info panel, differing tag info will disappear, and matching tag info will remain in the display.

Edit anything you like down there, and the information is held for all the files that are selected. Tags marked with an asterisk need saving. Write the files all out again, and you have multi-tag editing, in a nutshell. πŸ˜€

From there it becomes a quick matter to mass-correct or mass-fill music tags, correct dates or misspellings, or just about anything you could want to do.

There are a couple of things I’d like stag to do, and hakerdefo mentioned one or two of these as well:

  • Mass-erase specific fields, or even erase an entire tag, down to nothing. Sometimes that’s necessary. πŸ™„
  • Read tags from filenames and apply them as tag data. Some CLI tools will do this, and it doesn’t seem like a huge task.
  • Read tag data and apply it as filenames. Again, some CLI tools can do this, so it can’t be too preposterous.
  • An acknowledgment that files have been written to disk. As it is the cursor jiggles over a little, but no other visual cue that your changes have been applied.
  • Offer some sort controls over the file panel. If you were to open a giant folder of mixed files, you’d never find what you were looking for. Similarly, I have a tendency to look for particular things in order, and it’s weird to see things scattered out of sequence, like they are in that screenshot.
  • Color, and this time it just makes sense to me. You have three panels with a selection bar that bounces between all three. Adding color to each panel would make things easier to spot, and make the selection bar stand out dramatically.

I’m very pleased with stag, mostly because I think it has the potential to fill the gap at the Linux console for a proper, fullscreen tag editor application. It has a little way to go before it stands up to something like EasyTag, but I sense the Force is strong with this one. πŸ˜‰

ncmpcpp: Once more, for the tag editor

It’s been roughly two years since I took a look at ncmpcpp, and I’ve promised more than once since then to take another gander at it.

Not because it has changed that much — in fact, after a quick glance, it seems not much has changed at all. This time though, I promised I’d take a spin past the tag editor.

2014-11-04-6m47421-ncmpcpp-01 2014-11-04-6m47421-ncmpcpp-02

Of course, this comes in the wake of finding cursetag, which was almost a viable tag editor when last I tried it. It has its share of small eccentricities, but could probably step in (and actually has, if I must be honest) for EasyTag when I need to do some tag editing.

ncmpcpp has a good grip on the task too though, and I can see where this would be very useful in managing trees of files that need correction. Folders are listed along the left, categories listed down the center and their contents shown on the right. Use arrow keys to navigate, plus the enter key to select certain options or filters, like capitalization tools.

Select a field’s contents at the right, and you’ll get an editing tool across the bottom of the screen. Update, enter, repeat an save. There may be more commands available, but those seem to be the major ones. Navigate away from that folder, and ncmpcpp will remind you that you need to save your changes.

I like the arrangement; it’s a good step away from some other tools, and adds in the direct ability to edit the filename. I also like that you can reset your changes, if you realize you’ve gone and ruined things.

Two things that seem to be missing, from my perspective: First, I don’t seem to be able to mass-set tags, although it’s possible that I’m overlooking it. I can select multiple files with the spacebar, but if I press enter to edit the field, it only changes the highlighted entry. Perhaps I have overlooked it?

And comparatively, what ncmpcpp’s tag editor lacks when compared to EasyTag or some other graphical tagging tools, is a way to mass-set tags that are read from the filename, or vice-versa. Those two features are unfortunately, what keep me installing the huge bulk of GTK3-based EasyTag, which is rather daunting for my decade-old Pentium 4.

Second, and this is partly my fault, but I’m coming up suspiciously empty-handed when it comes to instructions, tutorials or howtos for working the tag editor. I’ve seen the man page, and I inferred most of the major commands. But … isn’t there a blog (gasp) or something out there that explains in better detail than what I’ve cobbled together here? Is there no extended documentation on the web site?

I’m terrifically surprised if there isn’t. But Google couldn’t find me one, even with “ncmpcpp tag editor” as a start.

All told, I like this feature, and if I could make a request, it would be to have some talented coder split that entire business out of ncmpcpp, and make it a standalone application. Given that most id3 tag tools are really just mass-set utilities, and given that the only other competition is cursetag as a proper full-screen id3 tag editor, you have the potential to make a name for yourself.

Because ultimately as it stands, I’m a moc fan, and I’m unlikely to keep both ncmpcpp and mpd installed and configured, just to take advantage of the tag editor function. It’s something I could use, but not so frequently that it would warrant keeping on my machine for roughly a 20 minutes out of an entire month. Carve this out and make it stand on its own, and I’m on board.

No matter: This is a worthy addition, if you already use mpd or ncmpcpp or both, and given ncmpcpp’s other masterful features (like the vertical lines!), it wins big points from K.Mandla. πŸ˜‰