Jellyfin-Newsletter ghcr.io/seaweedbraincy/jellyfin-newsletter:latest https://github.com/SeaweedbrainCY/jellyfin-newsletter/pkgs/container/jellyfin-newsletter bridge sh false https://github.com/SeaweedbrainCY/jellyfin-newsletter A newsletter for Jellyfin to notify your users of your latest additions. Jellyfin Newsletter connects to the Jellyfin API to retrieve recently added items and send them to your users. It is fully customizable and can be run on a schedule using a cron job or a task scheduler. https://raw.githubusercontent.com/SeaweedbrainCY/jellyfin-newsletter/refs/heads/main/assets/new_media_notification_preview.png MediaServer:Other https://raw.githubusercontent.com/SeaweedbrainCY/jellyfin-newsletter/refs/heads/main/assets/jellyfin_newsletter.png /mnt/user/appdata/jellyfin-newsletter/ America/New_York 1000 1000 # 2026.02.24 (v0.10.2) ## 🐳 New docker images This release is available in the following tags : `0.10`, `0.10.2` and `latest` **Recommended tag :** - `ghcr.io/seaweedbraincy/jellyfin-newsletter:0.10` Exact tag : - `ghcr.io/seaweedbraincy/jellyfin-newsletter:0.10.2` Latest tag: - `ghcr.io/seaweedbraincy/jellyfin-newsletter:latest` ## 🧰 What's fixed - New series were no longer displaying the detail of new added items (e.g. new season number or new episode number). Fix #107 in #108 by @SeaweedbrainCY. # 2025.12.15 (v0.10.1) ## 🐳 New docker images This release is available in the following tags : `0.10`, `0.10.1` and `latest` **Recommended tag :** - `ghcr.io/seaweedbraincy/jellyfin-newsletter:0.10` Exact tag : - `ghcr.io/seaweedbraincy/jellyfin-newsletter:0.10.1` Latest tag: - `ghcr.io/seaweedbraincy/jellyfin-newsletter:latest` ## 🧰 What's fixed - Add missing locales in docker build. This should fix datetime localization for Spanish, Catalan and Italian # 2025.10.06 (v0.9.0) ## 🐳 New docker images This release is available in the following tags : `0.9`, `0.9.0` and `latest` **Recommended tag :** - `ghcr.io/seaweedbraincy/jellyfin-newsletter:0.9` Exact tag : - `ghcr.io/seaweedbraincy/jellyfin-newsletter:0.9.0` Latest tag: - `ghcr.io/seaweedbraincy/jellyfin-newsletter:latest` ## ✨ What's new - Add the support of hebrew language. PR #59 by @idomp - Add a sorting option for newsletter displaying. You can now sort the item by their name or their addition date. PR #55 by @Utesgui - Docker images building time has been divided by 10 with the support of ARM runner to build ARM docker images. PR #73 by @SeaweedbrainCY ## 🧽 What has been upgraded - Bump python from 3.12 to 3.13. PR #63 by @SeaweedbrainCY - Bump requests from 2.32.4 to 2.32.5. PR #65 by @SeaweedbrainCY - Bump charset-normalizer from 3.4.1 to 3.4.3. PR #66 by @SeaweedbrainCY - Bump certifi from 2025.1.31 to 2025.8.3. PR #64 by @SeaweedbrainCY # 2025.09.09 (v0.8.2) ## 🐳 New docker images This release is available in the following tags : `v0.8`, `v0.8.2` and `latest` **Recommended tag :** - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.8` Exact tag : - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.8.2` Latest tag: - `ghcr.io/seaweedbraincy/jellyfin-newsletter:latest` ## ✨ What's new - Docker deployment pipeline improved to ease the use on fork repositories. PR #53 by @a-mnich. - Optimize the docker building process and add hardening steps. PR #57 by @Utesgui - Add a complete dry-run feature to ease the setup and debugging while contributing. This include HTML preview, metadata saving and SMTP testing. [More info](https://github.com/SeaweedbrainCY/jellyfin-newsletter/wiki/Troubleshoot-the-setup-and-newsletter-generation). PR #60 by @idomp ## 🧰 What's fixed - Fix an issue causing the whole newsletter application to crash when a requested media item is not available in TMDB anymore. PR #54 by @a-mnich - Fix an issue causing the `display_overview_max_items` item to be treated as `False` when equaled to 0. PR #58 by @Utesgui - Suppress a warning due to an invalid escape sequence when saving the last newsletter date in a text file. PR #56 by @Utesgui - Only save last newsletter date if dry-run mode is disabled. PR #62 by @a-mnich - Fix an issue causing the script to crash if no production date are provided by Jellyfin. Issue #61. By @SeaweedbrainCY # 2025.08.16 (v0.8.0) ## 🐳 New docker images This release is available in the following tags : `v0.8`, `v0.8.0` and `latest` **Recommended tag :** - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.8` Exact tag : - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.8.0` Latest tag: - `ghcr.io/seaweedbraincy/jellyfin-newsletter:latest` ## ✨ What's new - You can now choose to ignore items that were aleady sent in previous newsletter. Add the parameter `jellyfin.ignore_item_added_before_last_newsletter: true` in your config file to enable this feature. *(See the [config-example.yml](https://github.com/SeaweedbrainCY/jellyfin-newsletter/blob/v0.8.0/config/config-example.yml) file for more information)*. Issue #38. PR #50 by @SeaweedbrainCY. - You can now configure yourself the treshold used by the script to auto-hide summaries when too many items are in the newsletter (to gain place). You can also always disable/enable this feature. See the [config-example.yml](https://github.com/SeaweedbrainCY/jellyfin-newsletter/blob/v0.8.0/config/config-example.yml) file for more information. Issue #45. PR #51 by @SeaweedbrainCY. - Current script version is now displayed in the debug logs. ## 🧰 What's fixed - Some items metadata could collide due to a too light way to identify them. Items are now uniquely identified by their jellyfin id to avoid any collision. Issue #49. PR #52 by @SeaweedbrainCY. - Metadata required by this script are more strongly enforce to avoid any error at runtime. Items that don't meet metadata requirements are ignored. Issue #47. Discussion #46. PR #52 by @SeaweedbrainCY. - API calls to jellyfin have been optimized to not retrieve too much unused information. # 2025.07.26 (v0.7.2) ## 🐳 New docker images This release is available in the following tags : `v0.7`, `v0.7.2` and `latest` **Recommended tag :** - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.7` Exact tag : - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.7.2` Latest tag: - `ghcr.io/seaweedbraincy/jellyfin-newsletter:latest` ## 🧰 What's fixed - Some virtual items lack some crucial metatdata such a name, which was crashing the whole script. The newsletter now ignores item without any name. Fix #43. # 2025.07.24 (v0.7.1) ## 🐳 New docker images This release is available in the following tags : `v0.7`, `v0.7.2` and `latest` **Recommended tag :** - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.7` Exact tag : - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.7.2` Latest tag: - `ghcr.io/seaweedbraincy/jellyfin-newsletter:latest` ## 💡 What's new - Optimize Docker image building. #40 by @a-mnich. - Add support of implicit TLS for SMTP connections. #39 by @a-mnich. - Docker images are now built for amd64, arm64 and armv7 architectures. Fix #42 ## 🧰 What's fixed - If Jellyfin doesn't report an episode number for all new episodes, the newsletter will ignore the invalid values and won't display the exact new episode number list. Fix #41 # 2025.07.12 (v0.7.0 - Feature release) ## 🐳 New docker images This release is available in the following tags : `v0.7`, `v0.7.0` and `latest` **Recommended tag :** - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.7` Exact tag : - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.7.0` Latest tag: - `ghcr.io/seaweedbraincy/jellyfin-newsletter:latest` ## 💡 What's new - Add a debug mode to ease troubleshooting - Series parsing has been fully rewritten to better handle all possibilities : new series added, new seasons added or new episodes added #8 - The newsletter now adapts it self, to display the series addition in the most convenient way possible. - If more than 10 media are added, media overview (description) is skipped to avoid having a too long newsletter. #24 - If no new items were added in the observed period, newsletter is skipped. #32 - ## 🧰 What's fixed - Fix #28. Depending on Jellyfin installation and/or pluggin, it is possible that some items are *virtually* added. The newsletter were considering those item as new, since they officially exist in jellyfin catalog. To avoid this odd behavior, virtual episodes or movies are now ignored. # 2025.07.05 (v0.6.2) > [!Important] > v0.6.0 introduced breaking change when upgrading from v0.5. > Carefully read the upgrade notes of previous release. ## 🐳 New docker images This release is available in the following tags : `v0.6`, `v0.6.2` and `latest` **Recommended tag :** - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.6` Exact tag : - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.6.2` Latest tag: - `ghcr.io/seaweedbraincy/jellyfin-newsletter:latest` ## What's fixed - Fix #26 & Fix #27 - Due to a difference of definition of 1st day of week between usual/standard crontab and APScheduler, the use day_of_the_week in cron expression was buggy with an offset of 1 day (crontab starts week on sun, while APScheduler, used by the project starts day on mon). - Jellyfin-Newsletter cron expression is now consistent with usual/standard crontab expression, i.e. with a week starting on sun # 2025.07.03 (v0.6.1 - Bugfix ) > [!Important] > v0.6.0 introduced breaking change when upgrading from v0.5. > Carefully read the upgrade notes of previous release. ## 🐳 New docker images This release is available in the following tags : `v0.6`, `v0.6.1` and `latest` **Recommended tag :** - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.6` Exact tag : - `ghcr.io/seaweedbraincy/jellyfin-newsletter:v0.6.1` Latest tag: - `ghcr.io/seaweedbraincy/jellyfin-newsletter:latest` ## What's fixed - #22 : To avoid being rate limited by SMTP, a 2s delay has been introduced between each sending. - Documentation has been improved to cover watched tv/movies folder when not at system root - Logging has been improved to help adding the correct tv/movies folder in the configuration - Configuration parsing has been improved to accept empty scheduler # 2025.07.01 (0.6.0) - Initial UNRAID template release