Song Lyrics
Opensubsonic:
OpenSubsonic version: 1
OpenSubsonic extension name songLyrics (As returned by getOpenSubsonicExtensions)
Version 1
Line-level structured lyrics with multi-language support.
This extension requires the following endpoints:
getLyricsBySongId: Fetch structured song lyrics by id
Version 2
Word/syllable-level timing (karaoke) and lyric layer classification (translations, pronunciations).
Adds:
enhancedquery parameter ongetLyricsBySongIdto opt-in to enhanced lyrics datakindfield onstructuredLyricsto classify independent lyric layers (main,translation,pronunciation)agentobjects within an optionalagentsarray onstructuredLyricsfor reusable agent attribution metadatacueLinearray onstructuredLyricsfor word/syllable-level timingagentIdfield oncueLineto reference anagentin the samestructuredLyricsentrycueobjects within eachcueLinefor individual word/syllable timestamps
When agent attribution is present, the reusable agent metadata lives once in structuredLyrics.agents, while each cueLine points at the relevant agent via agentId. Simple unattributed single-layer lyrics may omit agents entirely. Entries with multiple vocal agents/layers must emit agents, and every attributed entry that uses agents must define exactly one role: "main" agent. A single-agent attributed/default layer may also use agents with that lone agent marked as main.
All new fields are gated behind enhanced=true — without it, the response is identical to version 1.
Servers that support Version 2 should advertise songLyrics versions [1, 2] via getOpenSubsonicExtensions.
This extension requires the following endpoints:
getLyricsBySongId: Fetch structured song lyrics by id (with optionalenhancedparameter)