Skip to content

About

🎼LyricsScraperNET is a versatile .NET library that provides an API for searching song lyrics from the web.

Topics

Resources

Stars

9 stars

Watchers

1 watching

Forks

Repository files navigation

LyricsScraperNET

LyricsScraperNET icon

CodeFactor CI/CD LyricsScraperNET NuGet NuGet Downloads codecov License

LyricsScraperNET is a versatile .NET library that provides an API for searching song lyrics from various external providers.


🌟 Features

  • Multi-framework support: Compatible with .NET 8, .NET 9, .NET 10.
  • Integrated logging: Effortless debugging and tracking.
  • Modular architecture: Highly testable and customizable.
  • Flexible configuration: Multiple ways to configure the library.
  • NuGet support: Easy installation from NuGet.

🎤 Supported Lyrics Providers

The library currently supports the following providers:

Provider details (how each one searches, Genius matching rules) and the removed providers (Musixmatch, LyricFind) are described in docs/providers.md.

Upgrading from 2.x: see docs/migration-2.x-to-3.0.md.


📋 Getting Started

Here’s a simple example to demonstrate how to initialize and use the library with all available providers:

using LyricsScraperNET;
using LyricsScraperNET.Models.Requests;

class Program
{
    static async Task Main()
    {
        // Create an instance of LyricScraperClient with all providers
        ILyricsScraperClient lyricsScraperClient = new LyricsScraperClient()
            .WithAllProviders();

        var searchRequest = new ArtistAndSongSearchRequest(
            artist: "Metallica", 
            song: "Nothing Else Matters"
        );

        var searchResult = await lyricsScraperClient.SearchLyricAsync(searchRequest);

        if (!searchResult.IsEmpty())
        {
            Console.WriteLine(searchResult.LyricText);
        }
    }
}

More examples are in the LyricsScraperNET.Client project.


📚 Documentation

Topic Document
Client and provider settings, search order, appsettings.json (with or without dependency injection), result codes docs/configuration.md
Dependency injection (IServiceCollection, IConfiguration) docs/dependency-injection.md
HTTP: own HttpClient, User-Agent, proxy, Genius API key docs/http.md
Providers: how they search, known limits, removed providers docs/providers.md
Architecture, search flow, adding a provider docs/architecture.md
Upgrading from 2.x to 3.0 docs/migration-2.x-to-3.0.md
Obsolete members and their diagnostic ids (LSNET0001, ...) docs/obsoletions/README.md

🛠️ Installation

Install the package from NuGet:

dotnet add package LyricsScraperNET

⚖️ Responsible Use

  • LyricsScraperNET does not host, store or redistribute lyrics. It requests them from the providers on behalf of the application that uses it.
  • Lyrics are protected by copyright of their authors and publishers. You are responsible for following the terms of use of each provider and the copyright law that applies to you, especially if you show lyrics publicly or use them commercially.
  • The library does not bypass bot protection, captchas or other access restrictions. A provider whose site blocks automated access is removed (see removed providers).

Provider removal requests

If you own or represent a site used by one of the providers and want it removed from the library, open an issue or contact the maintainer through the channels listed on the GitHub profile. The provider will be removed promptly.


🖋️ Contributing and Feedback

Contributions are welcome!

  • Fork the repository and create a Pull Request.
  • Report issues or propose features via the Issues tab.

For direct feedback, feel free to reach out on Telegram.


💖 Support

If you find this project helpful, consider supporting it:

  • Starring this repository on GitHub ⭐.
  • Buy Me A Coffee
  • PayPal Donate
  • Crypto. Send only on the networks listed, a coin sent on another network may be lost:
Network Coins Address
Bitcoin BTC bc1q02d7p4qhjhjn5mnu99wdfc2j06d364jt8qeq0c
Ethereum, Base, Arbitrum, Polygon, BNB Chain ETH, USDT, USDC 0xa56541B7DF6263ab84c3e1B69bD37f2a6d848412
Solana SOL, USDT, USDC BZcuV721p9XPsdreiKY9rsmxZDVf8qHNRk3EoPp25nrS
Tron USDT (TRC-20) TGyoTufYzVPU6igcQmFGwH1SFrNes9q3UP

Your support helps keep this project alive and evolving!


📜 License

This project is licensed under the MIT License.

About

🎼LyricsScraperNET is a versatile .NET library that provides an API for searching song lyrics from the web.

Topics

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages