// Run as a Chrome Snippetfrom either of the below urls: // https://www.jazzradio.com/member/favorite/channels // https://www.classicalradio.com/member/favorite/channels // https://www.radiotunes.com/member/favorite/channels // https://www.rockradio.com/member/favorite/channels // https://www.zenradio.com/member/favorite/channels const KEY = '' const subsidy = document.location.host.split('.')[1] function getChannelInfos() { const classes = document.getElementsByClassName('header-channel-nav__link') const infos = [] for (let i = 0; i < classes.length; i++) { const id = classes[i].href.split('/').pop() const title = classes[i].innerText.trim() infos.push({ id, title }) } return infos } function channelInfoToPlaylistEntry(info, idx) { const slot = idx + 1 return `File${slot}=https://listen.${subsidy}.com/premium_high/${info.id}.pls?${KEY} Title${slot}=${info.title} Length${slot}=0` } const channelInfos = getChannelInfos() const entries = channelInfos.map(channelInfoToPlaylistEntry) const playlist = ` [playlist] NumberOfEntries=${entries.length} ${entries.join('\n')} Version=2 ` copy(playlist)