Automatic command-line mp3/ogg/flac file tagger and renamer

Overview
lltag is a frontend to tag (and rename) mp3/ogg/flac files automagically.

See http://bgoglin.free.fr/lltag/ for details.

lltag installation instructions
===============================

You don't care about this if you use Debian or Gentoo or any other
distribution that includes prepackaged lltag versions.

Run 'make' followed by 'make install' as root.
*Both* command-lines must use the same variables for configuring
installation paths.

By default, everything is installed in /usr/local/.
Most directories might be changed by overriding their default values
on the command-line.
For instance, a traditional installation (binary in /usr/bin, data in
/usr/share, and configuration in /etc) might be achieved with:

$ make PREFIX=/usr SYSCONFDIR=/etc MANDIR=/usr/share/man
$ make install PREFIX=/usr SYSCONFDIR=/etc MANDIR=/usr/share/man

If you don't want or can't install as root, you may use
$ make PREFIX=/home/login/where/you/want
$ make install PREFIX=/home/login/where/you/want

Note that 'make uninstall' (with same options) allows to uninstall.

lltag requirements
==================

lltag theoretically only requires Perl base to work. However, depending
on what type of files you want to work on, you'll need to install
either the Perl MP3::Tag module (for MP3 files) or mp3info (for MP3 files,
without ID3v2 support), vorbiscomment (for OGG) or metaflac (for FLAC).
Additionally, when using CDDB features, LWP (the libwww-perl module) is
required.
These dependencies are automatically installed when installing
Debian or Gentoo prepackaged versions, or at least recommended.

lltag may also benefit from a smart readline perl library when
the user edits the tags by hand.
The recommended library is Term::ReadLine::Gnu (also called
GNU Readline Library Wrapper Module) which provides great
inline editing and GNU history features.
Term::ReadLine::Perl may also be used but it might not be able
to save the history between two lltag invocation.

