UNPKG

@mjba/lyrics

Version:

A TypeScript library for fetching song lyrics from Musixmatch

75 lines (72 loc) 2.09 kB
interface Track { track_id: number; track_name: string; artist_name: string; album_name: string; track_length: number; track_isrc?: string; track_rating?: number; } interface SongInfo { title: string; artist: string; album?: string; duration?: number; } interface LyricsResponse { success: boolean; lyrics?: string; songInfo?: SongInfo; error?: string; syncedLyrics?: SyncedLyric[]; hasTimestamps?: boolean; } interface SyncedLyric { text: string; time: { total: number; minutes: number; seconds: number; ms: number; }; } declare class LyricsClient { private ROOT_URL; private token; private parseSubtitleToSyncedLyrics; private parseRichSyncToSyncedLyrics; private get; private getToken; /** * Get synced lyrics with timestamps by ISRC code * @param isrc - International Standard Recording Code * @returns Promise<LyricsResponse> */ getSyncedLyricsByISRC(isrc: string): Promise<LyricsResponse>; /** * Search for track and get synced lyrics with timestamps * @param query - Search query (artist and track name) * @returns Promise<LyricsResponse> */ searchAndGetSyncedLyrics(query: string): Promise<LyricsResponse>; /** * Get lyrics by ISRC code * @param isrc - International Standard Recording Code * @returns Promise<LyricsResponse> */ getLyricsByISRC(isrc: string): Promise<LyricsResponse>; /** * Search for track and get lyrics * @param query - Search query (artist and track name) * @returns Promise<LyricsResponse> */ searchAndGetLyrics(query: string): Promise<LyricsResponse>; /** * Get track information by ISRC without lyrics * @param isrc - International Standard Recording Code * @returns Promise<Track> */ getTrackByISRC(isrc: string): Promise<Track>; } declare const lyricsClient: LyricsClient; export { LyricsClient, type LyricsResponse, type SongInfo, type SyncedLyric, type Track, lyricsClient };