Gabrieal Jimmy 378677acda fix 2
2026-07-16 14:07:16 -05:00
2026-07-16 14:07:16 -05:00
Fix
2026-07-16 13:54:01 -05:00
Fix
2026-07-16 13:54:01 -05:00
2026-07-16 14:07:16 -05:00
Fix
2026-07-16 13:54:01 -05:00

Jellyfin Reddit Comments

A Jellyfin server plugin that adds a comments button to the video player. Clicking it opens a sidebar showing the Reddit discussion thread for the episode or movie you're watching — built primarily for anime, where almost every episode has a thread on r/anime.

  • Lazy: Reddit is only contacted when you click the button. No background searching.
  • Cached: threads and comments are stored in a local SQLite database, so re-watching an episode (or everyone on your server watching the same one) costs zero extra API calls.
  • Rate limited: a sliding-window limiter caps Reddit API usage at 60 requests/minute (configurable, hard-capped at Reddit's own 100/min limit). In practice a fresh episode lookup costs ~24 requests.

A note on Devvit: this plugin does not use Devvit, Reddit's developer platform. Devvit apps run sandboxed on Reddit's own servers and cannot be embedded in external software like a Jellyfin plugin. Instead, the plugin talks to the Reddit REST API directly using OAuth2 app-only (client credentials) authentication.

Requirements

  • Jellyfin Server 10.11.x (built against the 10.11.11 ABI, net9.0)
  • The Jellyfin web client (the button/sidebar is injected into jellyfin-web; the API works from any client that can call the plugin endpoints)
  • A free Reddit "script" app (client id + secret)

1. Create the Reddit app (one time)

  1. Go to https://www.reddit.com/prefs/apps and click create app.
  2. Pick any name, choose type script, set redirect uri to http://localhost.
  3. Note the client id (shown under the app name) and the secret.

2. Install the plugin

Option A — manual install

  1. Download/copy dist/Jellyfin.Plugin.RedditComments_1.0.0.0.zip.
  2. Create a folder RedditComments inside your Jellyfin plugins directory:
    • Linux (native): /var/lib/jellyfin/plugins/RedditComments
    • Docker: <your config volume>/plugins/RedditComments
    • Windows: %ProgramData%\Jellyfin\Server\plugins\RedditComments
  3. Extract the zip contents into that folder (the plugin DLL must sit directly inside it).
  4. Restart Jellyfin.

Option B — plugin repository

  1. Host dist/Jellyfin.Plugin.RedditComments_1.0.0.0.zip somewhere reachable by your server (e.g. a GitHub release asset).
  2. Edit manifest.json: set sourceUrl to the zip URL and update checksum with the zip's MD5 (md5sum Jellyfin.Plugin.RedditComments_1.0.0.0.zip).
  3. Host manifest.json next to the zip.
  4. In Jellyfin: Dashboard → Plugins → Repositories → +, paste the manifest URL, then install "Reddit Comments" from the catalog and restart.

3. Configure

Dashboard → Plugins → Reddit Comments:

  1. Enter your Client ID and Client Secret, and set a descriptive User Agent (Reddit requires one, e.g. linux:jellyfin-reddit-comments:v1.0 (by /u/yourname)).
  2. Click Test connection to verify.
  3. Optionally adjust subreddits (default anime), cache durations, rate limit, and comment filters, then Save.

Usage

  1. Play an episode in the Jellyfin web player.
  2. Click the new chat bubble button in the player controls (next to fullscreen).
  3. The sidebar opens with the matching Reddit thread: title (links to Reddit), subreddit/score/ comment-count chips, and the comment tree. Click a comment's meta line to collapse its replies.
  4. Use the refresh button in the sidebar header to bypass the cache and fetch fresh comments.

Nothing is searched or fetched until the button is clicked.

How it works

  • Finding the thread: the plugin searches your configured subreddits for "<series name>" episode <N> (plus season/original-title variants) and scores candidates by episode-number match and title similarity. Results are cached per Jellyfin item.
  • Caching: SQLite at <config>/plugins/RedditComments/reddit-comments.db. Found threads are cached for 30 days, "not found" results for 24 hours (both configurable).
  • Rate limiting: every Reddit request (including token refreshes) passes through a sliding-window limiter — never more than the configured number per rolling 60 seconds.
  • Web client injection: at startup the plugin adds a <script> tag for its player script to jellyfin-web's index.html (re-applied automatically after web client updates). If your web directory is read-only (some Docker setups), the plugin logs a warning with the tag to add manually; the API still works regardless.

Limitations

  • Episode matching assumes the Reddit thread uses the same episode number as your library (r/anime uses the show's broadcast numbering). If your library uses absolute numbering but the thread uses per-season numbering (or vice versa), the thread may not be found.
  • The button/sidebar only exists in the Jellyfin web player. Other clients (Android TV, Swiftfin, etc.) are not supported.
  • Only episodes and movies are supported.

Building from source

Requires the .NET 9 SDK:

dotnet publish Jellyfin.Plugin.RedditComments/Jellyfin.Plugin.RedditComments.csproj -c Release -o publish

Copy Jellyfin.Plugin.RedditComments.dll into your plugins folder and restart. The package is intentionally a single DLL: the plugin uses the same Microsoft.Data.Sqlite build that Jellyfin itself ships for jellyfin.db, so no extra assemblies or native libraries may be placed in the plugin folder (Jellyfin tries to load every *.dll there as a managed assembly and disables the plugin on failure).

Run the smoke tests (cache, Reddit response parsing, rate limiter):

dotnet run --project SmokeTests/SmokeTests.csproj -c Release

Uninstalling

  1. Remove the RedditComments folder from the plugins directory and restart.
  2. Optionally delete the cache database <config>/plugins/RedditComments/reddit-comments.db.
  3. The injected <script src=".../RedditComments/Static/reddit-comments.js"> tag in jellyfin-web's index.html becomes a harmless 404 after uninstall; remove it manually if you want it gone (it is also overwritten on every jellyfin-web update).
Description
No description provided
Readme 72 KiB
2026-07-16 14:32:12 -05:00
Languages
C# 66.6%
JavaScript 22.6%
HTML 10.8%