Lyrics in ogg/vorbis and MP3 recordsdata

Lyrics in ogg/vorbis and MP3 recordsdata

My song library contains mostly ogg/vorbis recordsdata, and
I most indispensable to retailer the textual protest that is sung at once in the recordsdata.

This is mostly uncharted territory – on the very least for .ogg recordsdata.
It took three weeks of research to safe out about the probabilities,
solutions in other file formats and concerns.

Lyrics formats

Lyrics might well doubtless just additionally be synchronized or unsynchronized:

  • unsynchronized lyrics is pleasurable the song textual protest as you
    look it in the booklet of a CD

    Or no longer it’s undeniable textual protest with newlines .

  • synchronized lyrics is the textual protest plus timing files,
    which enables media gamers to order the actual line that is for the time being
    being sung. Karaoke depends upon upon this.

    As well to the textual protest lines, timing files is most indispensable
    – be it for lines and even single phrases or syllables.

Standalone lyrics file formats

There is a
series of various formats

that enable you to retailer lyrics/subtitles in separate recordsdata.

Easy to learn and simple to write textual protest-easiest format:
One line of textual protest per lyrics line.
Appears to be like to be usual nowadays for song.
Very standard for movies.
More verbose than LRC, nonetheless level-headed plaintext.
Binary format extinct in Karaoke CDs.
The karaoke textual protest is ripped into .cdg recordsdata which ought to have the
identical title as the audio recordsdata.


Let’s have a glimpse at MP3 first
because tool make stronger is better and there is an official usual for
both synchronized and unsynchronized lyrics.

“Obliging” is not any longer no doubt pleasurable right here; the MP3 usual
does no longer command how one can retailer meta files in a file:

The MP3 requirements enact no longer command trace formats for MP3 recordsdata,
nor is there a vulnerable container format that might well maybe make stronger
metadata and obviate the need for tags.

Nonetheless, several de facto requirements for trace formats exist.
As of 2010, the most frequent are ID3v1 and ID3v2,
and the more recently presented APEv2.

Wikipedia: MP3 Metadata

Files storage

The ID3v2 usual has meta
tags for both synced and unsynced lyrics:

Contains the encoding of the textual protest, the language, a top level belief
and the actual song textual protest.
More than one entries allowed, that manner you can have lyrics in numerous
Additionally contains encoding, language, the time trace format
(MPEG frames or milliseconds), form and time-stamped textual protest in an outlined

Instruments to add lyrics

On Linux, there is kid3 and
SYLTeditor (which did no longer install on
Ubuntu 14.04).

For Windows, it’s doubtless you’ll doubtless additionally have got MiniLyrics,
SYLTeditor and
there once was Window Media Participant 11
which might well also add synchronized lyrics to mp3 recordsdata.

kid3-cli might well doubtless just additionally be extinct on the shell
to add lyrics
kept in .lrc recordsdata to mp3:

$ kid3-cli -c "website SYLT='countdown.lrc' ''" countdown.mp3

Extracting the lyrics thru CLI is also
that it’s doubtless you’ll mediate:

$ kid3-cli -c "acquire SYLT:/dev/stdout" countdown.mp3

Exhibiting lyrics

On Linux, there is no longer a single application
that shows
synchronized lyrics kept in the file when taking half in
an song phrase.

All other gamers that claim lyrics make stronger both depend on local .lrc
recordsdata or strive and download the lyrics from someplace on the catch.

On Windows it’s doubtless you’ll doubtless additionally just spend MiniLyrics which
reads and shows SYLT files in mp3 recordsdata with out concerns.

Musique and Rhythmbox on the very least
order embedded unsynchronized lyrics.


ogg/vorbis is a patent-free audio codec and thus my most standard alternative over

Map make stronger for lyrics is almost non-existent.

Files storage

A small list of meta files tags for ogg/vorbis is listed in
I specification: 5.2.2. Yell vector format

and standalone in
comment field
and header specification
As well, the xiph wiki lists
proposed field

and hyperlinks to 3 websites that indicate some extra ones
Neither of them mentions lyrics.

