Skip to content

Instantly share code, notes, and snippets.

@Potherca
Last active May 20, 2026 11:17
Show Gist options
  • Select an option

  • Save Potherca/df268b3aef3a4cfe2ed9daf92083df8b to your computer and use it in GitHub Desktop.

Select an option

Save Potherca/df268b3aef3a4cfe2ed9daf92083df8b to your computer and use it in GitHub Desktop.
Bookmarklet for Pinguin Radio

This gist contains JS code that can be used as a bookmarklet to change the new (awesome!) Pinguin Radio website to only display the audio player.

Before

Screenshot at 2026-05-20

After

Screenshot at 2026-05-20

javascript: function setTitle() { const artist = document.querySelector('footer > div > div > div > div:has(a svg) a')?.textContent; const title = document.querySelector('footer > div > div > div > div:has(a svg) span')?.textContent; document.title = `${artist} - ${title}`; }; PinguinRadioObserver = new MutationObserver(setTitle); PinguinRadioObserver.observe(document.querySelector('footer > div > div > div > div:has(a svg)'), { characterData: true, childList: true, subtree: true, }); setTitle(); Object.entries({ '.hover\\:bg-penguin-primary-600\\/50': 'background-color: inherit;', '.sidenav': 'display: none;', '.sidenav-chat': 'display: none;', 'a:has(img[src$="pinguinindie.svg"])': 'cursor:default;', 'app-audiofooter footer': 'bottom: 0; left: 0; margin: 0; max-width: none; padding: 0; right: 0; top: 0;', 'app-audiofooter footer > div': 'height: 100%; z-index:0a;', 'div:has(> a > img[src$="pinguinindie.svg"])': 'height: 100%; opacity: 0.35; width: 100%;', 'footer > div > div:has(svg)': 'flex-direction: column; height: 45rem; max-height: 100%;padding: 0;z-index: 1;', 'footer > div > div > div svg' : 'display:none', 'footer > div > div > div > div:has(a svg) a' : 'font-size: 5vw; align-self: center;', 'footer > div > div > div > div:has(a svg) span' : 'font-size: 5vw; line-height: 0.85; overflow: visible; text-align: center; white-space: break-spaces;', }).forEach(([ selector, style ]) => { document.querySelector(selector).style = style; }); document.querySelector('a:has(img[src$="pinguinindie.svg"])').removeAttribute('href'); /* Remove event handlers */ document.querySelector('footer > div > div > div').replaceWith(document.querySelector('footer > div > div > div').cloneNode(true));
function setTitle() {
const artist = document.querySelector('footer > div > div > div > div:has(a svg) a')?.textContent;
const title = document.querySelector('footer > div > div > div > div:has(a svg) span')?.textContent;
document.title = `${artist} - ${title}`;
};
PinguinRadioObserver = new MutationObserver(setTitle);
PinguinRadioObserver.observe(document.querySelector('footer > div > div > div > div:has(a svg)'), {
characterData: true,
childList: true,
subtree: true,
});
setTitle();
Object.entries({
'.hover\\:bg-penguin-primary-600\\/50': 'background-color: inherit;',
'.sidenav': 'display: none;',
'.sidenav-chat': 'display: none;',
'a:has(img[src$="pinguinindie.svg"])': 'cursor:default;',
'app-audiofooter footer': 'bottom: 0; left: 0; margin: 0; max-width: none; padding: 0; right: 0; top: 0;',
'app-audiofooter footer > div': 'height: 100%; z-index:0;',
'div:has(> a > img[src$="pinguinindie.svg"])': 'height: 100%; opacity: 0.35; width: 100%;',
'footer > div > div:has(svg)': 'flex-direction: column; height: 45rem; max-height: 100%;padding: 0;z-index: 1;',
'footer > div > div > div svg' : 'display:none',
'footer > div > div > div > div:has(a svg) a' : 'font-size: 5vw; align-self: center;',
'footer > div > div > div > div:has(a svg) span' : 'font-size: 5vw; line-height: 0.85; overflow: visible; text-align: center; white-space: break-spaces;',
}).forEach(([ selector, style ]) => {
document.querySelector(selector).style = style;
});
document.querySelector('a:has(img[src$="pinguinindie.svg"])').removeAttribute('href');
/* Remove event handlers */
document.querySelector('footer > div > div > div').replaceWith(document.querySelector('footer > div > div > div').cloneNode(true));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment