Giter VIP home page Giter VIP logo

taggie's Introduction

Taggie

Edit audio tags in your favorite text editor!

Here's how it works:

  1. You run taggie in a shell, from a directory which contains audio files you want to edit.
  2. Taggie opens your favorite editor with the title and artist tags separated by tabs.
  3. You edit the tags, save the file and exit the editor.
  4. Taggie updates the tags according to your changes.

Rationale

From time to time I download a release from Bandcamp where the tags are messed up, especially when we're talking about compilation albums from various artists. MusicBrainz Picard doesn't help there if the release is fresh.

It's easy enough to modify the album or album artist tags in iTunes because it's setting one value for all tracks. However, sometimes there's more you need to change: the "title" tag is in the format "[title] - [artist]" or each title contains some junk that you want to remove.

This requires some text processing capabilities, and—if you're a developer—what's better for text processing than your favorite text editor?

Supported audio formats and tags

Taggie edits tags through TagLib, so it aims to support whatever TagLib supports:

Currently it supports both ID3v1 and ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 and ASF files.

When it comes to editable tags, right now only title and artist tags are available with track number on the way.

Installation

There are two prerequisites: TagLib and Cargo.

On macOS, you can install TagLib with brew install taglib. Check out taglib-rust README for a list of Linux packages for different distros. TagLib website may contain some other helpful info as well.

Cargo is the Rust package manager. If you're a developer, installing it on your computer should be rather straightforward. Check the Installation chapter from The Cargo Book for more details.

After installing TagLib and Cargo, you can install Taggie with:

cargo install taggie

This is going to install a CLI tool taggie.

FAQ

How do I configure the editor which Taggie uses?

Taggie inspects the VISUAL and EDITOR environment variables before defaulting to vi. Change one of those variables, preferably VISUAL.

How do I use my GUI editor with Taggie?

Taggie integrates with a text editor in a way that's similar to how git commit does it. Usually it involves setting the editor's CLI tool with some additional options as the VISUAL env variable. Search for how to set your editor as the default commit editor for git.

Can I pass a path to a directory as an argument?

That's currently not supported – make sure you're in the target directory before running taggie from there. I can add this option if there's a use case for it.

Taggie doesn't see the tags in certain M4A files, why is that?

I found that tracks bought from iTunes have the "sort artist" and "sort name" tags filled out instead of "artist" and "title". See issue #2 for the progress on this or to suggest a solution.

Are you going to add support for more tags?

From the UX standpoint of editing one file per line, I think it only makes sense to add tags which are usually unique to a single track. "artist", "title" and "track number" seem to handle most common use cases. I'm open to suggestions though.

taggie's People

Contributors

ravicious avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

taggie's Issues

Implement an MVP

I have a folder with some audio files, all are of the same format. I want to update their tags using my favorite editor.

Why would I want to launch a separate program rather than update the tags from within my audio player? While it's easy to update tags that are common to all tracks, like artist or album, sometimes the downloaded audio files have some screw ups in the titles that are just easier to edit in programs like vim, rather than going through them one-by-one in iTunes.

To achieve this:

  • I open the folder in the terminal.
  • I run taggie.
  • A text editor is launched. The content of the buffer is set to a table in a TSV format. The first line is just headers (title, artist) and the rest corresponds to the metadata from the files in the order they've been found.
  • I update the metadata in the editor. I save the file and close the editor.
  • taggie updates the metadata in the files.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.