The topic was mentioned on the vorbis mailing list
in 2006
with the conclusion that there is rarely any usual, one might well doubtless just level-headed strive
I did no longer safe any instruments, example recordsdata or supporting purchasers for it, though.

OggKate might well doubtless just additionally be extinct for synchronized lyrics,
and kid3 uses the LYRICS trace to retailer
unsyced lyrics in ogg recordsdata.

in 2008 as effectively, nonetheless was by no manner brought any extra.


In 2008
a format for synchronized lyrics in ogg/vorbis recordsdata,
was invented and applied.

is an overlay codec, in the muse designed for karaoke and textual protest,
that can additionally be multiplexed in Ogg.

It does no longer easiest provide undeniable textual protest lyrics nonetheless also animations,
varied colors, fonts and other types.


It isn’t any longer some files in a meta files trace field, nonetheless a separate stream
inner an .ogg file, accompanying the song stream
(pleasurable like movie recordsdata have both video and audio streams):

Lyrics in meta files

| Metadata | Audio stream             |

Lyrics as stream

| Metadata | A u d i o   s t r e a m  |
|          |  L y r i c s   s r e a m |

This has several implications:

  1. When taking half in the file, the textual protest is on hand when it wants
    to be displayed.

    No deserve to allocate extra reminiscence for the lyrics, and
    no need for added timing files in the lyrics files.

  2. Interweaving the audio and lyrics files makes it correct sort for
    stay audio streams that simply can not have the total lyrics on hand
    in the muse.

  3. Alongside with lyrics is not any longer simply setting a trace nonetheless breaking apart the total
    file and re-assembling the total file.

  4. Extracting lyrics requires studying the total file and re-assembling the
    single devices.

    Gamers will deserve to enact this if they no longer easiest are eager to order the most modern
    line or syllable, nonetheless provide a scrutinize to the following ones.

The 99% usual spend case
– lyrics for song recordsdata of max. 10 minutes length –
does no longer exhaust pleasure in this format.
Even operas with a length of several hours easiest have about
100kiB files of timed lyrics (LRC), which is nothing for the day prior to this’s

Any other argument for streaming was made on the

Xiph MIME Forms and File Extensions

focus on net page:

When you occur to establish to have it with out the timing, it be essential to retailer it in headers,
as streaming this can acquire you the textual protest easiest as its presentation time
is reached.

That it’s doubtless you’ll doubtless also enact that while you occur to were loading from a file, nonetheless that’s easiest
a special case, so it be easiest to crawl away that textual protest interleaved with other

A player eager to order the total lot of the lyrics instantly would have
to, if that it’s doubtless you’ll mediate (eg, if no longer streaming), scan the total file to get better
the textual protest.
Parsing Ogg packets is relatively hasty, so a threaded player might well doubtless enact this
while starting streaming a file and have the textual protest ready in below a second
for a conventional song I recount.

I possess no longer accept as true with the “special case” argument; even will have to you are taking half in
the center of a ogg/vorbis file thru HTTP you level-headed have to fetch
the muse of the file to acquire files about the header and
traditional structure.

Map make stronger

Rising and studying OggKate streams is executed thru
kateenc and katedec.
oggenc‘s --lyrics easiest works if kate make stronger
is compiled in, which is rarely any longer the case on Ubuntu 14.04.

The top tool in a location to order
OggKate lyrics streams in audio recordsdata I stumbled on is
VLC 2.2.2,
while you occur to birth up taking half in and then take the subtitle.
(2.1.6 does no longer detect the subtitle stream at all).

Rising OggKate streams

kateenc from libkate-instruments on Ubuntu 14.04 enables
one to transform .lrc and .srt into
kate streams, which then might well doubtless just additionally be muxed into ogg audio recordsdata with

$ kateenc -o lyrics.ogg -t lrc -l en countdown.lrc
$ oggz-merge -o countdown-with-lyrics.ogg countdown.ogg lyrics.ogg

Extracting the lyrics as LRC is that it’s doubtless you’ll mediate with katedec:

$ katedec -t lrc oggz-kateenc-countdown.ogg

Taking half in recordsdata with Kate streams

Taking half in kate’d ogg/vorbis recordsdata works gorgeous on VLC,
mplayer, armarok, xine, dauntless and ogg123
(although they enact no longer order the lyrics).

