Enhances streams on unauthorized.tv by adding buttons to jump 30s forward/backward and change playback rate. On android devices, the playback controls on the notification screen also receive jump buttons.
On your desktop browser, install a userscript manager like Tampermonkey and add the script below. Each stream will be augmented with extra buttons.
On android, create a bookmark and copy-paste the snippet below into the URL field. Click on this bookmark whenever you're listening to a podcast to upgrade the page. (You can usually invoke the bookmarklet from the URL bar by typing in its name)
javascript:(function()%7B(function()%7B'use%20strict'%3Bconst%20%24%3Ddocument.querySelector.bind(document)%3Bconst%20gui%3Ddocument.createElement('div')%3Bgui.innerHTML%3D%60%0A%3Cdiv%20class%3D%22tm-controls%22%3E%0A%20%20%3Cbutton%20class%3D%22tm-controls__back%22%3E%3Ci%20class%3D%22fa%20fa-backward%22%3E%3C%2Fi%3E%3C%2Fbutton%3E%0A%20%20%3Cbutton%20class%3D%22tm-controls__rate%22%3E1x%3C%2Fbutton%3E%0A%20%20%3Cbutton%20class%3D%22tm-controls__fwd%22%3E%3Ci%20class%3D%22fa%20fa-forward%22%3E%3C%2Fi%3E%3C%2Fbutton%3E%0A%3C%2Fdiv%3E%0A%3Cstyle%3E%0A.tm-controls%20%7B%0A%20%20display%3A%20flex%3B%0A%20%20align-items%3A%20center%3B%0A%20%20justify-content%3A%20center%3B%0A%7D%0A%0A.tm-controls%20button%20%7B%0A%20%20min-height%3A%2033px%3B%0A%20%20min-width%3A%2040px%3B%0A%20%20margin-left%3A%2010px%3B%0A%20%20font-size%3A%2018px%3B%0A%7D%0A.tm-controls%20button%3Afirst-child%20%7B%0A%20%20margin-left%3A%200%3B%0A%7D%0A%3C%2Fstyle%3E%0A%60%3Bconst%20audio%3D%24('audio')%3Bif(audio)%7Bdocument.querySelector('main').insertBefore(gui%2C%24('.formWrapper'))%3Baudio.addEventListener('play'%2CsetupMediaSession)%3B%24('.tm-controls__back').addEventListener('click'%2Cback)%3B%24('.tm-controls__fwd').addEventListener('click'%2Cfwd)%3B%24('.tm-controls__rate').addEventListener('click'%2CchangeRate)%7Dfunction%20fwd()%7Baudio.currentTime%3DMath.min(audio.currentTime%2B30%2Caudio.duration)%7D%3Bfunction%20back()%7Baudio.currentTime%3DMath.max(audio.currentTime-30%2C0)%7D%3Bfunction%20changeRate()%7Bconst%20rates%3D%5B0.5%2C0.75%2C1%2C1.25%2C1.5%2C1.75%2C2%5D%3Bconst%20index%3Drates.findIndex((i)%3D%3Eaudio.playbackRate%3D%3D%3Di)%3Blet%20rate%3Drates%5Bindex%2B1%5D%3Bif(!rate)%7Brate%3Drates%5B0%5D%7Daudio.playbackRate%3Drate%3B%24('.tm-controls__rate').innerText%3D%60%24%7B%20rate%20%7Dx%60%7D%3Bfunction%20setupMediaSession()%7Bif('mediaSession'in%20navigator)%7Bnavigator.mediaSession.metadata%3Dnew%20MediaMetadata(%7Btitle%3A%24('.video.header').innerText.trim()%2Cartist%3A'Unauthorized.tv'%2Calbum%3A'N%2FA'%2Cartwork%3A%5B%7Bsrc%3A'https%3A%2F%2Funauthorized.tv%2Fstatic%2Fimg%2Fhome_button.png'%2Csizes%3A'96x96'%2Ctype%3A'image%2Fpng'%7D%2C%7Bsrc%3A'https%3A%2F%2Funauthorized.tv%2Fstatic%2Fimg%2Fhome_button.png'%2Csizes%3A'128x128'%2Ctype%3A'image%2Fpng'%7D%2C%7Bsrc%3A'https%3A%2F%2Funauthorized.tv%2Fstatic%2Fimg%2Fhome_button.png'%2Csizes%3A'192x192'%2Ctype%3A'image%2Fpng'%7D%2C%7Bsrc%3A'https%3A%2F%2Funauthorized.tv%2Fstatic%2Fimg%2Fhome_button.png'%2Csizes%3A'256x256'%2Ctype%3A'image%2Fpng'%7D%2C%7Bsrc%3A'https%3A%2F%2Funauthorized.tv%2Fstatic%2Fimg%2Fhome_button.png'%2Csizes%3A'384x384'%2Ctype%3A'image%2Fpng'%7D%2C%7Bsrc%3A'https%3A%2F%2Funauthorized.tv%2Fstatic%2Fimg%2Fhome_button.png'%2Csizes%3A'512x512'%2Ctype%3A'image%2Fpng'%7D%2C%7Bsrc%3A'https%3A%2F%2Funauthorized.tv%2Fstatic%2Fimg%2Fhome_button.png'%2Csizes%3A'600x600'%2Ctype%3A'image%2Fpng'%7D%5D%7D)%3Bnavigator.mediaSession.setActionHandler('play'%2C()%3D%3Eaudio.play())%3Bnavigator.mediaSession.setActionHandler('pause'%2C()%3D%3Eaudio.pause())%3Bnavigator.mediaSession.setActionHandler('seekbackward'%2C()%3D%3Eback())%3Bnavigator.mediaSession.setActionHandler('seekforward'%2C()%3D%3Efwd())%7Daudio.removeEventListener('play'%2CsetupMediaSession)%7D%7D)()%3B%7D)()%3B)
I'm not affiliated with UATV and this code (and its equavalent userscript below) is public domain, without any warranty.
Looks good. Would you email me at the address on my GH profile? I'll explain who I am.