Skip to content
This repository has been archived by the owner on Nov 15, 2024. It is now read-only.

Latest commit

 

History

History
83 lines (63 loc) · 3.02 KB

README.md

File metadata and controls

83 lines (63 loc) · 3.02 KB

llyrics

NPM version

NPM Banner

A simple package to fetch lyrics from Genius API.

This package was originally used only for my personal needs to fetch lyrics from Genius API using my discord bot, but then I decided to make this package open source and let everyone use it.


💫 Features

  • TypeScript Support: llyrics is written in TypeScript, providing type safety and ease of use. Thanks to RemyK for Typescript rewrite ❤.
  • Support for Different Sources: You can search for lyrics from YouTube, Musixmatch, or Genius by specifying the desired source(s) in the search options.
  • Auto Search: If a search fails on the first specified search engine, llyrics automatically retries the search on another available search engine for a better lyrics result.
  • Easy to Use: You can quickly search for song lyrics by providing the song title and, optionally, the artist name.

🪓 Installation

$ npm install llyrics
$ yarn add llyrics

💾 Example

const { find } = require("llyrics");

client.on(Events.InteractionCreate, async (interaction) => {
  if (!interaction.isChatInputCommand()) return;

  const response = await find({
    song: "Bohemian Rhapsody",
    engine: "youtube",
    forceSearch: true,
  });

  if (interaction.commandName === "lyrics") {
    await interaction.reply({ content: response.lyrics, ephemeral: true });
  }
});

client.login("token");

🔧 Usage

Function parameters

{
  song: string,                                 // The title of the song
  artist?: string,                              // Optional: Use this for more accurate lyrics results on the Musixmatch endpoint
  geniusApiKey?: string,                        // Optional: API key for the Genius search engine
  engine?: 'musixmatch' | 'genius' | 'youtube', // Specify the desired search engine: 'musixmatch', 'genius', or 'youtube'
  forceSearch?: boolean                         // Optional: If true and the search fails on the first specified search engine, llyrics automatically retries the search on another available search engine
}

Response format

{
  artist: string,     // Artist's name
  title: string,      // Song title
  id: number,         // Musixmatch track ID (only for Musixmatch endpoint)
  engine: string,     // Search engine used
  artworkURL: string, // Artwork URL
  lyrics: string,     // Song lyrics
  status: string,     // Response status code
}

Note: the id is only available if the request was made with Musixmatch. This corresponds to the Musixmatch identifier of the song.

The default search engine is YouTube. If you prefer not to use YouTube, you can specify your desired search engine.