2017-02-13, 17:08
I posted a fix for Komet in their forums just now, but if you're willing to compile yourself...
Looks like it broke because MusicBrainz started requiring a UserAgent with all API requests. The URL changes aren't actually necessary, but it saves needless redirects for every musicbrainz api request.
Update: Updated patch
Code:
--- scrapers/UniversalMusicScraper.cpp.orig 2017-02-13 09:10:26.305679745 -0600
+++ scrapers/UniversalMusicScraper.cpp 2017-02-13 09:15:08.765686791 -0600
@@ -69,8 +69,9 @@
void UniversalMusicScraper::searchArtist(QString searchStr)
{
- QUrl url(QString("http://www.musicbrainz.org/ws/2/artist/?query=artist:\"%1\"").arg(QString(QUrl::toPercentEncoding(searchStr))));
+ QUrl url(QString("http://musicbrainz.org/ws/2/artist/?query=artist:\"%1\"").arg(QString(QUrl::toPercentEncoding(searchStr))));
QNetworkRequest request(url);
+ request.setRawHeader("User-Agent" , "MediaElch");
QNetworkReply *reply = qnam()->get(request);
new NetworkReplyWatcher(this, reply);
connect(reply, SIGNAL(finished()), this, SLOT(onSearchArtistFinished()));
@@ -119,8 +120,10 @@
artist->clear(infos);
artist->setMbId(mbId);
artist->setAllMusicId("");
- QUrl url(QString("http://www.musicbrainz.org/ws/2/artist/%1?inc=url-rels").arg(mbId));
- QNetworkReply *reply = qnam()->get(QNetworkRequest(url));
+ QUrl url(QString("http://musicbrainz.org/ws/2/artist/%1?inc=url-rels").arg(mbId));
+ QNetworkRequest request(url);
+ request.setRawHeader("User-Agent" , "MediaElch");
+ QNetworkReply *reply = qnam()->get(request);
reply->setProperty("storage", Storage::toVariant(reply, artist));
reply->setProperty("infosToLoad", Storage::toVariant(reply, infos));
connect(reply, SIGNAL(finished()), this, SLOT(onArtistRelsFinished()));
@@ -303,8 +306,9 @@
QString searchQuery = "release:\"" + QString(QUrl::toPercentEncoding(cleanSearchStr)) + "\"";
if (!artistName.isEmpty())
searchQuery += "%20AND%20artist:\"" + QString(QUrl::toPercentEncoding(artistName)) + "\"";
- QUrl url(QString("http://www.musicbrainz.org/ws/2/release/?query=%1").arg(searchQuery));
+ QUrl url(QString("http://musicbrainz.org/ws/2/release/?query=%1").arg(searchQuery));
QNetworkRequest request(url);
+ request.setRawHeader("User-Agent" , "MediaElch");
QNetworkReply *reply = qnam()->get(request);
new NetworkReplyWatcher(this, reply);
connect(reply, SIGNAL(finished()), this, SLOT(onSearchAlbumFinished()));
@@ -386,8 +390,10 @@
album->setMbAlbumId(mbAlbumId);
album->setMbReleaseGroupId(mbReleaseGroupId);
album->setAllMusicId("");
- QUrl url(QString("http://www.musicbrainz.org/ws/2/release/%1?inc=url-rels+labels+artist-credits").arg(mbAlbumId));
- QNetworkReply *reply = qnam()->get(QNetworkRequest(url));
+ QUrl url(QString("http://musicbrainz.org/ws/2/release/%1?inc=url-rels+labels+artist-credits").arg(mbAlbumId));
+ QNetworkRequest request(url);
+ request.setRawHeader("User-Agent" , "MediaElch");
+ QNetworkReply *reply = qnam()->get(request);
new NetworkReplyWatcher(this, reply);
reply->setProperty("storage", Storage::toVariant(reply, album));
reply->setProperty("infosToLoad", Storage::toVariant(reply, infos));
Looks like it broke because MusicBrainz started requiring a UserAgent with all API requests. The URL changes aren't actually necessary, but it saves needless redirects for every musicbrainz api request.
Update: Updated patch