jangler / taffy Goto Github PK
View Code? Open in Web Editor NEWCommand-line audio tagging tool
License: MIT License
Command-line audio tagging tool
License: MIT License
Thanks for this great tool. Any chance you could add support for attaching cover art?
Hello, this is a great tool and exactly what I have been looking for.
Before diving in to my actual collection, I segregated a few tracks to test exactly how this works, but I am confused by a few things.
According to the readme, renaming a file based on it's tags is as simple as:
taffy -n 14 -t "Queen of the Mole People" --rename "%n - %T song.mp3"
Should output:
"14 - Queen of the Mole People.mp3"
However, this was my exact command:
taffy -r "The Tragically Hip" -l "Fully Completely" -y "1992" -t "Wheat Kings" --rename "%R - %T" "Wheat Kings.mp3"
What did I expect?
The Tragically Hip - Wheat Kings.mp3
What did I get?
TheTragicallyHip - WheatKings.mp3
In the ReadME, it shows basically the same command preserving spaces. Has something changed? What did I do wrong?
As far as I know taglib supports chapter marks:
https://github.com/taglib/taglib/pull/173/files
Is this supported by this application?
See #5, which is now "fixed" in that Taffy refuses to save Ogg Vorbis files due to the possibility that TagLib might corrupt them in the process. The problem is that now Taffy can't edit Ogg Vorbis files at all, even ones that would not be corrupted, since the conditions under which corruption happens are unknown.
This issue will remain open until the underlying bug is fixed or worked around in either taglib-ruby (robinst/taglib-ruby#82) or, more likely, TagLib itself (taglib/taglib#864).
I guess I'll call this issue an "enhancement" because it's only a limitation, even though it's necessitated by a bug in a dependency.
Can the tool be used to copy paste tags?
tool in.flac out.mp3
For example, taffy -n 08 audiofile.m4a
and taffy -n 09 audiofile.m4a
will fail. Strangely, tagging track numbers 01 through 07 works.
Hi,
Thanks for this great, yet simple tool.
I'm having issues when renaming files where the tags contains special characters, especially slashes /
:
$ taffy --rename "%n - %T" */*.ogg
/usr/lib/ruby/gems/2.4.0/gems/taffy-1.2.1/bin/taffy:177:in `rename': No such file or directory @ rb_file_s_rename - (Fight-War_of_Words/12 - Reality, a New Beginning - Jesus Saves.ogg, Fight-War_of_Words/12 - Reality, a New Beginning / Jesus Saves.ogg) (Errno::ENOENT)
from /usr/lib/ruby/gems/2.4.0/gems/taffy-1.2.1/bin/taffy:177:in `block (2 levels) in <top (required)>'
from /usr/lib/ruby/gems/2.4.0/gems/taglib-ruby-0.7.1/lib/taglib/base.rb:8:in `open'
from /usr/lib/ruby/gems/2.4.0/gems/taffy-1.2.1/bin/taffy:150:in `block in <top (required)>'
from /usr/lib/ruby/gems/2.4.0/gems/taffy-1.2.1/bin/taffy:149:in `each'
from /usr/lib/ruby/gems/2.4.0/gems/taffy-1.2.1/bin/taffy:149:in `<top (required)>'
from /usr/bin/taffy:22:in `load'
from /usr/bin/taffy:22:in `<main>'
The issue is that the song title is Reality, a New Beginning / Jesus Saves
which contains a slash, which is a problematic character to have in a filename even under Linux (which I'm using).
I guess a naive approach could be to just skip it, or replace it with something like -
.
Hi,
Taffy seems to be corrupting Ogg/Vorbis files when applying tags.
Consider the following, valid Ogg/Vorbis file:
$ ogginfo 01\ -\ Je\ t\'ai\ manqué.ogg
Processing file "01 - Je t'ai manqué.ogg"...
New logical stream (#1, serial: 2a848e12): type vorbis
Vorbis headers parsed for stream 1, information follows...
Version: 0
Vendor: Xiph.Org libVorbis I 20150105 (⛄⛄⛄⛄)
Channels: 2
Rate: 44100
Nominal bitrate: 192.000000 kb/s
Upper bitrate not set
Lower bitrate not set
User comments section follows...
CDDB=
ACOUSTID_FINGERPRINT=
ACOUSTID_ID=
ALBUM=Bleu pétrole
ALBUM ARTIST=Alain Bashung
ALBUMARTIST=Alain Bashung
ALBUMARTIST_CREDIT=Alain Bashung
ALBUMARTISTSORT=Bashung, Alain
MUSICBRAINZ_ALBUMCOMMENT=
MUSICBRAINZ_ALBUMSTATUS=Official
MUSICBRAINZ_ALBUMTYPE=album
ARRANGER=
ARTIST=Alain Bashung
ARTIST_CREDIT=Alain Bashung
ARTISTSORT=Bashung, Alain
ASIN=B0013D2X6C
BPM=0
CATALOGNUMBER=530 592 9
COMPILATION=0
COMPOSER=Gaëtan Roussel
RELEASECOUNTRY=FR
DATE=2008-03-24
YEAR=2008
DISC=1
DISCNUMBER=1
DISCSUBTITLE=
DISCTOTAL=1
DISCC=1
TOTALDISCS=1
ENCODEDBY=
ENCODER=
GENRE=
GROUPING=
LABEL=Barclay
PUBLISHER=Barclay
LANGUAGE=fra
LYRICIST=Gaëtan Roussel
LYRICS=
MUSICBRAINZ_ALBUMARTISTID=d31e78a3-4fd8-4b10-9c49-0ee8d4dfd61e
MUSICBRAINZ_ALBUMID=2a8233d9-dd22-4f0c-a3c6-b79c4d521c72
MUSICBRAINZ_ARTISTID=d31e78a3-4fd8-4b10-9c49-0ee8d4dfd61e
MUSICBRAINZ_RELEASEGROUPID=6a0fb53e-bbea-35de-99ed-6dc94373c549
MUSICBRAINZ_TRACKID=d48bdec8-1e79-4ae8-ba69-58354ed0ed62
MEDIA=CD
ORIGINALDATE=2008-03-24
SCRIPT=Latn
TITLE=Je t'ai manqué
TRACK=1
TRACKNUMBER=1
TRACKTOTAL=11
TRACKC=11
TOTALTRACKS=11
Vorbis stream 1:
Total data length: 5304314 bytes
Playback length: 3m:41.733s
Average bitrate: 191.376332 kb/s
Logical stream 1 ended
Using Taffy to set the Genre tag: taffy -g Chanson 01\ -\ Je\ t\'ai\ manqué.ogg
And then:
$ ogginfo 01\ -\ Je\ t\'ai\ manqué.ogg
Processing file "01 - Je t'ai manqué.ogg"...
New logical stream (#1, serial: 2a848e12): type vorbis
WARNING: Could not decode Vorbis header packet 2 - invalid Vorbis stream (1)
WARNING: Could not decode Vorbis header packet 2 - invalid Vorbis stream (1)
WARNING: Could not decode Vorbis header packet 2 - invalid Vorbis stream (1)
...[snip]...
WARNING: Could not decode Vorbis header packet 2 - invalid Vorbis stream (1)
WARNING: Could not decode Vorbis header packet 2 - invalid Vorbis stream (1)
WARNING: Could not decode Vorbis header packet 2 - invalid Vorbis stream (1)
WARNING: Could not decode Vorbis header packet 2 - invalid Vorbis stream (1)
Vorbis stream 1:
Total data length: 0 bytes
Playback length: 0m:00.000s
Average bitrate: -nan kb/s
Logical stream 1 ended
Not all files are causing this issues, but I have hundreds of examples. I was assigning genre tags to a bunch of files in my library, and a lot of them have been corrupted
very elegant and easy to use. if it could also update the albumartist field as well it would be perfect. using mpd the key library database is organized by albumartist whereas artist might include colaberation.
thanks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.