Go to file
renovate[bot] 20945a4f90
Update dependency MQTTnet.Extensions.ManagedClient to 4.3.7.1207 (#280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 11:19:57 -06:00
.github add unstable workflow 2024-03-25 16:50:34 -06:00
Jellyfin.Plugin.Webhook Update dependency MQTTnet.Extensions.ManagedClient to 4.3.7.1207 (#280) 2024-09-07 11:19:57 -06:00
.gitattributes initial commit 2020-09-11 15:02:28 -06:00
.gitignore add unstable workflow 2024-03-25 16:50:34 -06:00
build.yaml Prepare for release v15 (#251) 2024-07-03 08:44:39 -04:00
Directory.Build.props Prepare for release v15 (#251) 2024-07-03 08:44:39 -04:00
Jellyfin.Plugin.Webhook.sln initial commit 2020-09-11 15:02:28 -06:00
jellyfin.ruleset Update ruleset, fix new warnings 2021-11-10 06:32:47 -07:00
LICENSE Add actual license text 2020-12-16 18:45:02 -07:00
README.md Expose RemoteEndPoint & SessionInfo Variables (#275) 2024-09-06 07:51:09 -06:00

Jellyfin Webhook Plugin

Part of the Jellyfin Project

Plugin Banner

GitHub Workflow Status GPLv3 License Current Release

Debugging:

My webhook isn't working!

Change your logging.json file to output debug logs for Jellyfin.Plugin.Webhook. Make sure to add a comma to the end of "System": "Warning"

{
    "Serilog": {
        "MinimumLevel": {
            "Default": "Information",
            "Override": {
                "Microsoft": "Warning",
                "System": "Warning",
+               "Jellyfin.Plugin.Webhook": "Debug"
            }
        }

Documentation:

Use Handlebars templating engine to format notifications however you wish.

See Templates for sample templates.

Helpers:

  • if_equals
    • if first parameter equals second parameter case insensitive
  • if_exist
    • if the value of the parameter is not null or empty
  • link_to
    • wrap the $url and $text in an <a> tag

Variables:

  • Every Notifier: Server

    • ServerId
      • Server ID
    • ServerName
      • Server name
    • ServerVersion
      • $major.$minor.$build
    • ServerUrl
      • Server url
    • NotificationType
  • Every Notifier: User

    • NotificationUsername
      • Current user name
    • Username
      • Current user name
    • UserId
      • User ID
    • LastLoginDate
      • Last user login date
    • LastActivityDate
      • Last user activity date
  • Every Notifier: Device

    • DeviceName
      • Playback device name
    • DeviceId
      • Playback device ID
  • Every Notifier: Client

    • ClientName
      • Playback client name
    • Client
      • Playback client name
    • App
      • client name in Authentication Failure
    • RemoteEndPoint
      • IP Address of client
  • BaseItem:

    • Timestamp
      • Current server time local
    • UtcTimestamp
      • Current server time utc
    • Name
      • Item name
    • Overview
      • Item overview
    • Tagline
      • Item tagline
    • ItemId
      • Item id
    • ItemType
      • "Movie" "Episode" "Season" "Series" "Album" "Song"
    • RunTimeTicks
      • The media runtime, in Ticks
    • RunTime
      • The media runtime, as hh:mm:ss
    • Year
      • Item production year
    • PremiereDate
      • Item premiere year
    • Genres
      • item Genre
    • AspectRatio
      • Item aspect ratio
    • MediaSourceId
      • The media source id
    • Provider_{providerId_lowercase}
      • "Provider_tvdb" "Provider_tmdb" "Provider_imdb"
  • BaseItem: Season

    • SeriesName
      • TV series name
    • Year
      • Season production year
    • SeriesId
      • Season Series ID
    • SeriesPremiereDate
      • Series premiere date
    • SeasonNumber
      • Series number - direct format
    • SeasonNumber00
      • Series number - padded 00
    • SeasonNumber000
      • Series number - padded 000
  • BaseItem: Episode

    • EpisodeNumber
      • Episode number - direct format
    • EpisodeNumber00
      • Episode number - padded 00
    • EpisodeNumber000 -
      • Episode number - padded 000
    • EpisodeNumberEnd
      • Episode number end - direct format
    • EpisodeNumberEnd00
      • Episode number end - padded 00
    • EpisodeNumberEnd000
      • Episode number end - padded 000
    • AirTime
      • Episode series airtime
    • Year
      • Episode production year
  • BaseItem: Audio

    • Album
      • Audio album
    • Artist
      • Audio artist
    • Year
      • Audio production year
  • BaseItem: Album

    • Artist
      • Album artist
    • Year
      • Album production year
  • Playback

    • PlaybackPositionTicks
      • The current playback position, in Ticks
    • PlaybackPosition
      • The current playback position, as hh:mm:ss
    • PlayMethod
      • "Transcode" "DirectStream" "DirectPlay"
    • PlayedToCompletion
      • true/false, Only when NotificationType == PlaybackStop
    • IsPaused
      • If playback is paused
    • IsAutomated
      • If notification is automated, or user triggered
    • Likes
      • likes
    • Rating
      • rating
    • PlayCount
      • Total playcount
    • Favorite
      • Favorite
    • Played
      • Completely played
    • AudioStreamIndex
      • Audio stream index
    • SubtitleStreamIndex
      • Subtitle stream index
    • LastPlayedDate
      • Last played date
  • Audio info

    • Audio_0_Title
      • Display title
    • Audio_0_Type
      • Audio type
    • Audio_0_Language
      • Audio language
    • Audio_0_Codec
      • Audio codec
    • Audio_0_Channels
      • Number of audio channels
    • Audio_0_Bitrate
      • Audio bitrate
    • Audio_0_SampleRate
      • Audio samplerate
    • Audio_0_Default
      • default audio
  • Video info

    • Video_0_Title
      • Display title
    • Video_0_Type
      • Video type
    • Video_0_Codec
      • Video codec
    • Video_0_Profile
      • Video profile
    • Video_0_Level
      • Video level
    • Video_0_Height
      • Video height
    • Video_0_Width
      • Video width
    • Video_0_AspectRatio
      • Video aspect ratio
    • Video_0_Interlaced
      • Video interlaced
    • Video_0_FrameRate
      • Video framerate
    • Video_0_VideoRange
      • Video video range
    • Video_0_ColorSpace
      • Video color space
    • Video_0_ColorTransfer
      • Video color transfer
    • Video_0_ColorPrimaries
      • Video color primaries
    • Video_0_PixelFormat
      • Video pixel format
    • Video_0_RefFrames
      • Video ref frames
  • Subtitle info

    • Subtitle_0_Title
      • Subtitle title
    • Subtitle_0_Type
      • Subtitle type
    • Subtitle_0_Language
      • Subtitle language
    • Subtitle_0_Codec
      • Subtitle codec
    • Subtitle_0_Default
      • Default subtitle
    • Subtitle_0_Forced
      • Forced subtitle
    • Subtitle_0_External
      • External subtitle
  • Plugin info

    • PluginId
      • Plugin ID
    • PluginName
      • Plugin name
    • PluginVersion
      • Plugin version
    • PluginChangelog
      • Plugin Cchangelog
    • PluginChecksum
      • Plugin checksum
    • PluginSourceUrl
      • Plugin source URL

Destination Specific:

  • Discord
    • MentionType
    • EmbedColor
    • AvatarUrl
    • BotUsername
  • Gotify
    • Priority
  • Pushbullet
  • Pushover
    • Token
    • UserToken
    • Device
    • Title
    • MessageUrl
    • MessageUrlTitle
    • MessagePriority
    • NotificationSound
  • SMTP
  • Slack
    • BotUsername
    • SlackIconUrl

Future events can be created from https://github.com/jellyfin/jellyfin/blob/master/Jellyfin.Server.Implementations/Events/EventingServiceCollectionExtensions.cs