https://github.com/peterdu1109/NotifySync
NotifySync transforme l'interface de Jellyfin en ajoutant une icône de notification (cloche) native. Il permet à vos utilisateurs de voir instantanément les derniers ajouts (Films, Séries, Musique) sans quitter leur page actuelle, le tout avec un design fluide inspiré des plateformes de streaming majeures.
https://github.com/peterdu1109/NotifySync
dotnet9 jellyfin jellyfin-plugin jellyfin-ui notifications selfhosted
Last synced: about 1 month ago
JSON representation
NotifySync transforme l'interface de Jellyfin en ajoutant une icône de notification (cloche) native. Il permet à vos utilisateurs de voir instantanément les derniers ajouts (Films, Séries, Musique) sans quitter leur page actuelle, le tout avec un design fluide inspiré des plateformes de streaming majeures.
- Host: GitHub
- URL: https://github.com/peterdu1109/NotifySync
- Owner: peterdu1109
- Created: 2026-01-07T13:35:06.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-04-27T13:07:20.000Z (about 1 month ago)
- Last Synced: 2026-04-27T15:09:45.901Z (about 1 month ago)
- Topics: dotnet9, jellyfin, jellyfin-plugin, jellyfin-ui, notifications, selfhosted
- Language: C#
- Homepage:
- Size: 53.2 MB
- Stars: 13
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: HistoryScanTask.cs
Awesome Lists containing this project
- awesome-jellyfin - NotifySync - Adds a notification bell to Jellyfin that displays recent additions. (🧩 Plugins / 🔔 Notifications)
README
🔔 NotifySync
The modern notification center Jellyfin has been waiting for.
Le centre de notifications moderne que Jellyfin attendait.
---
🌐 Language / Langue
English | Français
---
NotifySync transforms the Jellyfin interface by adding a native notification bell, inspired by major streaming platforms. Your users instantly see the latest additions — Movies, Series, Music — without ever leaving their current page, through a sleek glass-morphism dropdown that feels like it was always part of Jellyfin.
## ✨ Key Features
### 🎨 User Experience
* **Netflix-Style Design** — A sleek dropdown with a frosted glass look. The red counter disappears as soon as you open the bell, but NEW/UPD badges stay visible for 72 hours so you can always spot recent additions.
* **Hero Section** — The latest addition is displayed large with its backdrop image. One click takes you straight to the content. You can also dismiss it directly.
* **Smart Grouping** — Episodes of the same series are grouped together (e.g. *"3 new episodes"*). Music tracks are grouped by album.
* **Category Filters** — Quick filters (All / Movies / Series / Music / custom) to focus on what matters to you.
* **Dismiss Notifications** — Remove any notification with a click, or swipe it left on mobile. The button at the bottom adapts to your filter: clear everything, or just the selected category.
* **File Upgrade Badge** — When you replace a media file (quality upgrade, re-encode), the notification comes back to the top with a blue **UPD** badge instead of **NEW**.
* **Collection Monitoring** — Track your Jellyfin collections (BoxSets): new additions to a monitored collection trigger a notification.
* **Deletion History** — Administrators can see a log of recently deleted media in the configuration page, with configurable retention.
* **Synced Across Devices** — Read/unread status is saved on the server and stays in sync across all your browsers and devices.
* **Bell Animation** — The bell shakes when new content arrives, so you never miss an update.
* **Clear List (Safe)** — Clear all notifications without affecting your Jellyfin watch history — nothing gets marked as "Played".
* **Bilingual Interface** — The bell and config page follow your Jellyfin language (French / English).
* **Relative Timestamps** — Dates show as *"2 hours ago"*, *"yesterday"*, *"3 days ago"*.
* **Theme Song Filtering** — Openings, endings, and NCOP/NCED are automatically excluded.
* **Responsive** — Works on desktop, tablet, and mobile (via the official Jellyfin app). *Note: Not supported on TV.*
### 🚀 Performance
* **Real-Time Updates** — Notifications appear instantly thanks to Jellyfin's built-in WebSockets. No page refresh needed.
* **Smart Caching** — The plugin only transfers data when something has actually changed, saving bandwidth and keeping things fast.
* **Lazy Image Loading** — Thumbnails load as you scroll, keeping the interface snappy even with many notifications.
* **Lightweight Storage** — All data is stored in a fast SQLite database optimized for concurrent access.
* **Optimized for .NET 9** — Built for the latest Jellyfin runtime for maximum performance.
### 🛡️ Security & Privacy
* **Respects Jellyfin Permissions** — Each user only sees content from the libraries they have access to. All restrictions (tags, ratings, folders) are enforced.
* **User Isolation** — No user can access another user's notifications or data. Admins can manage all users.
* **Safe Against Attacks** — All content is sanitized before display, and all database queries are protected against injection.
* **Anti-Spam** — 30-second cooldown on manual history regeneration to protect server resources.
* **Crash-Safe** — Data is written safely to prevent corruption even if the server stops unexpectedly.
## 📦 Installation
> [!IMPORTANT]
> **Prerequisites:**
> * Jellyfin **10.11.X**
### Steps
1. Open your Jellyfin dashboard > **Plugins** > **Repositories**.
2. Add a new repository:
```
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/main/repository.json
```
3. Go to the **Catalog**, find **NotifySync** and click **Install**.
4. Restart your Jellyfin server.
### 🔔 Enable the Bell
> [!TIP]
> **Method 1: File Transformation (Highly Recommended) ✅**
> Install the File Transformation plugin for automatic injection — no file editing required:
> 1. Add repository: `https://www.iamparadox.dev/jellyfin/plugins/manifest.json`
> 2. Install **File Transformation**.
> 3. Restart Jellyfin → `Ctrl+F5`.
#### Method 2: Manual Injection
If you prefer not to install another plugin, manually add the script tag to your `index.html`:
| Platform | Command |
|----------|---------|
| **Linux** | `sudo sed -i 's\|