<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									JellyFin - Use LunaSea for notifications - Home Theatre				            </title>
            <link>https://www.tweaking4all.com/forum/home-theatre/jellyfin-use-lunasea-for-notifications/</link>
            <description>Tweaking4All.com Discussion Board</description>
            <language>en-US</language>
            <lastBuildDate>Wed, 17 Jun 2026 03:30:02 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>RE: JellyFin - Use LunaSea for notifications</title>
                        <link>https://www.tweaking4all.com/forum/home-theatre/jellyfin-use-lunasea-for-notifications/#post-5360</link>
                        <pubDate>Mon, 26 Feb 2024 09:40:10 +0000</pubDate>
                        <description><![CDATA[Available variables copied from the Webhook Github page (for easy reference):
Helpers:

if_equals

if first parameter equals second parameter case insensitive


if_exist

if the va...]]></description>
                        <content:encoded><![CDATA[<p>Available variables copied from the <a href="https://github.com/jellyfin/jellyfin-plugin-webhook?tab=readme-ov-file" target="_blank" rel="noopener">Webhook Github page</a> (for easy reference):</p>
<h4 dir="auto">Helpers:</h4>
<ul dir="auto">
<li>if_equals
<ul dir="auto">
<li>if first parameter equals second parameter case insensitive</li>
</ul>
</li>
<li>if_exist
<ul dir="auto">
<li>if the value of the parameter is not null or empty</li>
</ul>
</li>
<li>link_to
<ul dir="auto">
<li>wrap the $url and $text in an<span> </span><code>&lt;a&gt;</code><span> </span>tag</li>
</ul>
</li>
</ul>
<h4 dir="auto"><a id="user-content-variables" class="anchor" href="https://github.com/jellyfin/jellyfin-plugin-webhook?tab=readme-ov-file#variables" aria-hidden="true"></a>Variables:</h4>
<ul dir="auto">
<li>
<p dir="auto">Every Notifier</p>
<ul dir="auto">
<li>ServerId</li>
<li>ServerName</li>
<li>ServerVersion
<ul dir="auto">
<li><code>$major.$minor.$build</code></li>
</ul>
</li>
<li>ServerUrl
<ul dir="auto">
<li>Server url</li>
</ul>
</li>
<li><span style="color: #ff0000"><strong>NotificationType</strong></span>
<ul dir="auto">
<li>The<span> </span><a href="https://github.com/jellyfin/jellyfin-plugin-webhook/blob/master/Jellyfin.Plugin.Webhook/Destinations/NotificationType.cs">NotificationType</a></li>
</ul>
</li>
</ul>
</li>
<li>
<p dir="auto">BaseItem:</p>
<ul dir="auto">
<li>Timestamp
<ul dir="auto">
<li>Current server time local</li>
</ul>
</li>
<li>UtcTimestamp
<ul dir="auto">
<li>Current server time utc</li>
</ul>
</li>
<li><span style="color: #ff0000"><strong>Name</strong></span>
<ul dir="auto">
<li>Item name</li>
</ul>
</li>
<li>Overview
<ul dir="auto">
<li>Item overview</li>
</ul>
</li>
<li>Tagline
<ul dir="auto">
<li>Item tagline</li>
</ul>
</li>
<li>ItemId
<ul dir="auto">
<li>Item id</li>
</ul>
</li>
<li>ItemType
<ul dir="auto">
<li>Item type</li>
</ul>
</li>
<li>Year
<ul dir="auto">
<li>Item production year</li>
</ul>
</li>
<li>SeriesName
<ul dir="auto">
<li>TV series name</li>
</ul>
</li>
<li>SeasonNumber
<ul dir="auto">
<li>Series number - direct format</li>
</ul>
</li>
<li>SeasonNumber00
<ul dir="auto">
<li>Series number - padded 00</li>
</ul>
</li>
<li>SeasonNumber000
<ul dir="auto">
<li>Series number - padded 000</li>
</ul>
</li>
<li>EpisodeNumber
<ul dir="auto">
<li>Episode number - direct format</li>
</ul>
</li>
<li>EpisodeNumber00
<ul dir="auto">
<li>Episode number - padded 00</li>
</ul>
</li>
<li>EpisodeNumber000 -
<ul dir="auto">
<li>Episode number - padded 000</li>
</ul>
</li>
<li>Provider_{providerId_lowercase}
<ul dir="auto">
<li>ProviderId is lowercase.</li>
</ul>
</li>
<li>RunTimeTicks
<ul dir="auto">
<li>The media runtime, in<span> </span><a href="https://docs.microsoft.com/en-us/dotnet/api/system.datetime.ticks" rel="nofollow">Ticks</a></li>
</ul>
</li>
<li>RunTime
<ul dir="auto">
<li>The media runtime, as<span> </span><code>hh:mm:ss</code></li>
</ul>
</li>
</ul>
</li>
<li>
<p dir="auto">Playback</p>
<ul dir="auto">
<li>Includes everything from<span> </span><code>BaseItem</code></li>
<li>PlaybackPositionTicks
<ul dir="auto">
<li>The current playback position, in<span> </span><a href="https://docs.microsoft.com/en-us/dotnet/api/system.datetime.ticks" rel="nofollow">Ticks</a></li>
</ul>
</li>
<li>PlaybackPosition
<ul dir="auto">
<li>The current playback position, as<span> </span><code>hh:mm:ss</code></li>
</ul>
</li>
<li>MediaSourceId
<ul dir="auto">
<li>The media source id</li>
</ul>
</li>
<li>IsPaused
<ul dir="auto">
<li>If playback is paused</li>
</ul>
</li>
<li>IsAutomated
<ul dir="auto">
<li>If notification is automated, or user triggered</li>
</ul>
</li>
<li>DeviceId
<ul dir="auto">
<li>Playback device id</li>
</ul>
</li>
<li>DeviceName
<ul dir="auto">
<li>Playback device name</li>
</ul>
</li>
<li>ClientName
<ul dir="auto">
<li>Playback client name</li>
</ul>
</li>
<li>NotificationUsername
<ul dir="auto">
<li>User playing item. Note: multiple notifications will be sent if there are multiple users in a session</li>
</ul>
</li>
<li>UserId
<ul dir="auto">
<li>The user Id</li>
</ul>
</li>
<li>PlayedToCompletion
<ul dir="auto">
<li><code>true/false</code>, Only when<span> </span><code>NotificationType == PlaybackStop</code></li>
</ul>
</li>
</ul>
</li>
</ul>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.com/forum/home-theatre/">Home Theatre</category>                        <dc:creator>Hans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.com/forum/home-theatre/jellyfin-use-lunasea-for-notifications/#post-5360</guid>
                    </item>
				                    <item>
                        <title>JellyFin - Use LunaSea for notifications</title>
                        <link>https://www.tweaking4all.com/forum/home-theatre/jellyfin-use-lunasea-for-notifications/#post-5359</link>
                        <pubDate>Mon, 26 Feb 2024 09:32:58 +0000</pubDate>
                        <description><![CDATA[If you&#039;re using JellyFin, then you may want to see notifications on your phone based on certain events.Several services are already predefined, but LunaSea is missing ...
LunaSea is a great...]]></description>
                        <content:encoded><![CDATA[<p>If you're using <a href="https://jellyfin.org" target="_blank" rel="noopener">JellyFin</a>, then you may want to see notifications on your phone based on certain events.<br />Several services are already predefined, but <a href="https://www.lunasea.app" target="_blank" rel="noopener">LunaSea</a> is missing ...</p>
<p>LunaSea is a great little app for iOS or Android, to monitor your media related services like <a href="https://sonarr.tv" target="_blank" rel="noopener">Sonarr</a>, <a href="https://radarr.video" target="_blank" rel="noopener">Radarr</a>, <a href="https://nzbget.net" target="_blank" rel="noopener">NZBGet</a> etc. <br />So it sounds only logical to add Jellyfin to that bunch.</p>
<p>These are the steps to get that going:</p>
<p> </p>
<ul>
<li><span style="color: #ff0000"><strong>1</strong></span> - In Lunasea go to <strong>settings</strong> -&gt; <strong>notifications</strong>. With each service you can get a "<strong>Device</strong>".</li>
</ul>
<p>When clicking the button a Device link is generated which we need.</p>
<p>Example (shortened since the gobbledygook is quite long after /device/):</p>
<pre contenteditable="false">https://notify.lunasea.app/v1/lidarr/device/dK1...xre_lja</pre>
<p>Grab that link and replace the selected service (<strong>lidarr</strong> in this example) with "<strong>custom</strong>":</p>
<pre contenteditable="false">https://notify.lunasea.app/v1/custom/device/dK1...xre_lja</pre>
<br />
<ul>
<li><strong><span style="color: #ff0000">2</span></strong> - In Jellyfin (server) go to <strong>Dashboard</strong> -&gt; <strong>Plugins</strong> and make sure "<strong>Webhook</strong>" is installed.</li>
</ul>
<p>If not: install it and <strong>reboot</strong> the JellyFin server!</p>
515
<p> </p>
<ul>
<li><span style="color: #ff0000"><strong>3</strong></span> - In <strong>Dashboard</strong> -&gt; Plugins click the <strong>3-dots</strong> and select <strong>Settings</strong>.</li>
</ul>
516
<p> </p>
<ul>
<li><span style="color: #ff0000"><strong>4</strong></span> - In the settings window we now click "Add Generic Destination" and scroll down to edit the settings.</li>
</ul>
<p><strong>Webhook Name</strong>: LunaSea (or whatever you want to call it - it's just so you can see what is what)<br /><strong>Webhook URL</strong>: paste the modified link we got in step 1.<br /><strong>Notification Type</strong>: check whatever you like. I used "Start playback" for testing, so I just have to start a video to see a notification.</p>
<p>Template: I used something super simple for that, which you can modify to your taste. Just make sure the fields "<strong>title</strong>" and "<strong>body</strong>" exist and are a string.<br />The used notation to fill in variable is called <a href="https://handlebarsjs.com/guide/" target="_blank" rel="noopener">Handlebars notation</a>. Webhook variables are listed on the <a href="https://github.com/jellyfin/jellyfin-plugin-webhook?tab=readme-ov-file" target="_blank" rel="noopener">Webhook Github page</a>.</p>
<pre contenteditable="false">{
  "title": "JellyFin: {{{NotificationType}}}",
  "body": "{{{Name}}}"
}</pre>
<p><em>Tip: </em><br />If you like, you can add an image field to include an icon or something like that (on the right of the notification). <br />The link needs to be accessible on the Internet. This needs to be a PNG (recommended) or JPG. Also recommended to keep those images small &#x1f609; </p>
<p>Example:</p>
<pre contenteditable="false">{
  "title": "JellyFin: {{{NotificationType}}}",
  "body": "{{{Name}}}",
  "image": "https://example.com/link/to/jellyfin-logo.png"
}</pre>
<p> </p>
<p> </p>
<ul>
<li><span style="color: #ff0000"><strong>5</strong></span> - Add a request header by clicking "Add Request Header".</li>
</ul>
<p>If you forget this, you'll get messages like "Unknown Title Unknown Content".</p>
<p><strong>Key</strong>: Content-type<br /><strong>Value</strong>: application/json</p>
518
<p>Click "<strong>Save</strong>" and you should be good to go.<br />As mentioned before: I did test my notifications with playback start/stop. Would have been cool if the Webhook devs would have added a test button.</p>]]></content:encoded>
						                            <category domain="https://www.tweaking4all.com/forum/home-theatre/">Home Theatre</category>                        <dc:creator>Hans</dc:creator>
                        <guid isPermaLink="true">https://www.tweaking4all.com/forum/home-theatre/jellyfin-use-lunasea-for-notifications/#post-5359</guid>
                    </item>
							        </channel>
        </rss>
		