Windows XP, ExifTool 9.02.
Problem: The Lyrics of a mp3 file are not displayed correctly.
"C:\Dokumente und Einstellungen\Kevin\Eigene Dateien\Downloads\exiftool-9.02\exiftool" -charset UTF8 -ext mp3 -q $UserDefinedText %1 > %1\ExifToolDir.xmlgives (only partial output displayed)
ID3 Size : 38344
Track : 1
User Defined Text : (LYRICS) 䤀昀 礀漀甀 挀愀渀
Album : The Best of Suzi Quatro
Artist : Suzi Quatro
the concerned mp3 file has ID3V2_3 tags, and it has a lyrics text of more than 100 characters. The lyrics are displayed correctly in other programs (ex. mediainfo, foobar2000). They are:
QuoteCan the Can
(Chinn/Chapman)
Well you call your mama tiger
And we all know you are lying
And your boyfriend's name is eagle
...
This may be FAQ number 3 (https://exiftool.org/faq.html#Q3). Try adding -a -G1 to your command.
- Phil
Adding -a -G1 -s shows that the correct tag was selected, but its contents is really truncated. Could it be that I have to add a language suffix (e.g. -eng) to the tag?. But it seems that using ExifTool I cannot find out the correct language.
gives
[ExifTool] ExifToolVersion : 9.02
[System] FileName : Suzi Quatro - The Best of Suzi Quatro - 01 - Can the Can.mp3
[System] Directory : C:/Dokumente und Einstellungen/Kevin/Eigene Dateien/SMIL/BSG20/testsuite/media/Asien1920To1080
[System] FileSize : 8.2 MB
[System] FileModifyDate : 2012:10:30 16:16:36+01:00
[System] FileAccessDate : 2012:10:31 09:43:52+01:00
[System] FilePermissions : rw-rw-rw-
[File] FileType : MP3
[File] MIMEType : audio/mpeg
[File] ID3Size : 38344
[MPEG] MPEGAudioVersion : 1
[MPEG] AudioLayer : 3
[MPEG] AudioBitrate : 320 kbps
[MPEG] SampleRate : 44100
[MPEG] ChannelMode : Joint Stereo
[MPEG] MSStereo : Off
[MPEG] IntensityStereo : Off
[MPEG] CopyrightFlag : False
[MPEG] OriginalMedia : False
[MPEG] Emphasis : None
[ID3v2_3] Track : 1
[ID3v2_3] UserDefinedText : (LYRICS) 䤀昀 礀漀ç"€â€€æŒ€æ,,€æ¸€
[ID3v2_3] Album : The Best of Suzi Quatro
[ID3v2_3] Artist : Suzi Quatro
[ID3v2_3] Band : Suzi Quatro
[ID3v2_3] Composer : Mike Chapman/Nicky Chinn
[ID3v2_3] Genre : Rock
[ID3v2_3] Length : 215.226 s
[ID3v2_3] Publisher : Disky
[ID3v2_3] Title : Can the Can
[ID3v2_3] Year : 1998
[ID3v2_3] PictureMimeType : image/jpeg
[ID3v2_3] PictureType : Front Cover
[ID3v2_3] PictureDescription :
[ID3v2_3] Picture : (Binary data 32077 bytes, use -b option to extract)
[ID3v2_3] WM_MediaClassPrimaryID : (Binary data 16 bytes, use -b option to extract)
[ID3v2_3] WM_MediaClassSecondaryID : (Binary data 16 bytes, use -b option to extract)
[ID3v2_3] WM_WMContentID : (Binary data 16 bytes, use -b option to extract)
[ID3v2_3] WM_UniqueFileIdentifier : (Binary data 114 bytes, use -b option to extract)
[ID3v2_3] MusicCDIdentifier : (Binary data 198 bytes, use -b option to extract)
[ID3v2_3] WM_WMCollectionID : (Binary data 16 bytes, use -b option to extract)
[ID3v2_3] WM_WMCollectionGroupID : (Binary data 16 bytes, use -b option to extract)
[ID3v2_3] WM_Provider : (Binary data 8 bytes, use -b option to extract)
[ID3v2_3] Comment : Suzi Quatro
[ID3v2_3] Comment : http://beam.to/STHtemp
[ID3v1] Title : Can the Can
[ID3v1] Artist : Suzi Quatro
[ID3v1] Album : The Best of Suzi Quatro
[ID3v1] Year : 1998
[ID3v1] Comment : Suzi Quatro
[ID3v1] Track : 1
[ID3v1] Genre : Rock
[Composite] DateTimeOriginal : 1998
[Composite] Duration : 0:03:35 (approx)
I can't help much further without seeing the file. If you could mail it to me I will take a look (philharvey66 at gmail.com)
- Phil
I got the sample, thanks.
Wow. This is an ExifTool bug! Nice catch!!
This will be fixed in version 9.04 (to be released in a couple of days).
Thanks for reporting this, and for following up with the sample!!!
- Phil
I checked with 9.04 and Unsynchronized Lyrics is displayed. Thank you for your fast update. There is a minor problem with some rubbish at the end of lyrics:
Help me get my feet back on the ground.
Won't you please, please Help me?
Help me.
Help me!
oooooommmmmm.
Offset: @AAFEGNGEOFGLELRuFmMtFQFTGkIrNkIlYuEoLsFQGSHlHsMnGlXtFoLuFTESGlHrNmHiFLTY_
ID: wsozcnsh"
With synchronized lyrics (tag SYLT) ExifTool outputs only:
synLyrics="Binary data 1519 bytes"
While it is true, that there exists binary data (e.g AbsoluteTime) in SYLT tag, it would be nice (feature request) to get something like:
[02:00.86]Help me get my feet back on the ground.[02:04.66]
If you send me samples of these I'll take a look at them.
- Phil
I got the sample, thanks.
The rubbish at the end of the Lyrics is really there. Your software seems to write "Artist:", "Title:" and "Album:" at the start of the lyrics, and "Offset:" and "ID:" at the end. I have no idea why. The "Offset:" information contains some weird characters.
I can now convert the SYLT information into a more readable format. I'm thinking that making this a list-type tag may be best, then each entry in the list is a timestamp followed by text.
One problem is that the timestamp may be either in seconds or in MPEG frames. I would like to be consistent and only use seconds, but I don't parse the audio stream (other than reading the header) and I don't know if/how I can calculate the frame times. Luckily though, the sample you provided uses seconds.
ExifTool 9.05 will decode SynchronizedLyricsText, and will add 2 new tags: SynchronizedLyricsType and SynchronizedLyricsDescription.
- Phil
Edit: Here is what I am currently extracting from your sample:
> exiftool "-sync*" -X a.mp3
<?xml version='1.0' encoding='UTF-8'?>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<rdf:Description rdf:about='a.mp3'
xmlns:et='http://ns.exiftool.ca/1.0/' et:toolkit='Image::ExifTool 9.05'
xmlns:ID3='http://ns.exiftool.ca/ID3/ID3/1.0/'>
<ID3:SynchronizedLyricsType>Lyrics</ID3:SynchronizedLyricsType>
<ID3:SynchronizedLyricsDescription>Lyrics were Saved by MiniLyrics.</ID3:SynchronizedLyricsDescription>
<ID3:SynchronizedLyricsText>
<rdf:Bag>
<rdf:li>[00:00.00]</rdf:li>
<rdf:li>[00:14.02]Love, Love Me Do.</rdf:li>
<rdf:li>[00:16.07]</rdf:li>
<rdf:li>[00:16.93]You know I love you.</rdf:li>
<rdf:li>[00:19.29]</rdf:li>
<rdf:li>[00:20.16]I'll always be true.</rdf:li>
<rdf:li>[00:22.65]</rdf:li>
<rdf:li>[00:23.39]So please,</rdf:li>
<rdf:li>[00:27.30]</rdf:li>
<rdf:li>[00:27.97]Love Me Do.</rdf:li>
<rdf:li>[00:30.15]</rdf:li>
<rdf:li>[00:30.84]Whoa - oh, Love Me Do.</rdf:li>
<rdf:li>[00:33.75]</rdf:li>
<rdf:li>[00:35.24]Love, Love Me Do.</rdf:li>
<rdf:li>[00:37.23]</rdf:li>
<rdf:li>[00:38.11]You know I love you.</rdf:li>
<rdf:li>[00:40.54]</rdf:li>
<rdf:li>[00:41.41]I'll always be true.</rdf:li>
<rdf:li>[00:43.83]</rdf:li>
<rdf:li>[00:44.57]So please,</rdf:li>
<rdf:li>[00:48.61]</rdf:li>
<rdf:li>[00:49.27]Love Me Do.</rdf:li>
<rdf:li>[00:51.47]</rdf:li>
<rdf:li>[00:52.03]Whoa - oh, Love Me Do.</rdf:li>
<rdf:li>[00:55.25]</rdf:li>
<rdf:li>[00:56.50]Someone to love.</rdf:li>
<rdf:li>[00:59.29]</rdf:li>
<rdf:li>[00:59.73]Somebody new.</rdf:li>
<rdf:li>[01:02.65]</rdf:li>
<rdf:li>[01:03.03]Someone to love.</rdf:li>
<rdf:li>[01:05.81]</rdf:li>
<rdf:li>[01:06.19]Someone like you.</rdf:li>
<rdf:li>[01:08.30]</rdf:li>
<rdf:li>[01:09.48]Love, Love Me Do.</rdf:li>
<rdf:li>[01:11.60]</rdf:li>
<rdf:li>[01:12.40]You know I love you.</rdf:li>
<rdf:li>[01:14.82]</rdf:li>
<rdf:li>[01:15.63]I'll always be true.</rdf:li>
<rdf:li>[01:18.12]</rdf:li>
<rdf:li>[01:18.86]So please,</rdf:li>
<rdf:li>[01:22.95]</rdf:li>
<rdf:li>[01:23.39]Love Me Do.</rdf:li>
<rdf:li>[01:26.06]</rdf:li>
<rdf:li>[01:26.50]Whoa - oh, Love Me Do.</rdf:li>
<rdf:li>[01:29.85]</rdf:li>
<rdf:li>[01:49.98]Love, Love Me Do.</rdf:li>
<rdf:li>[01:51.97]</rdf:li>
<rdf:li>[01:52.77]You know I love you.</rdf:li>
<rdf:li>[01:55.13]</rdf:li>
<rdf:li>[01:55.95]I'll always be true.</rdf:li>
<rdf:li>[01:58.37]</rdf:li>
<rdf:li>[01:59.11]So please,</rdf:li>
<rdf:li>[02:03.17]</rdf:li>
<rdf:li>[02:03.70]Love Me Do.</rdf:li>
<rdf:li>[02:06.19]</rdf:li>
<rdf:li>[02:06.50]Whoa - oh, Love Me Do.</rdf:li>
<rdf:li>[02:09.35]</rdf:li>
<rdf:li>[02:09.79]Yeah, Love Me Do.</rdf:li>
<rdf:li>[02:12.40]</rdf:li>
<rdf:li>[02:12.96]Whoa - oh, Love Me Do.</rdf:li>
<rdf:li>[02:15.75]</rdf:li>
<rdf:li>[02:16.39]Yeah, Love Me Do.</rdf:li>
<rdf:li>[02:18.48]</rdf:li>
</rdf:Bag>
</ID3:SynchronizedLyricsText>
</rdf:Description>
</rdf:RDF>
I think it would be useful to output the other LRC tags (ar:, ti:, al:, by:, id:, length:, id:) too. This way you know to which song the lyrics belong.
This xml format is very convenient for me, because I want to process this output further with XSLT.
Quote from: WHA1949 on November 06, 2012, 02:09:17 PM
I think it would be useful to output the other LRC tags (ar:, ti:, al:, by:, id:, length:, id:) too.
You mean from the ID3 lyrics? I don't know if it makes sense for ExifTool to do this since this isn't a standard ID3 feature. You can do this yourself if you want by creating user-defined Composite tags to pull the desired information from the Lyrics.
- Phil
You are right.
I thought that this info (ar:, ti: ...) was also stored in SYLT tag, but by looking at mp3 I found this is not the case, and also not included in ID3 specs.
Walter