Releases: Monkfish1337/Serioussportsync
Release list
SeriousSportSync v1.1.1 — NHL
A small release with one new sport: the NHL. It also brings a fix for F1
practice sessions and better visibility on how searches perform.
NHL
- NHL is built in. A new catalog comes from ESPN's schedule, the same feed
behind NFL and NBA, with team logos as artwork. - Follow your team. NHL teams are now in Configure → Your teams,
alongside Premier League clubs and NFL, NBA and MLB teams. - Matching knows all 32 teams: full names, nicknames (Maple Leafs,
Golden Knights), cities, three-letter codes and common short forms (Habs,
Leafs, Caps, Avs, Bolts). "Utah Hockey Club" still matches last season's
Utah releases.
Thanks to everyone in Discussions
who asked for it.
Fixes
- F1 practice sessions match the right session. Practice 1, 2 and 3 were
treated as one session when matching, so opening Practice 3 could offer
Practice 1 and 2 releases. Each practice now accepts only its own number
(Practice 3,Practice.Three,FP3and Russian forms). Searches ask for
that session first, and bundles of all practices still appear. - Backups work on Windows hosts. The admin Backup download failed when
SSS ran on Windows.
Better visibility
- Review aliases includes My Teams searches. Matches opened from a team
catalog, such as Man United, are now shown on the league's page, labelled
with the team. League rules apply to them as well. Before, those searches
were recorded but shown nowhere. - Sport-Video variant count. The Sport-Video tab shows how many pages
offer more than one torrent, for example 1080p and 4K. It measures whether
keeping every quality variant is worth adding.
Community
SeriousSportSync now has
GitHub Discussions.
Ask setup questions in Q&A, suggest ideas and show off your setup. Issues now
use forms for bug reports and feature requests.
Upgrading
docker compose pull
docker compose up -d --remove-orphansNo settings need changing. NHL appears in Configure → Catalogs and
Your teams. To have the Prowlarr queue search NHL games in the background,
add it under Discovery → Prowlarr.
See the changelog for the full list.
SeriousSportSync v1.1.0 — Database-first discovery and live search on Refresh
v1.1.0 changes how SeriousSportSync answers a stream request. Discovery already
runs in the background; now playback makes full use of it. Opening an event is
answered from what discovery has already found, and a live search runs only
when it's needed or when you ask for one.
How discovery works
SeriousSportSync looks for releases in two ways.
Background discovery runs on a schedule and saves every match to the local
database:
- Bitmagnet prepares recent events from your self-hosted index.
- The Prowlarr queue searches selected promotions slowly, one query against
one indexer at a time, within daily budgets and cooldowns. - Sport-Video matches its published releases to events.
Live search asks Prowlarr (and the companion, if configured) while you wait.
It's enabled under Server → Direct Prowlarr.
What happens when you open an event
- Database first. Every release already matched to the event is served
straight away, wherever it came from: Bitmagnet, the Prowlarr queue,
Sport-Video or an earlier live search. Bitmagnet is also asked, since it
answers in milliseconds. - Live search only when needed. If the database has nothing for the event,
SSS searches Prowlarr live within your discovery budget. Promotions in the
Prowlarr queue rely on the queue instead. - Refresh searches live. When an event was answered from the database,
press Refresh in Nuvio or Stremio within 30 seconds and SSS runs one live
search, including for queued promotions. The refreshed list tells you what
it found:🔄 Live search: 2 new releases, with 🆕 on each new row🔄 Live search: no new releases… so far — still searching, refresh again shortly
- Everything found is kept. Live results go into the database, even ones
that arrive after the response has gone. The next request, from any
account, serves them straight away.
Before this release, an event with saved matches could still wait around 20
seconds on a live Prowlarr search on every open. Now it opens from the
database and live search happens on request.
The refresh window is set with LIVE_REFRESH_WINDOW_SECONDS (default 30; 0
turns it off). With live search disabled, requests are answered from the
database and Bitmagnet only, and Refresh doesn't search.
Also in this release
Discovery fixes
- MLB evening games west of Eastern time are no longer searched a day early,
before first pitch. That was about a third of every week's games, and they
showed as missing on Discovery → Overview. - MLB searches no longer use the previous day's date. NFL and NBA night games,
which are stored by UTC date, still get it. - Postponed and cancelled games are skipped by discovery and the coverage
report.
Catalogs
- AEW Dynamite and Collision show announced future episodes from AEW's own
schedule. - Upcoming WWE Raw and SmackDown episodes land on the right day.
Usenet
- Built-in Usenet is native end to end: an indexer for search and SSS's own
NNTP client for playback, with no helper container. NZB DAV has been removed. - Built-in Usenet playback starts fast. It begins after one segment, warms the
rest of the connection pool while the video plays, and reads ahead in a
pipelined window. On a test server, an 11 GB UFC release went from Play to
streaming in about a second. - Built-in Usenet search results are reused for 12 hours
(AVAILABILITY_USENET_TTL_HOURS), so reopening an event doesn't search the
indexer again. - Usenet Ultimate remains its own standalone pipeline.
- Built-in Usenet can play over a configured LAN address, and its settings page
is simpler.
Setup
- Running SSS behind an HTTPS reverse proxy? Set
PUBLIC_URLto your HTTPS
address. Without it, playback links are generated ashttp://and TorBox
playback fails. The Account page and setup wizard now warn when this is
happening (#31).
Upgrading
docker compose pull
docker compose up -d --remove-orphansNo settings need changing. Keep your existing SESSION_SECRET. If you use an
HTTPS reverse proxy and haven't set PUBLIC_URL, now's a good time.
See the changelog for the full list.
SeriousSportSync v1.0.0 — First stable release
SeriousSportSync v1.0.0
SeriousSportSync v1 brings the metadata calendar, torrent discovery, live search
providers and account configuration together as one self-hosted sports addon for
Stremio and Nuvio.
Discovery and coverage
- One Discovery workspace now reports recent torrent coverage and gives
Prowlarr, Sport-Video and Bitmagnet their own promotion selections, schedules,
progress, diagnostics and controls. - Prowlarr has a slow measured queue with durable daily budgets, indexer
cooldowns, retry history, saved event matches and optional live search. The
Improve Matching lab remains available when live playback search is disabled. - Bitmagnet provides the general background preparation path. Sport-Video has a
separate sequential preparation worker. Usenet Ultimate and Easynews remain
fast live responders and create no background search load. - Review Aliases records real query outcomes, including hits, zero results,
timeouts and never-started searches. Manual torrent-resource matching can add
a confirmed event result directly to the local database. - Discovery coverage counts usable torrent identities only. Disabled,
account-specific and Sport-Video-derived catalogs no longer distort the
seven-day overview.
Catalogs and matching
- Twenty-five built-in promotions include UFC, ONE, WWE and AEW events, weekly
WWE Raw, SmackDown and NXT, weekly AEW Dynamite and Collision, Formula 1,
boxing, MotoGP, Match of the Day, UCL, Premier League, MLB, NFL and NBA. - Weekly wrestling dates are normalized to their actual local air date, with
bounded metadata gap recovery and strict show/date release matching. - Each promotion can set its own metadata start date, reducing slow free-tier
provider work and keeping irrelevant history out of catalogs. - My Teams materializes the complete team roster once, then lets each account
add or remove team catalogs independently. Team art is square and generated
team promotions stay out of the main Promotions workspace. - Matching supports compact dates, scene separators, common team aliases,
three-letter codes, American league week formats and overnight date edges.
Administration and clients
- The five-step Configure wizard supports account-specific catalogs, home-row
visibility, collections and teams. Collection folders can be pinned and use
consistent bundled artwork. - Server, Discovery, Promotions, Event Editor, Collections, Metadata, User
Management, Database, Logs and Backup have dedicated pages with sortable,
filterable tables and clearer text navigation. - Administrators can approve or decline access requests. DIY Usenet settings and
server-intensive actions are restricted to administrators. - Server time zone is configurable, metadata keys and forced refreshes live on
Metadata, and event date overrides survive provider refreshes. - The default container is bound to localhost, runs read-only and unprivileged,
has resource and log limits, exposes a health check and supports trusted proxy
settings for a published Cloudflare tunnel.
v1 validation
- Live seven-day coverage at release review was 127 of 132 eligible events with
saved torrent identities (96.2%). - All 648 automated tests passed, along with account configuration, Nuvio schema,
backup/recovery, dependency audit, Compose health and release-container checks. - The dependency audit reported zero known production vulnerabilities.
- Representative Nuvio playback was confirmed locally and through a Cloudflare
tunnel. Cached stream requests observed during review completed in 71–408 ms.
Update to ghcr.io/monkfish1337/serioussportsync:v1.0.0 or use latest after
the release workflow completes. Existing data and settings are migrated in place;
take an admin backup before upgrading.
SSS v0.98.1 — Measured Prowlarr discovery
0.98.1 — 2026-09-13
Includes the measured MLB/NFL/NBA Prowlarr discovery queue and Review Aliases integration introduced in v0.98.0.
Fixes a discovery timer-boundary race found by CI: a deadline error now ends the query loop immediately. Queries that never start remain unattempted in alias evidence, and no extra query starts after a deadline expires.
Update to ghcr.io/monkfish1337/serioussportsync:v0.98.1. Manage the queue from Server → Direct Prowlarr → Manage Prowlarr discovery. Defaults are one search every 120 seconds, 100 SSS search/metadata requests per indexer per day, and a 30-day past-event window.
SSS v0.98.0 — Measured Prowlarr discovery
0.98.0 — 2026-09-13
MLB, NFL and NBA now use a measured Prowlarr discovery queue instead of live torrent searches during playback. Saved releases are matched locally and checked against the viewer's TorBox account. Bitmagnet, Sport-Video and the existing Usenet paths remain available during playback; the companion torrent scraper is skipped for these leagues to avoid another route to live indexer fan-out.
- One shared worker runs one query against one enabled, healthy torrent indexer at a time. Defaults: 120 seconds between searches, 100 search/metadata requests per indexer per UTC day, 30 days of past fixtures, and a 120-second search timeout. Metadata requests are spaced by at least 10 seconds and limited to three relevant candidates per search. The budget counts SSS API requests, not any additional upstream paging/retries performed inside Prowlarr.
- Future, cancelled and ongoing games are excluded. Games without a start time wait until the next day. Recent missing games take priority. Seeded matched torrents stop further discovery for that game.
- Broad league/date or NFL season/week searches are reused across fixtures. Identical queries share a six-hour cooldown. Up to six diverse query patterns are tried over successive passes, with fixture retry intervals and daily budgets persisted across restarts.
- Failures cool indexers down for 1–24 hours, respecting Prowlarr's own disabled status. Hash recovery successes and failures are remembered to reduce repeated metadata requests. Candidate payloads are encrypted and retained for 30 days.
- Review Aliases receives evidence from actual queued searches, separated by indexer. General Prowlarr and individual indexer query policies both apply. An internally disabled indexer cannot create successful zero-hit evidence from an empty API response.
- Improve Matching reads saved Prowlarr suggestions for these leagues and links to queue management. Up to 200 recent suggested titles per searched fixture are retained separately, including unmatched titles and titles without recovered hashes; they cannot become playback rows without matching and hash validation. Server → Direct Prowlarr → Manage Prowlarr discovery provides budgets, history, retry status and missing-game prioritisation. Prioritising a game never resets request budgets or cooldowns.
The ordinary bulk preparation job remains Bitmagnet-only by default. This separate, bounded Prowlarr queue intentionally revises the previous no-background-Prowlarr policy for these three leagues. Other promotions retain their existing discovery behaviour. Disabling measured discovery restores the previous live mode; PROWLARR_DISCOVERY_ENABLED=0 sets that deployment default unless saved settings override it.
Update to ghcr.io/monkfish1337/serioussportsync:v0.98.0. The queue begins collecting releases and evidence after updating. Disabled or inaccessible trackers still require attention in Prowlarr. Requests from RSS readers and other applications are outside SSS's budget.
SSS v0.97.0 — Review Aliases
0.97.0 — 2026-09-13
- Every promotion has a Review aliases page showing per-source query patterns, successful searches, zero hits, timeouts, errors, unattempted queries, matched and incremental unique results, average duration and unique matches per second.
- Measurements come from existing Prowlarr, Bitmagnet, Easynews and native Usenet searches. Dates, seasons and NFL weeks are normalized to compare recurring queries. Usenet Ultimate only supplies combined batch results, so its individual query effectiveness is not inferred.
- Repeated-zero flags require 10 completed zero-hit searches across 5 past fixtures, excluding scheduled preparation. Future fixtures, timeouts and unattempted queries cannot satisfy that threshold. Rare @ and week formats are labelled, with no automatic disabling.
- Enable, Demote and Disable controls apply to one promotion/source/query pattern and are reversible. Policy changes refresh only the affected promotion's search cache, preserving release matches and account availability. Prowlarr fills freed query slots from the remaining planned variants within the existing cap.
- A separate SQLite measurement store retains up to 50,000 observations for 90 days. Disabled patterns stay visible and recoverable after evidence expires. Tracking adds no provider searches; scheduled torrent preparation remains Bitmagnet-only.
Update SSS to ghcr.io/monkfish1337/serioussportsync:v0.97.0, then open Promotions → Review aliases. The page starts collecting new evidence after updating; older logs are not treated as reliable per-query history.
v0.96.2 — Save confirmed matching releases
0.96.2 — 2026-09-13
- Matching Lab submits confirmed release and unrelated titles when saving. If matching rules are empty, Save derives rules directly from the confirmed releases instead of rejecting the save. Existing manual rules and date/language choices are preserved.
- The confirmation area explains that Create rules is an optional preview before saving.
Update the SSS container to ghcr.io/monkfish1337/serioussportsync:v0.96.2. On v0.96.1, click Create rules from confirmed titles before Save matching override as a temporary workaround.
v0.96.1 — Priority Prowlarr discovery and matching research
0.96.1 — 2026-09-13
- MLB, NFL and NBA give Prowlarr a separate live-search window (default 50 seconds), independent of the first-response discovery wait. Active duplicate searches are shared. Matching late results and account-scoped TorBox availability are retained for refreshes; scheduled preparation stays Bitmagnet-only.
- These promotions aim to return available results after eight seconds and immediately return confirmed playable results while refreshing live discovery. When no pipeline has useful results, the normal request deadline still applies.
- Prowlarr no longer cuts searching off at 70% of its budget. Hash retrieval overlaps searching with at most four download requests at once and shares the full deadline.
- Matching Lab puts past fixtures first, passes real event IDs to preserve specialist metadata, searches Prowlarr within the separate live window, and retains title-only results without hash downloads. Provider counts, durations and incomplete status are visible.
- Existing torrent search scopes are refreshed on demand to activate the new discovery policy. Saved short timing settings are preserved; the separate Prowlarr live window supplies the longer sports search deadline.
Update the SSS container to ghcr.io/monkfish1337/serioussportsync:v0.96.1. A refresh may be needed to show results found after the first response. Prowlarr still uses its aggregate indexer search endpoint; per-indexer isolation remains a possible follow-up.
SeriousSportSync v0.96.0
SeriousSportSync v0.96.0
This release improves live search coverage and makes SSS retain useful discoveries without treating incomplete searches as finished.
- Background availability discovery stays Bitmagnet-only. Full live searches use a separate cache, so preparation cannot suppress Prowlarr.
- Prowlarr torrent-hash retrieval uses the configured timeout within the discovery budget. Partial results from Prowlarr, Bitmagnet and Easynews remain usable and are retried rather than frozen in a complete-search cache.
- Matching live torrents are stored individually. TorBox cache confirmation makes them reusable for that account, including after a later Prowlarr failure.
- Prowlarr's bounded MLB/NBA/NFL queries include nickname pairs, full names and
@variants; NFL week queries receive a slot when metadata is available. UCL keeps its specialist query order. - Known playable torrents stay visible when larger uncached releases are discovered. Confirmed Easynews/native Usenet results no longer prevent discovering alternatives.
- Matching Lab now includes direct Bitmagnet and torrent Prowlarr. It shows source queries, timing and partial status, and can use the saved live promotion rules or explore draft rules.
- Empty searches for recently completed events refresh after five minutes.
Timing settings
In Server → Discovery timing, Easynews now has its own query count and timeout controls. Defaults are six variants and five seconds per query, bounded by the request budget.
Fast response wait defaults to 0, preserving thorough searches and existing saved request/Prowlarr limits. Set it to 8000 to return completed results after roughly eight seconds while other bounded live searches learn candidates for the next refresh. If no results have arrived then, SSS keeps waiting within the request budget. A response cannot gain additional rows after it has been returned.
Validation and upgrade
All 540 unit tests, the Nuvio collection checks and account checks passed locally. New regressions cover partial-cache prevention, shared deadlines, matchup diversity, confirmed-result ranking, fast/thorough responses, recent-event expiry and live Matching Lab queries.
Use ghcr.io/monkfish1337/serioussportsync:v0.96.0, or update latest once the container workflow completes. Recreate the SSS container while retaining its existing data volume. No database wipe or migration is needed. Older search cache scopes refresh on demand.
The Bitmagnet video-only facet and thirty-day default fixture history remain operator choices. This release does not automatically broaden historical catalogs or override that filter. Tests establish orchestration and matching behaviour; actual coverage still depends on releases present in the configured sources.
This tag also includes the catalog, account and matching improvements already merged into main since v0.95.0.
SeriousSportSync v0.95.0
Here's the release body, ready to paste:
SeriousSportSync v0.95.0
Thirteen versions of work since v0.81.0. Discovery gained a new primary source, the searches sent to it were rebuilt around measurement rather than guesswork, eighteen promotions were added, and the interface was rewritten.
Discovery
Direct Bitmagnet is now a first-class discovery source, configured with one URL like Prowlarr or Zilean. Measured against the same 10.1M-row index on the same fixture: Bitmagnet returned 1,837 results in 65ms, where the Torznab endpoint in front of it returned 100 and Prowlarr 175, in 20 seconds. Info hashes arrive in the search response, so none of Prowlarr's /download hydration applies, and results are ordered by seeders server-side, so truncation cuts the tail rather than an arbitrary slice.
Enable toggles on Bitmagnet, direct Prowlarr and the companion. Comparing sources means switching them on and off repeatedly, and the only way to do that was to delete the URL and credentials and type them back in. Disabling a source also changes the discovery cache fingerprint, so a search cached while it was enabled is not served afterwards.
Sport-Video discovery through the site's own search index, matching event-first, narrowed to selected teams, with a match diagnostics export.
Releases matching no fixture from any feed now become events of their own instead of being discarded, under seven Discovered sport promotions.
The Prowlarr API key field had been cut from its own section. Restored.
Query shapes
Bitmagnet ANDs every term of a query: every word must appear in the release name, so each extra word is one more thing that has to be spelled identically. Measured against the live index and a real discovery log of 832 queries, the searches SSS was emitting were the wrong shape. MCI COV returned 2 results; Premier League MCI COV returned 0. Queries carrying both a league prefix and a date hit nothing at all across 169 attempts. The compact YYYYMMDD date that most football releases use was emitted zero times.
Fixed by emitting compact dates and bare three-letter code pairs, dropping the prefix-plus-date combination, and sending code pairs ahead of the 60-query-per-event cap that had been discarding them. The club alias table also turned out never to have been wired into the Premier League promotion, which is why the code form the EPL scene names its releases with had never once been searched for. A fixture that returned zero results before the change now returns four.
Sports
Eighteen new promotions, bringing the built-in total to 29:
Football: Premier League, EFL Championship, La Liga, Serie A, Bundesliga, Ligue 1, Eredivisie and Brasileirão, with club alias tables covering the naming forms releases actually use.
North American sport: NFL, NBA, WNBA and College Football on a no-key ESPN adapter, and MLB on the official schedule.
Discovered sports: Rugby, Football, Basketball, Baseball, American Football, Hockey and Other Sport.
Manchester United was removed; the Premier League promotion covers it.
Interface
A new design system across every page, replacing Tabler, which is now served from the addon rather than a CDN.
Configure rebuilt as a five-step flow: services, your teams, catalogs, collections, install. Nothing saves until the whole form saves, and a configured account can jump to any step.
A select-your-team wizard for Premier League, NFL, NBA and MLB.
Push to Nuvio writes collections straight into a Nuvio profile. Sign-in happens in the browser; the password never reaches the SSS server and the token is held only for the visit.
Eight admin skins, instance-wide, loading nothing remotely.
An Event Editor for correcting a source's date without changing the source. The override is reapplied after every refresh until removed.
Refresh several promotions at once.
Matching fixes
NFL fixtures no longer match every American-football release on their date.
Clubs no longer match inside one another's names, and filler club prefixes are stripped.
A nationality in an event name is no longer read as a language tag.
Competition-prefixed releases pull links correctly.
Easynews rows no longer vanish when Usenet Ultimate produces the same release title. Two pipelines offering the same file are different ways to play it, not duplicates.
Ten leagues' worth of club naming forms recognised, including a club's own name spelled out.
Reliability
The unit suite passes on Windows. The failure was a real handle leak, an un-awaited server.close() and an unclosed SQLite index, that Linux tolerated and CI therefore never saw.
Empty catalogs and meta misses are never cached.
ESPN windows chunked, TSDB retries bounded, the manifest revalidated.
Container resources bounded, route and deployment tests added, CI now installs dependencies and runs an audit.
Documentation
The README has been rewritten against the code. Six claims it made were not true, including AEW pre-show coverage, backup restore, a calendar import assistant, and a reviewable missing-event inbox. .env.example and the configuration reference no longer claim an API-Football key is needed for the Champions League promotion; that moved to UEFA's public feed.
All 363 unit tests pass.