An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

🔔 NotifySync


Version
.NET Framework
Jellyfin
License


The modern notification center Jellyfin has been waiting for.

Le centre de notifications moderne que Jellyfin attendait.

---


🌐 Language / Langue

English | Français

---


# English

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\|