]*>";
+const char LetrasLyricsProvider::kEndTag[] = "<\\/div>";
+const char LetrasLyricsProvider::kLyricsStart[] = "
";
+
+LetrasLyricsProvider::LetrasLyricsProvider(SharedPtr network, QObject *parent)
+ : HtmlLyricsProvider("letras.mus.br", true, kStartTag, kEndTag, kLyricsStart, false, network, parent) {}
+
+QUrl LetrasLyricsProvider::Url(const LyricsSearchRequest &request) {
+
+ return QUrl(QString(kUrl) + QStringLiteral("?musica=") + StringFixup(request.artist) + "&artista=" + StringFixup(request.title));
+
+}
+
+QString LetrasLyricsProvider::StringFixup(const QString &text) {
+
+ return QUrl::toPercentEncoding(Utilities::Transliterate(text)
+ .replace(QRegularExpression("[^\\w0-9_,&\\-\\(\\) ]"), "_")
+ .replace(QRegularExpression(" {2,}"), " ")
+ .simplified()
+ .replace(' ', '-')
+ .toLower()
+ );
+
+}
diff --git a/src/lyrics/letraslyricsprovider.h b/src/lyrics/letraslyricsprovider.h
new file mode 100644
index 00000000..b5e08fda
--- /dev/null
+++ b/src/lyrics/letraslyricsprovider.h
@@ -0,0 +1,54 @@
+/*
+ * Strawberry Music Player
+ * Copyright 2024, Jonas Kvinge
+ *
+ * Strawberry is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Strawberry is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Strawberry. If not, see .
+ *
+ */
+
+#ifndef LETRASLYRICSPROVIDER_H
+#define LETRASLYRICSPROVIDER_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "core/shared_ptr.h"
+#include "core/networkaccessmanager.h"
+#include "htmllyricsprovider.h"
+#include "lyricssearchrequest.h"
+
+class LetrasLyricsProvider : public HtmlLyricsProvider {
+ Q_OBJECT
+
+ public:
+ explicit LetrasLyricsProvider(SharedPtr network, QObject *parent = nullptr);
+
+ protected:
+ QUrl Url(const LyricsSearchRequest &request) override;
+
+ private:
+ QString StringFixup(const QString &text);
+
+ private:
+ static const char kUrl[];
+ static const char kStartTag[];
+ static const char kEndTag[];
+ static const char kLyricsStart[];
+};
+
+#endif // LETRASLYRICSPROVIDER_H