A JavaScript package that leverages Genius API to search and fetch song lyrics and album art.
It doesn't use any native node dependencies and therefore, can be used on the client-side.
Install with npm
npm install --save AryaAPI
Or install with Yarn
yarn add AryaAPI
Get the Genius Developer Access Token
import { GetLyrics, GetSong } from 'AryaAPI';
const options = {
apiKey: '7251827XXXXXX',
title: 'Alone',
artist: 'Alan Walker',
optimizeQuery: true
};
GetLyrics(options).then((lyrics) => console.log(lyrics));
GetSong(options).then((song) =>
console.log(`
${song.id}
${song.title}
${song.url}
${song.albumArt}
${song.lyrics}`)
);
โ ๏ธ You may get a CORS block error while testing on localhost. To bypass this, you need to disable Same-Origin Policy in your browser. You may follow the instructions Here.
type options {
title: string;
artist: string;
apiKey: string; // Genius developer access token
optimizeQuery?: boolean; // Setting this to true will optimize the query for best results
authHeader?: boolean; // Whether to include auth header in the search request. 'false' by default.
}
๐จ All properties in the options object are required except optimizeQuery
and authHeader
. If title
or artist
is unknown, pass an empty string.
type song {
id: number; // Genius song id
title: string; // Song title
url: string; // Genius webpage URL for the song
lyrics: string; // Song lyrics
albumArt: string; // URL of the album art image (jpg/png)
}
type SearchResult {
id: number; // Genius song id
url: string; // Genius webpage URL for the song
title: string; // Song title
albumArt: string; // URL of the album art image (jpg/png)
}
AryaAPI exposes the following methods:
Accepts Options or the url to a Genius song.
Returns a promise that resolves to a string containing lyrics. Returns null
if no lyrics are found.
Accepts an Options object.
Returns a promise that resolves to a url (string) to the song's album art. Returns null
if no url is found.
Accepts an Options object.
Returns a promise that resolves to an object of type song. Returns null
if song is not found.
Accepts an Options object.
Returns a promise that resolves to an array of type searchResult. Returns null
if no matches are found.
Accepts a valid Genius song ID. IDs can be found using the SearchSong
method.
Returns a promise that resolves to an object of type song.
If you this repo is make you happy then support me by joining @CyberSupportGroup