diff --git a/src/internet/subsonic/subsonicservice.cpp b/src/internet/subsonic/subsonicservice.cpp index cce04a32a..24ad4588e 100644 --- a/src/internet/subsonic/subsonicservice.cpp +++ b/src/internet/subsonic/subsonicservice.cpp @@ -541,7 +541,10 @@ void SubsonicLibraryScanner::OnGetAlbumFinished(QNetworkReply* reply) { qint64 length = reader.attributes().value("duration").toString().toInt(); length *= kNsecPerSec; song.set_length_nanosec(length); - QUrl url = QUrl(QString("subsonic://%1").arg(id)); + QUrl url = QUrl(QString("subsonic://")); + QUrlQuery song_query(url.query()); + song_query.addQueryItem("id", id); + url.setQuery(song_query); QUrl cover_url = service_->BuildRequestUrl("getCoverArt"); QUrlQuery cover_url_query(url.query()); cover_url_query.addQueryItem("id", id); diff --git a/src/internet/subsonic/subsonicurlhandler.cpp b/src/internet/subsonic/subsonicurlhandler.cpp index 91177cf90..f3a33faac 100644 --- a/src/internet/subsonic/subsonicurlhandler.cpp +++ b/src/internet/subsonic/subsonicurlhandler.cpp @@ -30,9 +30,10 @@ UrlHandler::LoadResult SubsonicUrlHandler::StartLoading(const QUrl& url) { if (service_->login_state() != SubsonicService::LoginState_Loggedin) return LoadResult(url); + QUrlQuery id(url.query()); QUrl newurl = service_->BuildRequestUrl("stream"); QUrlQuery url_query(newurl.query()); - url_query.addQueryItem("id", url.host()); + url_query.addQueryItem("id", id.queryItemValue("id")); newurl.setQuery(url_query); return LoadResult(url, LoadResult::TrackAvailable, newurl); }