Skip to content
FoowyPublic

About

Shoko Server plugin that finds missing episodes and bridges them to Sonarr (and Radarr for movie suggestions). Formerly ShokoSonarr.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

1 watching

Forks

Shokarr

Shokarr logo

CI License: GPL v3

Renamed to Shokarr. Existing installs upgrade in place: the plugin ID and stored settings are unchanged, and the old GitHub URLs redirect. The plugin folder and DLL are now Shokarr, so remove any old plugins/ShokoArr/ or plugins/ShokoSonarr/ folder when installing manually. The API routes and dashboard URL now use Shokarr (/api/v1/Shokarr/*, /api/plugin/Shokarr/dashboard), and the plugin's data moves from plugins/shoko_arr/ (or plugins/shoko_sonarr/) to plugins/shokarr_data/ automatically on first start.

A ShokoServer plugin that scans your anime collection for missing episodes and bridges them to Sonarr for automated download - with a related-series discovery feed and a Radarr bolt-on for movie-type suggestions.

Targets Shoko 6.0 pre-releases. Shokarr is built against pre-release versions of Shoko.Abstractions 6.0, and ShokoServer 6.0 itself is only available as daily/dev builds so far. Shoko's plugin API can still change between those builds, so a Shoko update may break Shokarr until a matching Shokarr release ships. It does not run on ShokoServer 5.x.

ELI5

Shoko tracks what anime episodes you already have. Sonarr downloads episodes for you. This plugin sits between them: it scans your Shoko library for episodes you're missing, matches each series to the right one in Sonarr, and tells Sonarr "go find these specific episodes" - no manual searching, no adding whole seasons you already have. It also surfaces AniDB-related series you don't own at all yet (sequels, prequels, side stories) as one-click suggestions, routed to Sonarr or Radarr depending on whether the suggestion is a series or a movie.

What it does

  • Scans every already-inventoried Shoko series (on-demand from the dashboard, or on a configurable schedule) for episodes with no local file.
  • Matches each series to Sonarr via its TMDB-linked TVDB ID, falling back to a confirmable title search when no TVDB link exists yet - the same confirmation flow is available directly on any series with no auto-resolved match.
  • Maps multi-cour series correctly: Shoko's AniDB episode numbers are mapped onto Sonarr's season/episode layout via absolute episode numbers, and series are added to Sonarr as anime type. Specials are matched to Sonarr season 0 by air date and title rather than number alone, and skipped (never searched against a mismatched episode) when no confident match exists.
  • Bridges the gap: adds the series to Sonarr if it isn't there yet (without triggering a full-series download), then triggers a targeted EpisodeSearch for just the missing episodes.
  • Reconciles automatically: once Shoko confirms an episode was actually imported, the plugin unmonitors it in Sonarr so Sonarr's own RSS/automatic search stops re-fetching something you already have. A stale pending search that keeps failing (e.g. the Sonarr episode was deleted out-of-band) is dropped after 14 days instead of retrying forever.
  • Shows what Sonarr already has: missing episodes Sonarr already has or is downloading get a badge, with a setting for whether they count as missing (held episodes are never searched).
  • Filters out noise: optionally exclude specials (globally or per-series), and optionally hide episodes that haven't aired yet - since there's nothing for Sonarr to find until the air date passes.
  • Suggests what you're missing entirely: surfaces AniDB-related series (sequels, prequels, side stories) you own zero episodes of, from series you already have. Movie-type suggestions route to Radarr; everything else routes to Sonarr, both via a confirmable title search.
  • Propagates Shoko's group metadata as a Sonarr tag on add, so Sonarr-side automation can key off which franchise a series belongs to. A manual "Sync Tags" action retroactively tags series added before this existed.
  • Lets a series override the global quality profile/root folder - useful for a group that should land somewhere different than everything else.
  • Bulk actions - multi-select series to apply a specials override or trigger Add-to-Sonarr/Search across all of them at once.
  • Notifies an optional Discord-compatible webhook when a search is triggered, a movie/series discovery is added, or a stale pending entry expires.
  • Shows Sonarr's live reachability in the dashboard header at a glance, instead of only after pressing Test.

What it's not

The core missing-episode scan only covers series Shoko already has some files for - it doesn't manage Sonarr's quality/upgrade settings (bring your own quality profile), and it doesn't scan owned series for "missing Radarr movies" (Radarr only comes into play for unowned movie-type suggestions, since Shoko has no TMDB movie link data for anything it doesn't already own).

Dashboard

Single-pane-of-glass UI embedded in Shoko's WebUI. Open it from Shoko's plugin pages list, or go directly to:

http://<your-shoko-host>:<port>/api/plugin/Shokarr/dashboard
  • Connection health - a persistent Sonarr-reachable/unreachable indicator in the header, refreshed every 60s.
  • Series list - every series with missing episodes, expandable to see each episode and its status (none / search-triggered). Multi-select checkboxes drive the bulk-actions bar (specials override, Add to Sonarr/Search) across several series at once.
  • Specials toggle - per-series Include/Exclude override for specials episodes; click the active button again to clear it back to the global default.
  • Profile override - per-series Sonarr quality-profile/root-folder override, independent of the specials toggle.
  • Find Match - for any series without an auto-resolved TVDB ID, search and confirm a Sonarr match directly from its row.
  • Suggestions - AniDB-related series you own nothing of, with an Add to Sonarr or Add to Radarr action depending on type.
  • Sync Tags - retroactively pushes the Shoko-group tag onto Sonarr series added before tag propagation existed.
  • Pending Searches - view and cancel any in-flight Sonarr search the plugin has triggered but Shoko hasn't confirmed as imported yet.
  • History - a log of past outcomes (triggered, imported, cancelled, expired) for episodes that were previously pending, since Pending Searches only shows what's still in-flight.
  • Theme picker - System (follows OS dark/light), Ember, Deep Teal, AniBlackle, Neonglass, or Paper.
  • Settings - Sonarr/Radarr connection, quality profile, root folder, scan interval, specials/unaired filters, whether episodes already in Sonarr count as missing, and notification webhook (see First-time setup).

First-time setup

  1. Open the Shokarr dashboard and go to the Settings panel.
  2. Enter your Sonarr base URL and API key (Sonarr, Settings, General).
  3. Press Test Connection to load the quality profile and root folder dropdowns.
  4. Pick a profile and folder, then Save.
  5. Optionally repeat for Radarr if you want movie-type suggestions routed there. Scan interval (hours, 0 disables), include specials, hide unaired and the notification webhook are in the same panel.

Existing settings are migrated automatically on first start. Settings are stored in Shoko's plugin configuration (visible under /api/v3/Configuration), which Shoko WebUI cannot edit yet.

Sonarr/Radarr must be directly reachable from the Shoko host. If either sits behind a reverse proxy with SSO/forward-auth, use its internal LAN address instead - API-key requests can't pass through an SSO login redirect.

Installing

GUI (Recommended)

  1. Open the Shoko Web UI and navigate to Settings → Plugins → Repositories.
  2. Add the manifest URL:
    https://raw.githubusercontent.com/Foowy/Shokarr/master/manifest.json
    
  3. Go to Settings → Plugins → Browse and find Shokarr.
  4. Click Install on the desired version.
  5. Restart Shoko.

New releases show up under Settings → Plugins → Updates. The manifest is updated automatically by CI for every tagged release.

Manual

  1. Download the latest Shokarr-v<version>_<runtime>.zip for your platform (linux-x64, linux-arm64 or win-x64) from the Releases page.
  2. Extract the ZIP into a Shokarr folder inside your Shoko plugins folder.
  3. Restart Shoko.

Plugins only load when Shoko starts, so copying the files in has no effect until the restart.

Building & testing

dotnet build -c Release
dotnet test -c Release

Over 100 tests cover missing-episode scanning (specials filtering, hidden/credits-type exclusion, unaired filtering, group/override propagation), Sonarr and Radarr search/reconciliation (success, failure, expiry, exception paths), the Sonarr and Radarr HTTP clients, series/movie matching, related-series discovery, notifications, and LiteDB settings persistence (including backward-compatible deserialization of pre-upgrade settings docs and cross-field override preservation).

License

GPL-3.0

About

Shoko Server plugin that finds missing episodes and bridges them to Sonarr (and Radarr for movie suggestions). Formerly ShokoSonarr.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages