metadsf
is a command line tool that lets you batch-edit ID3v2 tags embedded in your DSF files.
# long options
$ metadsf --set-tag=TPE1=Eagles --set-tag=TIT2="Hotel California" music.dsf
$ metadsf --show-tags music.dsf
TPE1=Eagles
TIT2=Hotel California
# short options
$ metadsf -sTPE1='Pink Floyd' -sTIT2=Money music.dsf
Dependencies:
- taglib 1.9.1 or newer
- A C++11-compliant compiler
# You may have to tell configure where your taglib is located
$ ./configure --prefix=/usr/local/
$ make
$ make install
Usage: metadsf [options] file1 file2 file3 ...
Display help info and exit.
Display the current version of metadsf
and exit.
Display audio properties of the specified DSF files. If more than one file are specified in the command line, each output line will be preceded by the corresponding file name.
Display all ID3v2 tags in the specified DSF files. If more than one file are specified in the command line, each output line will be preceded by the file name.
Set the text encoding of your input to various commands. Valid encodings are: "UTF8" (default), "LATIN1", "UTF16", "UTF16LE", "UTF16BE".
$ metadsf --set-tag=TALB="My Album" --encoding=UTF8 mymusic.dsf
$ metadsf --set-tag=TALB="My Album" -eUTF8
Save ID3v2 tags in either 2.3.0 or 2.4.0 version. Can be either 3 or 4.
# Save as ID3v2 2.3.0
$ metadsf -sTPE1=XXX --id3v2-version=3
Add a tag. Existing tags with the same name are untouched.
$ metadsf --add-tag=TRCK=4 -aTPOS=1/2 test.dsf
Same as --add-tag
, but instead of specify the key-value pairs in the command line, you can supply a text file containing the pairs (one per line).
$ cat tags.txt
TPE1=Rolling Stones
TPOS=1/1
$ metadsf --add-tags-from-file=tags.txt test.dsf
This replaces all occurences of the tag with the specified value.
$ metadsf --show-tags test.dsf
TPE2=XYZ
TPE2=ABC
# replace and display tags
$ metadsf --set-tag=TPE=IJK --show-tags test.dsf
TPE2=IJK
Same as --set-tag
, but instead of specify the key-value pairs in the command line, you can supply a text file containing the pairs (one per line).
Import picture into the DSF file
# long form
$ metadsf --import-picture='/path/to/your.jpg|3|Picture Comment' test.dsf
# short form
$ metadsf -p'/some/dir/file.jpg'
The string is a list of fields separated by '|'. The first field is the path to your picture file. The second field is the picture type which is optional (the default is "3" which means "Front Cover") The third field is picture comment which is also optional.
$ metadsf --import-picture='/path/to/your.jpg'
# no comment specified
$ metadsf --import-picture='/path/to/your.jpg|11'
# no picture type specified
$ metadsf --import-picture='/path/to/your.jpg||My Comment'
Currently GIF(.gif
), TIFF (.tif
or .tiff
), PNG(.png
) and JPEG(.jpeg
, .jpg
, .jpe
) files are allowed.
See Appendix I for the complete list of picture types.
Export embedded pictures to files. Exported files are named <ORIGINAL_FILENAME>_<PICTURE_TYPE>_<NUMBER>.<EXT>
.
E.g. let's say you have 2 front covers and 1 back cover in JPEG format embedded inside SomeDSDFile.dsf
:
$ metadsf --export-all-pictures SomeDSDFile.dsf
$ ls *.jpg
SomeDSDFile_FrontCover_1.jpg
SomeDSDFile_FrontCover_2.jpg
SomeDSDFile_BackCover_1.jpg
A comma-separated list of tag names to be removed.
$ metadsf --remove-tags=TPE1,TPE2
A comma-separated list of picture types to be removed.
# remove ALL front and back covers
$ metadsf --remove-pictures=3,4
Remove all embedded pictures in the file
Remove ALL ID3v2 metadata including tags and pictures.
Note that you can mix and match options together
# Clear everything and start all over again
$ metadsf --remove-everything -sTALB=Thriller --import-picture=thriller.jpg 01-Beat_It.dsf 02-Thriller.dsf
# Remove all pictures and a couple tags, and import new pictures
$ metadsf --remove-all-pictures -rTALB,WCOP --import-picture=somepic.jpg --import-picture=anotherpic.jpg music.dsf
- Support for TXXX, WXXX, TMCP, TIPL tags
Below is the complete list of picture types.
- 0: Other
- 1: 32x32 pixels 'file icon'
- 2: Other file icon
- 3: Cover (front)
- 4: Cover (back)
- 5: Leaflet page
- 6: Media (e.g. label side of CD)
- 7: Lead artist/lead performer/soloist
- 8: Artist/performer
- 9: Conductor
- 10: Band/Orchestra
- 11: Composer
- 12: Lyricist/text writer
- 13: Recording Location
- 14: During recording
- 15: During performance
- 16: Movie/video screen capture
- 17: A bright coloured fish
- 18: Illustration
- 19: Band/artist logotype
- 20: Publisher/Studio logotype
Below is the complete list of supported ID3v2 tags
- TALB
- TBPM
- TCOM
- TCON
- TCOP
- TDEN
- TDLY
- TDOR
- TDRC
- TDRL
- TDTG
- TENC
- TEXT
- TFLT
- TIT1
- TIT2
- TIT3
- TKEY
- TLAN
- TLEN
- TMED
- TMOO
- TOAL
- TOFN
- TOLY
- TOPE
- TOWN
- TPE1
- TPE2
- TPE3
- TPE4
- TPOS
- TPRO
- TPUB
- TRCK
- TRSN
- TRSO
- TSOA
- TSOP
- TSOT
- TSO2
- TSRC
- TSSE
- WCOP
- WOAF
- WOAR
- WOAS
- WORS
- WPAY
- WPUB
- COMM
- TRDA
- TDAT
- TYER
- TIME