Skip to content

LrcLib Endpoints

Compatible endpoints provided for audio players or plugins implementing the LrcLib Protocol to connect directly to the AMLL lyric database.

Lyric response structure compatible with LrcLib format:

export interface LrclibSongItem {
/** Unique lyric ID */
id: number;
/** Song title */
name: string;
/** Song title */
trackName: string;
/** Artist name */
artistName: string;
/** Album name */
albumName: string;
/**
* Highest timestamp appearing in lyrics (seconds)
*
* Note: Not the exact audio file duration
*/
duration: number;
/** Whether the track is instrumental */
instrumental: false;
/** Plain text lyrics */
plainLyrics: string;
/** Synced LRC lyrics */
syncedLyrics: string;
}
  • instrumental: Whether the track is instrumental. Fixed to false
  • Song title, artist name, and album name pick the first element from arrays.

Fuzzy search in database, returning up to 50 items in response array.

GET/v1/lrclib/search

At least one of track_name, q, artist_name, or album_name must be provided.

Parameter Type Required Description
q string No Global search keyword
track_name string No Track name
artist_name string No Artist name
album_name string No Album title

Returns 200 status code on success with the following structure:

type LrcLibSearchResponse = LrclibSongItem[];
Example Response
[
{
"id": 269710089745311,
"name": "ME!",
"trackName": "ME!",
"artistName": "Brendon Urie",
"albumName": "Lover",
"duration": 185.8,
"instrumental": false,
"plainLyrics": "I promise that you'll never find another like me\nI know that I'm a handful, baby, uh...",
"syncedLyrics": "[00:00.11] I promise that you'll never find another like me\n[00:03.47] I know that I'm a handful, baby, uh..."
},
{
"id": 7807416901227298,
"name": "ME! (feat. Brendon Urie of Panic! At The Disco)",
"trackName": "ME! (feat. Brendon Urie of Panic! At The Disco)",
"artistName": "Taylor Swift",
"albumName": "Lover",
"duration": 185.83,
"instrumental": false,
"plainLyrics": "I promise that you'll never find another like me\nI know that I'm a handful, baby, uh...",
"syncedLyrics": "[00:00.13] I promise that you'll never find another like me\n[00:03.46] I know that I'm a handful, baby, uh..."
}
]

Fuzzy match a song and return LRC and plain text lyrics directly.

GET/v1/lrclib/get

Both track_name and artist_name must be provided.

Parameter Type Required Description
track_name string Yes Track name
artist_name string Yes Artist name
album_name string No Album title

Returns 200 status code on success with the following structure:

type LrcLibGetResponse = LrclibSongItem;
Example Response
{
"id": 269710089745311,
"name": "ME!",
"trackName": "ME!",
"artistName": "Brendon Urie",
"albumName": "Lover",
"duration": 185.8,
"instrumental": false,
"plainLyrics": "I promise that you'll never find another like me\nI know that I'm a handful, baby, uh...",
"syncedLyrics": "[00:00.11] I promise that you'll never find another like me\n[00:03.47] I know that I'm a handful, baby, uh..."
}

Get full lyrics using the id returned from search endpoints.

GET/v1/lrclib/get/{id}
Parameter Type Required Description
id number Yes ID obtained from search endpoint

Returns 200 status code on success with the following structure:

type LrcLibGetByIdResponse = LrclibSongItem;
Example Response
{
"id": 269710089745311,
"name": "ME!",
"trackName": "ME!",
"artistName": "Brendon Urie",
"albumName": "Lover",
"duration": 185.8,
"instrumental": false,
"plainLyrics": "I promise that you'll never find another like me\nI know that I'm a handful, baby, uh...",
"syncedLyrics": "[00:00.11] I promise that you'll never find another like me\n[00:03.47] I know that I'm a handful, baby, uh..."
}

在线测试

发送请求以进行调试