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.
- 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.
- 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.
- 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.
Important
Prerequisites:
- Jellyfin 10.11.X
- Open your Jellyfin dashboard > Plugins > Repositories.
- Add a new repository:
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/main/repository.json - Go to the Catalog, find NotifySync and click Install.
- Restart your Jellyfin server.
Tip
Method 1: File Transformation (Highly Recommended) ✅ Install the File Transformation plugin for automatic injection — no file editing required:
- Add repository:
https://www.iamparadox.dev/jellyfin/plugins/manifest.json - Install File Transformation.
- Restart Jellyfin →
Ctrl+F5.
If you prefer not to install another plugin, manually add the script tag to your index.html:
| Platform | Command |
|---|---|
| Linux | sudo sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /usr/share/jellyfin/web/index.html |
| Docker | docker exec jellyfin sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /jellyfin/jellyfin-web/index.html |
| Windows | Add <script src="/NotifySync/client.js"></script> before </body> in C:\Program Files\Jellyfin\Server\jellyfin-web\index.html |
Go to Dashboard > Plugins > NotifySync.
| Setting | Description |
|---|---|
| Quotas | Maximum number of items to display per category (1–50). |
| Monitored Libraries | Check the folders you want to appear in notifications. |
| Monitored Collections | Select Jellyfin collections (BoxSets) to track for new additions. |
| Category Mapping | Rename your libraries for display in the bell (e.g. "My Movies" → "Movies"). |
| Manual Library IDs | Add library IDs or names manually for advanced setups (Channels, XFusion). |
| Deleted Items Tracking | Enable/disable the deletion history log (admin only). |
| Deletion Retention | Number of days to keep deleted item records (1–365, default 30). |
| Regenerate History | Force a full rescan after changing libraries or quotas. |
| Issue | Solution |
|---|---|
| Bell doesn't appear | Check File Transformation is installed. Clear browser cache (Ctrl+Shift+R). |
| Badge count is wrong | Click "Regenerate history" in config. Clear browser localStorage. |
| Music not synced | Use "Regenerate history" to rescan audio tracks. |
| Content missing | Ensure the library is checked in "Monitored Libraries". |
| Unauthorized content visible | Plugin respects Jellyfin permissions — check user restrictions in the dashboard. |
| 429 Error | Wait 30 seconds between "Regenerate history" clicks (anti-spam). |
| Incompatible | Ensure you are running Jellyfin 10.11.X. |
NotifySync transforme l'interface Jellyfin en y ajoutant une cloche de notifications native, inspirée des grandes plateformes de streaming. Vos utilisateurs voient instantanément les derniers ajouts — Films, Séries, Musique — sans jamais quitter leur page, via un menu déroulant en verre dépoli qui s'intègre naturellement dans Jellyfin.
- Design Netflix-Style — Un menu déroulant élégant avec effet de verre dépoli. Le compteur rouge disparaît dès l'ouverture de la cloche, mais les badges NOUVEAU/MAJ restent visibles pendant 72 heures pour repérer facilement les nouveautés.
- Section Hero — Le dernier ajout s'affiche en grand avec son image de fond. Un clic mène directement au contenu. Vous pouvez aussi le supprimer directement.
- Regroupement Intelligent — Les épisodes d'une même série sont groupés (ex. "3 nouveaux épisodes"). Les musiques sont groupées par album.
- Filtres par Catégorie — Des filtres rapides (Tout / Films / Séries / Musique / personnalisé) pour cibler ce qui vous intéresse.
- Supprimer des Notifications — Retirez une notification d'un clic, ou glissez-la vers la gauche sur mobile. Le bouton en bas s'adapte à votre filtre : vider tout, ou seulement la catégorie sélectionnée.
- Badge MAJ (Mise à Jour de Fichier) — Quand vous remplacez un fichier média (upgrade qualité, ré-encodage), la notification remonte en haut avec un badge bleu MAJ au lieu de NOUVEAU.
- Surveillance des Collections — Suivez vos collections Jellyfin (BoxSets) : les nouveaux ajouts dans une collection surveillée déclenchent une notification.
- Historique des Suppressions — Les administrateurs peuvent consulter les médias récemment supprimés dans la page de configuration, avec rétention paramétrable.
- Synchronisé entre Appareils — L'état lu/non-lu est sauvegardé sur le serveur et reste synchronisé sur tous vos navigateurs et appareils.
- Animation de la Cloche — La cloche s'anime quand un nouveau contenu arrive, pour ne rien manquer.
- Vider la Liste (Sans Risque) — Effacez toutes les notifications sans toucher à votre historique Jellyfin — rien n'est marqué comme "Vu".
- Interface Bilingue — La cloche et la page de configuration suivent la langue de votre Jellyfin (Français / Anglais).
- Horodatage Relatif — Les dates s'affichent sous forme "il y a 2 heures", "hier", "il y a 3 jours".
- Filtrage des Génériques — Les openings, endings et NCOP/NCED sont automatiquement exclus.
- Responsive — Fonctionne sur bureau, tablette et mobile (via l'app officielle Jellyfin). Note : Non supporté sur TV.
- Mises à Jour en Temps Réel — Les notifications apparaissent instantanément grâce aux WebSockets intégrés de Jellyfin. Aucun rafraîchissement nécessaire.
- Cache Intelligent — Le plugin ne transfère des données que lorsqu'il y a un réel changement, économisant la bande passante.
- Chargement Progressif des Images — Les miniatures se chargent au fil du défilement pour garder l'interface fluide.
- Stockage Léger — Toutes les données sont stockées dans une base rapide optimisée pour les accès simultanés.
- Optimisé pour .NET 9 — Conçu pour la dernière version de Jellyfin, pour des performances maximales.
- Respecte les Permissions Jellyfin — Chaque utilisateur ne voit que le contenu des bibliothèques auxquelles il a accès. Toutes les restrictions (tags, classifications, dossiers) sont respectées.
- Isolation des Utilisateurs — Aucun utilisateur ne peut accéder aux notifications d'un autre. Les administrateurs peuvent gérer tous les utilisateurs.
- Protection Contre les Attaques — Tout le contenu est nettoyé avant affichage, et toutes les requêtes sont protégées contre les injections.
- Anti-Spam — Cooldown de 30 secondes sur la régénération manuelle pour protéger les ressources serveur.
- Résistant aux Crashs — Les données sont écrites de manière sécurisée pour éviter toute corruption même en cas d'arrêt inattendu.
Important
Pré-requis :
- Jellyfin 10.11.X
- Tableau de bord Jellyfin > Extensions > Dépôts.
- Ajoutez un nouveau dépôt :
https://raw.githubusercontent.com/peterdu1109/NotifySync/refs/heads/main/repository.json - Allez dans le Catalogue, trouvez NotifySync et cliquez sur Installer.
- Redémarrez votre serveur Jellyfin.
Tip
Méthode 1 : File Transformation (Recommandé) ✅ Injection automatique sans modification de fichier :
- Dépôt :
https://www.iamparadox.dev/jellyfin/plugins/manifest.json - Installez File Transformation et redémarrez Jellyfin →
Ctrl+F5.
Si vous préférez ne pas installer d'extension tierce :
| Plateforme | Commande |
|---|---|
| Linux | sudo sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /usr/share/jellyfin/web/index.html |
| Docker | docker exec jellyfin sed -i 's|</body>| <script src="/NotifySync/client.js"></script>\n</body>|' /jellyfin/jellyfin-web/index.html |
| Windows | Ajoutez <script src="/NotifySync/client.js"></script> avant </body> dans index.html |
Allez dans Tableau de bord > Extensions > NotifySync.
| Paramètre | Description |
|---|---|
| Quotas | Nombre maximum d'éléments affichés par catégorie (1–50). |
| Bibliothèques Surveillées | Cochez les dossiers que vous souhaitez voir apparaître dans la cloche. |
| Collections Surveillées | Sélectionnez les collections Jellyfin (BoxSets) à surveiller pour les nouveaux ajouts. |
| Mappage des Catégories | Renommez vos bibliothèques pour l'affichage (ex. "Mes Films" → "Films"). |
| IDs Manuels | Ajoutez des IDs ou noms de bibliothèques manuellement pour les configurations avancées (Channels, XFusion). |
| Suivi des Suppressions | Activer/désactiver le journal des suppressions (admin uniquement). |
| Rétention des Suppressions | Nombre de jours de conservation des éléments supprimés (1–365, défaut 30). |
| Régénérer l'Historique | Force un scan complet après modification des bibliothèques ou quotas. |
| Problème | Solution |
|---|---|
| La cloche n'apparaît pas | Vérifiez que File Transformation est installé. Videz le cache (Ctrl+Shift+R). |
| Le badge est incorrect | Cliquez sur "Régénérer l'historique". Videz le localStorage du navigateur. |
| Musique non synchronisée | Utilisez "Régénérer l'historique" pour rescanner les pistes audio. |
| Contenu manquant | Vérifiez que la bibliothèque est cochée dans "Bibliothèques Surveillées". |
| Contenu non autorisé visible | Le plugin respecte les permissions Jellyfin — vérifiez les restrictions utilisateur. |
| Erreur 429 | Attendez 30 secondes entre chaque clic sur "Régénérer l'historique" (anti-spam). |
| Incompatible | Vérifiez que vous utilisez Jellyfin 10.11.X. |