If you experience any problem,
please see http://bgoglin.free.fr/lltag
or report to <lltag AT googlegroups.com>.
Issues
  • Make FLAC tags matching case insensitive & add 'track number

    Make FLAC tags matching case insensitive & add 'track number" as poss…

    …ible tag

    IItag often fails to match when the flac tag is the lowercase "tracknumber," or "track number" regardless of case. Adding '/i' to the end of the Perl regex makes matching case insensitive.

    opened by electricboogie 1
  • Make field regex lazy, so = in the value doesn't get matched

    Make field regex lazy, so = in the value doesn't get matched

    I have track with the title Only Death = Quiet which I tried to rename, which gave the following error:

    Processing file "Urban Guerrilla - Action Directe - 14 Only Death = Quiet.flac"...
      Tagging.
      Renaming with format '%A/%n. %a - %t'...
        WARNING: Undefined field 'TITLE'
        New filename is 'Action Directe/14. Urban Guerrilla - .flac'
    

    Querying the tag list showed the following

    [email protected]: ~/music/Action Directe $ lltag -v 14.\ Urban\ Guerrilla\ -\ .flac
    
    Processing file "14. Urban Guerrilla - .flac"...
      Trying to parse filename with internal formats...
    Did not find any format file.
      Didn't find any parser!
        Current tag values are:
          ARTIST: Urban Guerrilla
          ALBUM: Action Directe
          NUMBER: 14
          DATE: 1998
          COMMENT: Visit http://fffmusic.bandcamp.com
          TITLE=Only Death :  Quiet
          ALBUMARTIST: FFF / Urban Guerrilla
    

    It's currently seeing the first = as part of the field name, since the regex for it is greedy, by making it lazy it now results in

    [email protected]: ~/music $ lltag -S 'Action Directe/14. Urban Guerrilla - Only Death = Quiet.flac' | grep TITLE
      TITLE=Only Death = Quiet
    
    opened by the-eater 1
  • Fix some issues reported by lintian

    Fix some issues reported by lintian

    Fix some issues reported by lintian

    This merge proposal was created automatically by the Janitor bot.

    You can follow up to this merge proposal as you normally would.

    The bot will automatically update the merge proposal to resolve merge conflicts or close the merge proposal when all changes are applied through other means (e.g. cherry-picks). Updates may take several hours to propagate.

    Build and test logs for this branch can be found at https://janitor.debian.net/lintian-fixes/pkg/lltag/99ddfaaf-6bc5-44f1-8a67-d39d45158e75.

    Debdiff

    These changes affect the binary packages:

    File lists identical (after any substitutions)

    Control files: lines which differ (wdiff format)

    • Priority: [-extra-] {+optional+}

    You can also view the diffoscope diff (unfiltered).

    opened by debian-janitor 1
  • Remove unnecessary constraints

    Remove unnecessary constraints

    Remove unnecessary constraints.

    This merge proposal was created automatically by the Janitor bot. For more information, including instructions on how to disable these merge proposals, see https://janitor.debian.net/scrub-obsolete.

    You can follow up to this merge proposal as you normally would.

    The bot will automatically update the merge proposal to resolve merge conflicts or close the merge proposal when all changes are applied through other means (e.g. cherry-picks). Updates may take several hours to propagate.

    Build and test logs for this branch can be found at https://janitor.debian.net/scrub-obsolete/pkg/lltag/156f6f88-6921-4404-8e6f-ad184eb6d89d.

    These changes have no impact on the binary debdiff.

    You can also view the diffoscope diff (unfiltered).

    opened by debian-janitor 0
  • Unicode issue when tagging

    Unicode issue when tagging

    lltag is having issues with unicode while tagging, see below. locale is set to UTF-8 and I've tried to add a

    use open qw(:std :utf8);

    to no avail.

     git⸢master」% perl lltag /mnt/music8/+TAGGED/+live/Ölhävers\ -\ Folkölstider\ \(Live\ Westgothafestivalen\ 1996\).mp3
                  
    Processing file "/mnt/music8/+TAGGED/+live/Ãlhävers - Folkölstider (Live Westgothafestivalen 1996).mp3"...
      Trying to parse filename with internal formats...
    Did not find any format file.
      Didn't find any parser!
        Current tag values are:
          ARTIST: ÃLhäVers
          TITLE: FolköLstider
          ALBUM: Live Westgothafestivalen
          DATE: 1996
          COMMENT: rosamannen
    
    ```
    opened by trapd00r 1
  • Make Ogg tags matching case insensitive

    Make Ogg tags matching case insensitive

    Turns out lowercase Ogg tags are also seen in the wild. Patch inspired by b8b618033623d5691f2644459061ca345cce9653

    opened by ypnos 0
  • Certain Files: Use of uninitialized value $v2_field

    Certain Files: Use of uninitialized value $v2_field

    Ubuntu 18.04.2

    Certain files result in an error:

    lltag --mp3v2 --show-tags album 01___Neverwhere_1_London_Below.mp3 
    01___Neverwhere_1_London_Below.mp3:
    Use of uninitialized value $v2_field in string eq at /usr/share/perl5/Lltag/MP3v2.pm line 64.
    Use of uninitialized value $v2_field in string eq at /usr/share/perl5/Lltag/MP3v2.pm line 64.
    Use of uninitialized value $v2_field in string eq at /usr/share/perl5/Lltag/MP3v2.pm line 64.
    Use of uninitialized value $v2_field in exists at /usr/share/perl5/Lltag/MP3v2.pm line 81.
    Use of uninitialized value $v2_field in uc at /usr/share/perl5/Lltag/MP3v2.pm line 84.
      ALBUM=Neverwhere
    

    Others are OK:

    lltag --mp3v2 --show-tags album 01_Cluster_One__Pink_Floyd.mp3 
    01_Cluster_One__Pink_Floyd.mp3:
    ALBUM=The Division Bell
    
    

    Problem file: https://file.io/jmJwU5

    opened by abssorb 0
  • default cddb server (tracktype.org) is unavailable

    default cddb server (tracktype.org) is unavailable

    Hi,

    Tried to access CDDB feature today, no luck:

    Enter CDDB query [q] (no default, h for help) ? pantera great southern trendkill Sending CDDB request... ERROR: HTTP request to CDDB server (tracktype.org:80) failed.

    https://tracktype.org/ shows something like a landing page for unexisting domains.

    opened by thaewrapt 0
  • lltag removes certain tags.

    lltag removes certain tags.

    tagging a ogg file with --tag "FOOBAR=BAZ" FILE.ogg strips some of the tags:

    Original File:

    ALBUM=Creep Live
    DISCTOTAL=0
    ARTIST=Brandi Carlile
    COMPILATION=0
    TITLE=Creep
    TOTALDISCS=0
    REPLAYGAIN_TRACK_PEAK=1.114610
    TOTALTRACKS=0
    ALBUMARTIST=Brandi Carlile
    DATE=2008
    TRACKNUMBER=1
    REPLAYGAIN_TRACK_GAIN=-7.94 dB
    TRACKTOTAL=0
    

    After lltag edited tags:

    ARTIST=Brandi Carlile
    TITLE=Creep
    ALBUM=Creep Live
    TRACKNUMBER=1
    DATE=2008
    RATING=7
    ALBUMARTIST=Brandi Carlile
    REPLAYGAIN_TRACK_PEAK=1.114610
    REPLAYGAIN_TRACK_GAIN=-7.94 dB
    
    opened by carnager 0
Releases(lltag-0.14.6)
Split flac/ape/wv/wav + cue sheet into separate tracks

See unflac as a better replacement of this project. split2flac split2flac splits one big APE/FLAC/TTA/WV/WAV audio image (or a collection of such file

Sigrid Solveig Haflínudóttir 248 Jun 22, 2021
Bule-ish CD ripper

cyanrip Fully featured CD ripping program able to take out most of the tedium. Fully accurate, has advanced features most rippers don't, yet has no bl

Lynne 57 Jun 30, 2021
A language for music notation

Lydown is a language and compiler for creating music scores, parts and snippets. The lydown code is compiled to lilypond code and then compiled to PDF

Sharon Rosner 21 Apr 8, 2021
Python CD-DA ripper preferring accuracy over speed

Whipper Whipper is a Python 3 (3.6+) CD-DA ripper based on the morituri project (CDDA ripper for *nix systems aiming for accuracy over speed). It star

null 554 Sep 19, 2021
A cross-browser javascript wrapper for the html5 audio tag

audio.js audiojs is a drop-in javascript library that allows HTML5's <audio> tag to be used anywhere. It uses native <audio> where available and falls

Anthony Kolber 2k Sep 9, 2021
MusicBrainz Picard

MusicBrainz Picard MusicBrainz Picard is a cross-platform (Linux/Mac OS X/Windows) application written in Python and is the official MusicBrainz tagge

MetaBrainz Foundation 2.5k Sep 17, 2021
Full-featured CD/DVD/Blu-ray burning and ripping application

K3b Version 18.04.0 Thanx for downloading K3b - The CD Kreator These are the features so far: - the most userfriendly interface ever ;-) - thema

KDE GitHub Mirror 73 Sep 18, 2021
Music typeset with the Lilypond system

Intro (from long ago) This repo contains sheet music typeset with the Lilypond typesetter. The music chosen is in favour of cello music (mostly chambe

Enthusiastic about  the Cello 95 Sep 24, 2021
Python library for audio and music analysis

librosa A python package for music and audio analysis. Documentation See https://librosa.org/doc/ for a complete reference manual and introductory tut

librosa 4.8k Sep 25, 2021
The fre:ac audio converter project

fre:ac - free audio converter fre:ac is a free and open source audio converter. It supports audio CD ripping and tag editing and converts between vari

Robert Kausch 619 Sep 24, 2021
A Music programming language. Translates source code into MIDI. Includes a player. Supports MIDI-Karaoke. Includes a MIDI analyzer.

Get Started | Features | Screenshots | Programming | CLI | Contribute | License Midica is an interpreter for a Music Programming Language. It translat

Jan Trukenmüller 47 Sep 17, 2021
Fork of the original rubyripper from code.google.com/p/rubyripper + some bugs fixes

Historical note Introduction Secure rip method How to install MacOS Support FAQ Running all tests Historical note This is an unofficial fork of the or

null 91 Aug 11, 2021
🎵 A simple, clean and cross-platform music player

Museeks A simple, clean and cross-platform music player. (museeks.io) Features Museeks aims to be a simple and easy to use music player with a clean U

Pierre de la Martinière 1.1k Sep 17, 2021
music library manager and MusicBrainz tagger

beets Beets is the media library management system for obsessive music geeks. The purpose of beets is to get your music collection right once and for

beetbox 10.4k Sep 15, 2021
Typographic Beat-Oriented Notation for music

tbon Typographic Beat-Oriented Notation for music Tbon aims to be the fastest way to enter pitches, rhythms, meter and dynamic levels from a computer

null 11 Jan 23, 2020
The git repository of the advanced drum machine

Hydrogen drum machine Hydrogen is an advanced drum machine for GNU/Linux, Mac and Windows. It's main goal is to bring professional yet simple and intu

Hydrogen 702 Sep 15, 2021
网易云音乐第三方

ieaseMusic Elegant NeteaseMusic desktop app, Rock with NeteaseMusic ?? Built by Electron, React, MobX, JSS API 由 Binaryify/NeteaseCloudMusicApi 提供。 Pr

null 8.6k Sep 22, 2021
The gPodder podcast client.

___ _ _ ____ __ _| _ \___ __| |__| |___ _ _ |__ / / _` | _/ _ \/ _` / _` / -_) '_| |_ \ \__, |_| \___/\__,_\__,_\___|_| |_

gPodder and related projects 892 Sep 14, 2021
Small, fast and powerful console music player for Unix-like operating systems.

Warning: cmus is not actively maintained. For details, please see #856 cmus — C* Music Player https://cmus.github.io/ Copyright © 2004-2008 Timo Hirvo

C* Music Player 4.3k Sep 17, 2021