Lyricsfile is an open lyrics format based on YAML. It is easy to read and edit, while supporting plain, line-synced, and word-synced lyrics.
Lyricsfile was introduced in LRCGET 2.0.0 and is supported by LRCGET and LRCLIB.
Warning
Lyricsfile 1.0 is still a draft and may change.
Files use the .lyricsfile.yaml extension.
version: '1.0'
metadata:
title: 'Song Title'
artist: 'Artist Name'
duration_ms: 245000
lines:
- text: 'A synchronized lyric line'
start_ms: 12000
end_ms: 15500
words:
- text: 'A '
start_ms: 12000
end_ms: 12800
- text: 'synchronized '
start_ms: 12800
end_ms: 14000
- text: 'lyric '
start_ms: 14000
end_ms: 14800
- text: 'line'
start_ms: 14800
end_ms: 15500
plain: |
A synchronized lyric lineThe original LYRICSFILE_CONCEPT.md is kept for
reference. The draft specification is the current source of truth.
- Keep lyrics files easy to read and edit without special tools.
- Support unsynchronized, line-synchronized, and word-synchronized lyrics.
- Support overlapping vocals.
- Make it practical for different apps and libraries to use the same files.
- Develop the format through open discussion and contributions.
- Review and stabilize the version 1.0 format.
- Work through the questions in
OPEN_QUESTIONS.md. - Add more valid and invalid examples.
- Add a schema when the main rules are settled.
Packages and converters can come later. For now, the focus is the format and clear examples.
LRCGET and LRCLIB may currently accept files that do not follow every rule in the draft. These differences will be documented as the format develops.
The Lyricsfile specification, documentation, and examples are dedicated to the public domain under CC0 1.0 Universal. Contributions are accepted under the same terms.
Future software packages may use a separate open source software license.