Skip to content
/ nametag Public

nametag - set audio file tags based on file name

Notifications You must be signed in to change notification settings

obfusk/nametag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[]: {{{1

File        : README.md
Maintainer  : Felix C. Stegerman <flx@obfusk.net>
Date        : 2013-09-06

Copyright   : Copyright (C) 2013  Felix C. Stegerman
Version     : v0.2.0

[]: }}}1

Gem Version

Description

[]: {{{1

nametag - set audio file tags based on file name

nametag uses regular expressions to parse paths of audio files and then sets the file tags based on the parsed data. This allows you to keep paths and tags in sync by creating the tags from the paths.

Everything is configurable: the path regexes, the character substitution, and the handling of special cases. For example, the abum if_then_else by The Gathering should not have its underscores interpreted as spaces.

[]: }}}1

Usage

[]: {{{1

$ nametag -h
nametag - set audio file tags based on file name

nametag [<option(s)>]
    -c, --config-file FILE           Configuration file
    -v, --verbose                    Run verbosely
    -n, --no-act                     Do not modify files
    -h, --help                       Show this message
        --version                    Show version

$ nametag -v ".../Between_the_Buried_and_Me/04-Colors_(2007)/05-Ants_of_the_Sky.mp3"
/.../Between_the_Buried_and_Me/04-Colors_(2007)/05-Ants_of_the_Sky.mp3:
  artist="Between the Buried and Me" album="Colors" track="05" title="Ants of the Sky" ext="mp3" album_n="04" year="2007"

[]: }}}1

Configuration

[]: {{{1

See nametag.rb for the default regex and substitution.

~/.nametagrc:

NameTag.configure do |c|
  c.regexes << %r{ ... }
  c.tr['~'] = '_'
  c.process do |info, opts, tr|
    if info.artist == 'The_Gathering' && info.album == 'if_then_else'
      info.map_values { |k,v| k == :album ? v : tr[v] }
    end
    # when nothing is returned, the default processing will be used
  end
end

[]: }}}1

Installing

[]: {{{1

$ sudo aptitude install libtag1-dev
$ gem install nametag

[]: }}}1

Specs & Docs

[]: {{{1

$ rake spec
$ rake docs

[]: }}}1

TODO

[]: {{{1

  • test config: regexes, tr
  • (use cucumber to) test tag writing/behaviour?
  • more specs/docs?
  • ...

[]: }}}1

License

[]: {{{1

GPLv2 [1].

[]: }}}1

References

[]: {{{1

[1] GNU General Public License, version 2 --- http://www.opensource.org/licenses/GPL-2.0

[]: }}}1

[]: ! ( vim: set tw=70 sw=2 sts=2 et fdm=marker : )

About

nametag - set audio file tags based on file name

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages