UNPKG

@manhgdev/spotifyweb

Version:

Spotify library in typescript without using the Spotify Web API. No authentication required with automatic internal token generation.

29 lines (28 loc) 1.66 kB
export var Musixmatch; (function (Musixmatch) { async function search(terms) { const searchResponse = await (await fetch(`https://www.musixmatch.com/search/?query=${encodeURIComponent(terms)}`)).text(); const buildId = searchResponse.match(/"buildId":"([^"]+)"/); const query = searchResponse.match(/"query":"([^"]+)"/); const trackResponse = await (await fetch(`https://www.musixmatch.com/_next/data/${buildId[1]}/en/search.json?query${encodeURIComponent(query[1])}`)).json(); return trackResponse.pageProps.data.comSearchBrowseGet.data.mxmComSearchBrowse; } Musixmatch.search = search; async function getLyricsFromUrl(url) { const trackResponse = await (await fetch(url)).text(); const lyricsMatch = trackResponse.match(/"body":"([^"]+)"/); if (!lyricsMatch) throw new Error("Not found lyrics"); return lyricsMatch[1].split("\\n"); } Musixmatch.getLyricsFromUrl = getLyricsFromUrl; async function searchLyrics(terms) { throw new Error("Comming soon..."); const searchResponse = await (await fetch(`https://www.musixmatch.com/search?query=${encodeURIComponent(terms)}`)).text(); const buildId = searchResponse.match(/"buildId":"([^"]+)"/); const query = searchResponse.match(/"query":"([^"]+)"/); const trackResponse = await (await fetch(`https://www.musixmatch.com/_next/data/${buildId[1]}/en/lyrics/${encodeURIComponent(query[1])}.json`)).json(); return trackResponse.pageProps.data.trackInfo.data.lyrics.body; } Musixmatch.searchLyrics = searchLyrics; })(Musixmatch || (Musixmatch = {}));