set window title to current audio
// ==UserScript==
// @name Soundgasm - Window Title Replacer
// @namespace http://tampermonkey.net/
// @version 2026-06-04
// @description set window title to current audio
// @author GlawGlack
// @match https://*.soundgasm.net/u/*/*
// @grant none
// @license unlicense
// ==/UserScript==
const swapDesc = false; // Change to true to swap username and title around
(function() {
'use strict';
// Select the node that will be observed for mutations
const targetNode = document;
// Options for the observer (which mutations to observe)
const config = { attributes: true, childList: true, subtree: true };
// Callback function to execute when mutations are observed
const callback = function(mutationsList, observer) {
titleFinder();
};
// Create an observer instance linked to the callback function
const observer = new MutationObserver(titleFinder);
// Start observing the target node for configured mutations
observer.observe(targetNode, config);
})();
const splitStr = location.toString().split(".net/u/")[1].split("/")[0];
function titleFinder(mutationsList,observer){
document.querySelectorAll('[class="jp-title"]').forEach((titleLabel) => {
if ( !titleLabel || titleLabel.blur === "true") { return; }
if (!swapDesc){
if (document.title != splitStr + " - " + titleLabel.innerText + " - soundgasm.net")
{
document.title = splitStr + " - " + titleLabel.innerText + " - soundgasm.net";
return;
}
}else{
if (document.title != titleLabel.innerText + " - " + splitStr + " - soundgasm.net")
{
document.title = titleLabel.innerText + " - " + splitStr + " - soundgasm.net";
return;
}
}
titleLabel.blur = "true";
return;
})
}