diff --git a/extension/content-script.js b/extension/content-script.js --- a/extension/content-script.js +++ b/extension/content-script.js @@ -231,6 +231,7 @@ // a website might have set Media Sessions metadata prior to playing // and then we would have ignored the metadata signal because there was no player sendMessage("mpris", "playing", { + mediaSrc: player.src, duration: player.duration, currentTime: player.currentTime, playbackRate: player.playbackRate, diff --git a/host/mprisplugin.h b/host/mprisplugin.h --- a/host/mprisplugin.h +++ b/host/mprisplugin.h @@ -150,6 +150,7 @@ QString m_pageTitle; QUrl m_url; + QUrl m_mediaSrc; QString m_title; QString m_artist; diff --git a/host/mprisplugin.cpp b/host/mprisplugin.cpp --- a/host/mprisplugin.cpp +++ b/host/mprisplugin.cpp @@ -130,6 +130,7 @@ m_canGoPrevious = false; m_pageTitle.clear(); m_url.clear(); + m_mediaSrc.clear(); m_title.clear(); m_artist.clear(); m_artworkUrl.clear(); @@ -140,6 +141,7 @@ setPlaybackStatus(QStringLiteral("Playing")); m_pageTitle = data.value(QStringLiteral("tabTitle")).toString(); m_url = QUrl(data.value(QStringLiteral("url")).toString()); + m_mediaSrc = QUrl(data.value(QStringLiteral("mediaSrc")).toString()); const qreal volume = data.value(QStringLiteral("volume")).toDouble(1); if (m_volume != volume) { @@ -384,6 +386,9 @@ if (m_url.isValid()) { metadata.insert(QStringLiteral("xesam:url"), m_url.toDisplayString()); } + if (m_mediaSrc.isValid()) { + metadata.insert(QStringLiteral("kde:mediaSrc"), m_mediaSrc.toDisplayString()); + } if (m_length > 0) { metadata.insert(QStringLiteral("mpris:length"), m_length); }