# Timed Text Markup Language

**URL:** https://community.mp3tag.de/t/timed-text-markup-language/61568
**Category:** General Discussion
**Created:** [July 15, 2023, 6:06pm UTC](https://community.mp3tag.de/t/timed-text-markup-language/61568 "2023-07-15T18:06:12Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![rajanna](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/r/dec6dc/32.png) [@rajanna](https://community.mp3tag.de/u/rajanna)
#### Post date: [July 15, 2023, 6:06pm UTC](https://community.mp3tag.de/t/timed-text-markup-language/61568/1 "2023-07-15T18:06:13Z")

</div>

[https://help.apple.com/itc/videoaudioassetguide/#/itc0f14fecdd](https://help.apple.com/itc/videoaudioassetguide/#/itc0f14fecdd)

Apple Music is using ttml for synced lyrics.

Is there a m4a and id3tag equivalent tag for ttml?

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [July 16, 2023, 7:20am UTC](https://community.mp3tag.de/t/timed-text-markup-language/61568/2 "2023-07-16T07:20:10Z")

</div>

For ID3v2 it's the `SYLT` frame which is currently not supported by Mp3tag. The main reason for that is, that it would require a dedicated ID3v2-only editor for adding timestamps and accompanying lyrics fragments.

I don't know if there is a M4A/MP4 equivalent at the moment. It seems that many simply use `*.lrc` files to store the lyrics.

* * *

> **From id3v2.4.0-frames.txt: 4.9. Synchronised lyrics/text**
>
> This is another way of incorporating the words, said or sung lyrics,  
> in the audio file as text, this time, however, in sync with the  
> audio. It might also be used to describing events e.g. occurring on a  
> stage or on the screen in sync with the audio. The header includes a  
> content descriptor, represented with as terminated text string. If no  
> descriptor is entered, 'Content descriptor' is $00 (00) only.
> 
> ```
> <Header for 'Synchronised lyrics/text', ID: "SYLT">
> Text encoding $xx
> Language $xx xx xx
> Time stamp format $xx
> Content type $xx
> Content descriptor <text string according to encoding> $00 (00)
> 
> ```
> 
> Content type: $00 is other  
> $01 is lyrics  
> $02 is text transcription  
> $03 is movement/part name (e.g. "Adagio")  
> $04 is events (e.g. "Don Quijote enters the stage")  
> $05 is chord (e.g. "Bb F Fsus")  
> $06 is trivia/'pop up' information  
> $07 is URLs to webpages  
> $08 is URLs to images
> 
> Time stamp format:
> 
> ```
> $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
> $02 Absolute time, 32 bit sized, using milliseconds as unit
> 
> ```
> 
> Absolute time means that every stamp contains the time from the  
> beginning of the file.
> 
> The text that follows the frame header differs from that of the  
> unsynchronised lyrics/text transcription in one major way. Each  
> syllable (or whatever size of text is considered to be convenient by  
> the encoder) is a null terminated string followed by a time stamp  
> denoting where in the sound file it belongs. Each sync thus has the  
> following structure:
> 
> ```
> Terminated text to be synced (typically a syllable)
> Sync identifier (terminator to above string) $00 (00)
> Time stamp $xx (xx ...)
> 
> ```
> 
> The 'time stamp' is set to zero or the whole sync is omitted if  
> located directly at the beginning of the sound. All time stamps  
> should be sorted in chronological order. The sync can be considered  
> as a validator of the subsequent string.
> 
> Newline characters are allowed in all "SYLT" frames and MUST be used  
> after every entry (name, event etc.) in a frame with the content type  
> $03 - $04.
> 
> A few considerations regarding whitespace characters: Whitespace  
> separating words should mark the beginning of a new word, thus  
> occurring in front of the first syllable of a new word. This is also  
> valid for new line characters. A syllable followed by a comma should  
> not be broken apart with a sync (both the syllable and the comma  
> should be before the sync).
> 
> An example: The "USLT" passage
> 
> ```
> "Strangers in the night" $0A "Exchanging glances"
> 
> ```
> 
> would be "SYLT" encoded as:
> 
> ```
> "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00 xx xx
> " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx "ing" $00 xx
> xx "glan" $00 xx xx "ces" $00 xx xx
> 
> ```
> 
> There may be more than one "SYLT" frame in each tag, but only one  
> with the same language and content descriptor.

---

<div class="post-metadata">

### Author: ![rajanna](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/r/dec6dc/32.png) [@rajanna](https://community.mp3tag.de/u/rajanna)
#### Post date: [July 16, 2023, 7:34am UTC](https://community.mp3tag.de/t/timed-text-markup-language/61568/3 "2023-07-16T07:34:53Z")

</div>

Apple is ttml in Apple Music for syncd lyrics

I have not tried to save a external file with ttml extension and see if iTunes picks up the lyrics

Or is there a m4a embedded tag, I don’t know

---

<div class="post-metadata">

### Author: ![Florian](https://community.mp3tag.de/user_avatar/community.mp3tag.de/florian/32/5759_2.png) [@Florian](https://community.mp3tag.de/u/Florian)
#### Post date: [July 16, 2023, 7:44am UTC](https://community.mp3tag.de/t/timed-text-markup-language/61568/4 "2023-07-16T07:44:58Z")

</div>

From what I understand, TTML is used to submit lyrics to Apple Music when adding music to their catalog. I don't see any specification on how this is embedded in, e.g., an M4A file.

If you happen to have such a file that shows synced lyrics, you could try and analyze to see if and where the lyrics are embedded.

---

<div class="post-metadata">

### Author: ![rajanna](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/r/dec6dc/32.png) [@rajanna](https://community.mp3tag.de/u/rajanna)
#### Post date: [July 16, 2023, 7:49am UTC](https://community.mp3tag.de/t/timed-text-markup-language/61568/5 "2023-07-16T07:49:56Z")

</div>

I will explore and let you know.

Flac uses .lrc dir syncd lyrics.

Similarly Apple could support something. They do not document well.

---

<div class="post-metadata">

### Author: ![gigi](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/g/a587f6/32.png) [@gigi](https://community.mp3tag.de/u/gigi)
#### Post date: [August 18, 2024, 11:08am UTC](https://community.mp3tag.de/t/timed-text-markup-language/61568/6 "2024-08-18T11:08:36Z")

</div>

have you found any m4a equivalent tag for ttml or really any way to embed synced lyrics into m4a/mp4 files?

---

<div class="post-metadata">

### Author: ![rajanna](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/r/dec6dc/32.png) [@rajanna](https://community.mp3tag.de/u/rajanna)
#### Post date: [April 28, 2025, 6:00am UTC](https://community.mp3tag.de/t/timed-text-markup-language/61568/7 "2025-04-28T06:00:59Z")

</div>

no luck yet  
I have not been able to make it work  
Apple is using xml format for tags