GStreamer-essentially essentially based mostly purposes like
Rhythmbox and Totem originate a brand fresh
window that looks for extensions that understand “Kate decoder”,
nonetheless fail.
Totem performs the file nontheless, nonetheless Rhythmbox does no longer.
Amarok 2.8 in most cases opened that window, nonetheless also performs the file.


The OggKate creator – who by no manner left his title any place by the reach –
OggKate patches
for several media gamers:


mailing list discussion

did no longer outcome in something because it appears to be like to be.
Xine does no longer order kate lyrics.
the mplayer authors didn’t are eager to make stronger but another subtitle format
and most standard ASS.

The patch
purchased included in 2009 into gst-plugins-hideous 0.10.

Sadly it’s miles
no longer included
in gstreamer 1.0 (but), which explains the installation popup.

Thoggen (DVD-Ripper)
impartial inquire of
is level-headed originate for Thoggen.

Unsynced lyrics in .ogg

There’s rarely any such thing as a officially suggested vorbis trace/field for unsynchronized lyrics.
The top trace in the wild I stumbled on was LYRICS
which is created by the kid3 editor and

$ vorbiscomment -a file.ogg -t LYRICS="$(cat lyrics.txt)"
$ vorbiscomment --list  countdown-unsync-vorbiscomment.ogg
title=Countdown aligned

oggz-comment might well doubtless just additionally be extinct to add
unsynchronized lyrics to .ogg recordsdata:

$ oggz-comment file.ogg -o file-with-lyrics.ogg LYRICS="$(cat lyrics.txt)"
$ oggz-comment -l file-with-lyrics.ogg
Vorbis: serialno 0033215013
        Seller: Lavf53.21.1
        title: Countdown aligned
        artist: cweiske
        date: 2016
        genre: Speech
        encoder: Lavf53.21.1
        LYRICS: ten

Both Lollypop and Rhythmbox
order them.


Windows Media Audio recordsdata make stronger synced and unsynced lyrics of their
meta tags.


unfortunately does no longer command meta files trace names
and thus also no meta files lyrics formats.

kid3 shows the synchronized lyrics in the .wma file
with a trace title of WM/Lyrics_Synchronized.

Instruments to add lyrics

Windows explorer on Windows XP is in a location
to add unsychronised lyrics,
Windows Media Participant 11 might well doubtless write both
synchronized and unsynchronized lyrics.

Exhibiting lyrics

No tool I examined is in a location to order the lyrics embedded in .wma recordsdata
while taking half in song.

exiftool on the very least shows them on cli,
and kid3 notices that there are synchronized lyrics
inner – nonetheless does no longer order them.


Audio Coding format
is mostly extinct by Apple’s iTunes.
I noticed screenshots of the iTunes meta files editor that had a
(unsynchronized) lyrics field.
I did no longer practice this any extra.

claims to make stronger
lyrics in .m4a/.aac recordsdata.

The list of instruments I stumbled on that might well maybe also work with lyrics embedded in
audio recordsdata, alphabetically sorted:


Clementine is a song player
that is in a location to order unsynchronized lyrics from mp3 recordsdata.
Does neither make stronger ogg lyrics nor synchronized textual protest.


eyeD3 is a linux order line
application that reads and writes mp3 tags, supporting ID3v1, 2.3 and 2.4.

Sadly it’s no longer in a location to extract a single trace
in a reach that’s readable by other purposes, and is also no longer in a location
to extract synchronized lyrics:

$ eyeD3 --verbose countdown-sync-minilyrics.mp3
countdown-sync-minilyrics.mp3   [ 258.24 KB ]
Time: 00: 10     MPEG1, Layer III        [ ~0 kb/s @ 44100 Hz - Mono ]
ID3 v2.4:
title: Countdown aligned                artist: cweiske
album:          year: 2016
phrase:          genre: Speech (identification 101)
ID3 Frames:
Title/>songname/protest description (TIT2): Countdown aligned>
Lead performer(s)/Soloist(s) (TPE1): cweiske>
Release time (TDRL): 2016>
Content type (TCON): Speech>
Software/>Hardware and settings extinct for encoding (TSSE): Lavf53.21.1>
Synchronised lyric/text Frame (SYLT)>

