Dock metadata to MediaSession API for y.qq.com (Chrome 73+)
当前为
// ==UserScript==
// @name QQ Music MediaSession Helper
// @namespace https://github.com/nondanee
// @version 0.1.1
// @description Dock metadata to MediaSession API for y.qq.com (Chrome 73+)
// @author nondanee
// @match *://y.qq.com/portal/player.html*
// @grant none
// ==/UserScript==
(() => {
if (!('mediaSession' in navigator)) return
const querySelector = selector => document.querySelector(selector) || document.head
const updateMetadata = () => {
const tracks = JSON.parse(localStorage.getItem('y_playlist') || '[]')
const mid = querySelector('#sim_song_info .js_song').getAttribute('data-mid')
const song = tracks.find(item => item.songmid === mid)
const cover = querySelector('#song_pic').src
if (song) {
navigator.mediaSession.metadata = new MediaMetadata({
title: song.name,
artist: song.singer.map(artist => artist.name).join(' / '),
album: song.album.name,
artwork: [{ src: cover, sizes: '300x300', type: 'image/jpeg' }]
})
}
}
navigator.mediaSession.setActionHandler('previoustrack', () => querySelector('#opbanner .btn_big_prev').click())
navigator.mediaSession.setActionHandler('nexttrack', () => querySelector('#opbanner .btn_big_next').click())
const element = document.querySelector('#opbanner #sim_song_info')
if (element) new MutationObserver(updateMetadata).observe(element, { childList: true, attributes: true })
updateMetadata()
})()
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址