github ttlequals0/MinusPod v2.100.17
2.100.17

4 hours ago

New features

  • Feeds can trim an episode by a description chapter. When a timestamp line in the description matches a title pattern, the span from that timestamp to the end of the episode (or to the next chapter) is cut like an ad. A show whose second half is a re-run no longer needs to be skipped. The rule also matches the episode's chapters, including generated ones, and a matching generated chapter queues an automatic recut. Feeds can add chapter notes that are sent with every chapter request. (#856)
  • The History page gains a Downloads tab: every episode download with time, client IP, location, subscriber label and client app, with sorting and filters. Range requests from the same client within 15 minutes count as one download. Each row has an Actions menu to view the user agent or the last request, block the client's user agent, or revoke the subscriber feed that fetched it. Rows are kept for 90 days by default. See docs/download-history.md. (#856)
  • Settings > Authenticated feeds lists every subscriber feed across all podcasts, and each feed's settings gain a Security section to create and revoke subscriber feeds for that podcast. (#856)
  • A feed's max ad duration override also lifts the cap on a single LLM detection, so a continuous 8 to 10 minute mid-roll is detected as one span instead of pieces. The 7-minute default is the new global setting Longest single LLM detection. (#856)
  • Each LLM-detected marker records the addressing mode it was detected under; the Stats page reports verdicts, correction rates and snap distance per mode. (#856)
  • A feed's episode list keeps its page, status filter, sort, title search and page size in the URL, so opening an episode and pressing Back returns to the same page. (#856)

Fixes

  • An LLM span whose reason only restates the audio signals ("DAI transition", "dynamic ad insertion", "potential ad content") is held for review instead of cut. It needs ad language in the transcript or measured audio evidence. (#857, #807)
  • MP3 stream copy no longer re-encodes an episode because one edge is word-timed, quote-aligned, reviewer-locked or confirmed. A cut at the start or end of the file no longer forces re-encoding either. Locked edges snap inward, so kept audio is never shortened. (#856, #858)
  • An MP3 without a Xing, Info or VBRI header gets its real decoded length instead of ffprobe's bitrate estimate, so end cues are found and cuts can reach the true end. Reprocessing picks up the exact length. (#856, #860)
  • A reviewer boundary adjustment can no longer move an ad edge back across an audio cue that is set to be removed with the ad, so break stingers are cut instead of left audible. (#856)
  • Changing the category in a held marker's editor records the new category and keeps the marker held. Confirming the reviewer's trimmed span on a held marker no longer fails when the hold was carved out of a larger detection. (#856)
  • Search results no longer show raw HTML from descriptions. The index is refreshed from its change journal every 6 hours and fully rebuilt weekly, and rebuild writes yield between batches so processing does not wait on the write lock. (#856)
  • Search ranks a title hit above the same words in a description or transcript, and a multi-word query no longer needs its function words ("the", "for") to appear in a description. Episode results show status and publish date, with the match highlighted in the title. (#862)
  • Failed Settings, search, queue, history and sponsor requests show an error with a retry instead of an empty page, and loaded data stays on screen when a background refresh fails. (#862)
  • Dialogs keep keyboard focus and return it to the control that opened them. Feed deletion, resets, replace-mode imports and webhook deletion ask for confirmation, and unsaved settings drafts block navigation and reload. Ctrl/Cmd+K opens global search. (#862)
  • Phone and tablet layouts: 44 px touch targets, the ad editor's playback controls on one row, History and episode-cost tables as cards at tablet widths, paired date ranges, and the transcript viewer's filters in labeled fields. Reduced motion is respected and status colors meet 4.5:1 contrast. (#856, #862)
  • Reprocessing an episode on a local feed, or one with a retained original, shows Preparing instead of a Downloading phase. (#856)

Upgrade notes

  • The search index is rebuilt once on upgrade to store plain-text descriptions. (#856)
  • Download geo lookup (ipwho.is over HTTPS) is off by default. Turn it on under Settings if you want locations in the Downloads tab. (#856)
  • Both Compose files forward WHISPER_BACKEND and the remote transcription API settings from .env. The installation docs add Parakeet download and cache sizes and an 8 GB RAM minimum. (#862)

Thanks

Thanks to @KarlErfle for #857, and to @jtruland, @empe12 and @NullPointer-Ops for the reports behind #807, #858 and #860.

Don't miss a new MinusPod release

NewReleases is sending notifications on new releases.