It’s a long way in a location to add unsynchronized lyrics to mp3 recordsdata:

$ eyeD3 --lyrics="eng::ten
0" countdown.mp3


is the swiss military knife of meta tags.
Or no longer it’s in a location to extract files from most image, doc and audio file forms.

It shows synchronized lyrics from mp3 and wma recordsdata, and unsynchronized
from mp3, ogg and wma:

$ exiftool countdown-sync-kid3-id3v2.4.mp3 |grep -i lyr
Synchronized Lyrics Kind        : Lyrics
Synchronized Lyrics Description :
Synchronized Lyrics Textual protest        : [00:00.00].ten, [00:01.00].9, [00:02.00].eight, [00:03.00].seven, [00:04.00].six, [00:05.00].5, [00:06.00].4, [00:07.00].3, [00:08.00].2, [00:09.00].1, [00:10.00].0, [00:11.00].
$ exiftool countdown-sync-wmp11.wma |grep -i lyr
Lyrics                          :
Lyrics Synchronised             : ..vsynchronized lyricstennine�.eight�.seven�.six�.5�.4�.3p.2X.1@.0(#

It does no longer order OggKate texts.

Foobar2000: order lyrics 3 plugin

The home windows-easiest Foobar2000
supports plugins, and one amongst the plugins/”parts” is
Lyrics Show Panel 3 (foo_uie_lyrics3).

While it claims in an effort to learn both synced and unsynced lyrics from
ogg and mp3 recordsdata, it does so by the utilization of its delight in (configurable) meta trace,
storing LRC in the trace for synced textual protest.
It does no longer make stronger SYLT/USLT tags.

Foobar2000: Show lyrics 3: Lyrics editor
Foobar2000: Tag editor
Foobar2000: Show lyrics 3: Settings


The meta files editor kid3
runs on Linux and supports mp3, ogg and wma.

It has a usable synced lyrics editor and
for it.
Importing LRC is supported.

kid3-qt was the finest tool that in actuality supported storing
unsynced lyrics inner ogg/vorbis recordsdata by setting the LYRICS

kid3-cli is a order line tool that can additionally be extinct to
learn and
write .lrc recordsdata from and
to mp3 recordsdata.

kid3-qt: Editing synchronized lyrics
kid3-qt: Editing unsynced lyrics


Gnome application Lollypop
supports SYLT in mp3 recordsdata, on the very least of us who were added by
SYLT Editor, nonetheless no longer these by

It also reads .lrc recordsdata.

Lollypop displaying embedded lyrics


robotically finds and downloads unsynchronized lyrics and is in a location to embed
them into mp3, ogg, wma and m4a recordsdata.

It does no longer make stronger synchronized textual protest.


MiniLyrics is
no longer on hand for Linux.

It reads synchronized and unsynchronized lyrics from mp3 meta files,
nonetheless does no longer make stronger the WMP11 generated lyrics
in wma recordsdata, nor does it make stronger .ogg.
It claims to make stronger
M4A (AAC) recordsdata, nonetheless I did no longer check that.

It involves an editor for synchronized lyrics and can import LRC recordsdata.

MiniLyrics showing lyrics for foobar2000
MiniLyrics: Lyrics editor
Minilyrics save type selection


Musique model 1.4 is in a location
to learn and order unsynchronized lyrics from mp3 recordsdata.

Musique showing unsynchronized lyrics from an mp3 file


Gnome’s Rhythmbox
shows unsynchronized lyrics in .ogg recordsdata because
I made a patch for it.

Rhythmbox displaying unsynchronized lyrics

SYLT Editor

SYLT editor
is Freeware for Windows and Linux, nonetheless it did no longer install
on Ubuntu 14.04 precisely.

On home windows it labored, nonetheless proved to no longer make stronger SYLT lyrics embedded by
other editors.
It even once did no longer learn SYLT from a file that it wrote itself beforehand..

I’m able to’t recommend it.

SYLT Editor: Lyrics editor
SYLT Editor: Lyrics preview
SYLT Editor: Broken import of MiniLyrics tagged mp3 file

VLC – VideoLan Consumer

VLC was the finest application I stumbled on
in a location to order OggKate lyrics in .ogg recordsdata
– when enabling audio visualization, the textual protest is printed on top of that.
(model 2.2.2 labored, 2.1.6 did no longer)

does no longer make stronger SYLT,
it’s doubtless you’ll load
.srt subtitle recordsdata

when taking half in song with audio visualization enabled.

VLC displaying OggKate lyrics
VLC displaying .srt subtitles on audio

Windows Explorer

Windows XP’s Explorer is in a location to order and edit meta files of
.wma recordsdata – and it helps you to add unsynchronized lyrics.
That it’s doubtless you’ll doubtless no longer website the lyrics language because it’s doubtless you’ll doubtless additionally with
Windows Media Participant 11, though.

Windows XP Explorer tag editor
Windows XP Explorer lyrics editing

Windows Media Participant 11

Windows Media Participant 11 was on hand on Window XP and Windows Vista.
To my files it’s miles the finest application in a location to add synchronized lyrics
to .wma recordsdata thru its Evolved Mark Editor.

This trace editing capabilities were eliminated in Windows Media Participant 12,
the dismay of users

Windows Media Participant was no longer in a location to if truth be told order the
synchronized lyrics, which doubtless was the reason in the again of its elimination.
However the elimination of the lyrics editing impartial from WMP manner
that Microsoft officially has given up on lyrics in .wma,
and even maybe on .wma itself.

Windows Media Player 11: Lyrics editor
Windows Media Player 11: Synchronized lyrics editor

When you occur to ever strive and install Windows Media Participant 11 on an vulnerable reproduction
of Windows XP, it’s doubtless you’ll doubtless look that this can fail because it might well maybe probably perchance not
demonstrate the XP installation as “superior” anymore.

That it’s doubtless you’ll doubtless work around this by manually extracting
wmp11-windowsxp-x86-DE-DE.exe with
7-zip and manually executing
the total wm*.exe recordsdata.


Checklist of hardware song gamers with lyrics make stronger:

iPod traditional
iPod nano (4th gen)
Clicking 3 cases on the wheel button shows the lyrics.

Demo recordsdata

For the length of the direction of my research I created a series of audio recordsdata
with the a huge series of instruments.
As hideous I extinct
nonetheless had to align it to the actual stout seconds
with Audacity.
Then I created a lyrics .lrc file and extinct the a huge series of instruments
to add lyrics to it.

Apps missing embedded lyrics make stronger

The following purposes omit make stronger for embedded lyrics:


Bug 184325: amarok desire: fetch lyrics from the ID3 lyrics trace

since 2009

Bug 769201: Add lyrics trace make stronger

since 2016

State #103: Demonstrate synchronized lyrics

since 2016

Bug 784634: unsynchronized lyrics no longer extracted from mp3 recordsdata

since 2017
song player daemon

#3100: Add make stronger for lyrics trace

since 2010

Enhance for synchronized lyrics in MP3 recordsdata

since 2016

Read lyrics from ogg/vorbis recordsdata

since 2016
Quod Libet

#1989: synchronized lyrics plugin: Enhance embedded lyrics

since 2016

Bug 463978: Lyrics studying embedded tags

since 2007.
I added make stronger for ogg/vorbis lyrics
trace make stronger in 2017.

#17207: Demonstrate mp3 synchronized lyrics SYLT trace as subtitle

since 2016


I’m upset with the stammer of embedded lyrics make stronger on Linux.

For ogg/vorbis recordsdata – of which my song library consists mostly –
I did no longer safe an acceptable resolution.
OggKate is too complicated for numerous needs;
something like SYLT for
vorbis would be better suitable – and even simply embedding LRC
correct into a SYNCLYRICS trace.

The ID3v2 SYLT format is binary and would will have to be hideous64 encoded,
because it’s miles executed with album art in vorbis recordsdata, t

Read More



β€œSimplicity, patience, compassion.
These three are your greatest treasures.
Simple in actions and thoughts, you return to the source of being.
Patient with both friends and enemies,
you accord with the way things are.
Compassionate toward yourself,
you reconcile all beings in the world.”
― Lao Tzu, Tao Te Ching