Jellyfin
Macro Deck 自带在面板上控制 Jellyfin 应用和电视,显示正在播放的内容,并在播放开始或停止时做出响应。
两个正在播放曲目的音乐播放器组件,一个为“全封面”样式,一个为“小封面”样式,标题栏中都有 Jellyfin 的名称和标志
- 控制 Jellyfin 应用、浏览器和电视上的播放与音量
- 搜索电影、剧集、歌曲或专辑并开始播放
- 在播放开始、暂停、继续或停止时触发
- 音乐播放器和 Jellyfin 会话组件
- 可连接多台服务器,每台都有自己的变量
Jellyfin 集成将 Macro Deck 连接到一台或多台 Jellyfin 媒体服务器,并作用于其上的会话:已登录并正在播放的 Jellyfin 应用、浏览器和电视。它不需要 Jellyfin 插件。可以使用 API 密钥登录,这样 Macro Deck 能看到并控制服务器上的所有会话;也可以使用用户名和密码登录,这样只能控制该账户有权控制的会话。
可以做什么
- 播放、暂停、停止、切换曲目、跳转到某个位置,或者向前、向后跳转若干秒。
- 设置音量、静音和取消静音,并设置客户端的随机播放和循环模式。
- 使用 播放媒体 在服务器上搜索电影、剧集、歌曲或专辑,并在设备上开始播放。
- 在 Jellyfin 客户端上显示带标题的消息。
- 在 音乐播放器 组件中显示正在播放的内容,或在 Jellyfin 会话 组件中显示服务器上的播放情况。
- 在播放开始、暂停、继续或停止时,在内容切换时,或在客户端连接时启动自动化。
一些示例设置:
- 一个控制客厅电视的 Toggle Play/Pause 按键,旁边放一个 快退 按键,用于重看最后 10 秒。
- 一个由电视的 播放已开始 触发的自动化,在
{{ event.itemType }}为Movie时调暗灯光,另一个由 播放已停止 触发的自动化再把灯调亮。 - 一个使用 显示消息 在电视上显示“晚饭好了”的按键。
服务器和设备
添加的每台服务器在选择播放器的地方都会以两种形式出现。服务器名称会跟随最近播放过内容的那个会话。服务器 · 设备,例如 Home · Living Room TV,始终指向该设备,并在设备关闭时显示为未连接。Macro Deck 会在最后一次看到设备后记住它 30 天。
在 Jellyfin 10.11 及更高版本上,Macro Deck 通过 WebSocket 实时跟踪服务器。如果服务器不发送实时更新,则改为每两秒查询一次会话。服务器离线时,Macro Deck 会在后台持续重试,并在几次尝试失败后在 集成 下的 Jellyfin 页面上报告。并非每个 Jellyfin 客户端都支持所有命令:客户端无法执行的命令会失败并显示消息。
准备工作
- 运行 Macro Deck 的电脑能通过网络访问的 Jellyfin 服务器。
- Jellyfin 控制台中的 API 密钥(推荐),或 Jellyfin 用户名和密码。
- 实时更新需要 Jellyfin 10.11 或更高版本。没有实时更新时,Macro Deck 每两秒查询一次会话。
设置步骤
第 1 步: 在 Jellyfin 中创建 API 密钥
打开 Jellyfin 控制台,进入 API Keys。创建一个新密钥并复制。如果更想用用户账户登录,可以跳过此步骤。
第 2 步: 在 Macro Deck 中添加配置
在 Macro Deck 中,点击侧边栏中的 集成,然后点击 Jellyfin。在 概览 选项卡的 配置 部分中点击 添加配置。打开右上角的开关也会打开同一个对话框,完成设置后集成即会启用。
第 3 步: 输入服务器信息
在 连接到 Jellyfin 对话框中填写:
- 配置名称:此服务器的名称,例如
Home。它会用在播放器名称和变量中。 - 服务器地址:包含端口和基础路径(如有)的地址,例如
http://192.168.1.10:8096。 - 登录方式:API 密钥 或 用户名和密码,然后输入 API 密钥,或者 用户名 和 密码。
点击 继续。Macro Deck 会先检查连接,再保存。
- 配置名称:此服务器的名称,例如
第 4 步: 检查连接
新配置会在 Jellyfin 页面的 配置 部分中显示 已连接。对每台其他服务器重复这些步骤。
第 5 步: 为按键添加动作
在 面板 页面上,点击要使用的按键。面板必须处于解锁状态:右上角的按钮显示为 锁定 时,面板即为解锁状态。编辑器打开时已选中 短按。点击 + 添加动作,在 添加动作 对话框左侧选择 Jellyfin,然后选择一个动作,例如 Toggle Play/Pause。选择它要控制的服务器或设备,然后点击 保存。
第 6 步: 按下按键
在 Jellyfin 客户端上开始播放,然后在面板上按下该按键。该客户端上的播放会暂停或继续。
动作20
可以放在按键上,也可以在流程中运行。
- Play
- 在客户端上继续播放。
- Pause
- 在客户端上暂停播放。
- Toggle Play/Pause
- 在播放和暂停之间切换,并在按键上显示播放状态。
- 停止
- 在客户端上停止播放。
- Next Track
- 跳到下一项。
- Previous Track
- 跳到上一项。
- Refresh State
- 立即读取当前的播放状态。
- Seek
- 跳转到当前内容中的某个位置,单位为秒。
- 快进
- 在当前内容中向前跳转,默认为 30 秒。
- 快退
- 在当前内容中向后跳转,默认为 10 秒。
- Set Volume
- 设置客户端的音量,范围为 0 到 100%。
- Volume Up
- 将音量提高 10%。
- Volume Down
- 将音量降低 10%。
- 静音
- 将客户端静音。
- 取消静音
- 重新打开客户端的声音。
- 切换静音
- 将客户端静音或取消静音。
- Toggle Shuffle
- 开启、关闭或切换随机播放。
- Set Repeat Mode
- 将循环模式设为 Off、Repeat Track 或 Repeat Album/Playlist。
- 显示消息
- 在客户端上显示一条带标题的消息,持续若干秒。
- 播放媒体
- 搜索电影、剧集、歌曲或专辑,并在客户端上开始播放,替换当前正在播放的内容。
触发器9
按键或流程可以对这些事件做出响应。
- 播放已开始
- 某个会话开始播放内容。
- 播放已暂停
- 某个会话上的播放已暂停。
- 播放已继续
- 某个会话上暂停的播放已继续。
- 播放已停止
- 某个会话停止了播放。
- 正在播放的内容已更改
- 某个会话切换到了另一部电影、另一集或另一首曲目。
- 会话已连接
- 某个 Jellyfin 客户端在服务器上打开了会话。
- 会话已断开连接
- 服务器关闭了某个客户端的会话。
- 已连接
- Macro Deck 已连接到服务器。
- 已断开连接
- Macro Deck 与服务器的连接已中断。
变量7
在按键和组件上显示这些值,或在条件中使用它们。
jellyfin_active_sessions- 所有服务器上正在播放或已暂停的会话总数。
jellyfin_<server>_is_connected,jellyfin_<server>_active_sessions- Macro Deck 能否访问每台服务器,以及其上有多少会话正在播放。
jellyfin_<server>_<device>_is_playing,jellyfin_<server>_<device>_is_paused,jellyfin_<server>_<device>_is_active- 设备上是否有内容正在播放、已暂停或已加载。写入播放或暂停变量会播放或暂停。
jellyfin_<server>_<device>_title,jellyfin_<server>_<device>_series,jellyfin_<server>_<device>_album,jellyfin_<server>_<device>_media_type- 每台设备上内容的标题、剧集、专辑(或季)和媒体类型。
jellyfin_<server>_<device>_position,jellyfin_<server>_<device>_duration,jellyfin_<server>_<device>_progress_percent- 以秒为单位的位置和时长,以及百分比形式的进度。写入位置或进度会跳转到相应位置。
jellyfin_<server>_<device>_user,jellyfin_<server>_<device>_client,jellyfin_<server>_<device>_device,jellyfin_<server>_<device>_is_transcoding- 每个会话的用户、客户端和设备,以及服务器是否正在转换媒体。
jellyfin_<server>_<device>_volume,jellyfin_<server>_<device>_is_muted- 每台设备报告的音量和静音状态(如果设备会报告)。写入它们会设置音量或静音。
组件2
从组件选择器中将它们添加到面板。
- 音乐播放器
- 显示服务器或设备上正在播放的内容,包括封面、进度以及播放、暂停和切换按钮。显示的信息会根据歌曲、剧集和电影自动调整。
- Jellyfin 会话
- 显示一台或所有服务器上正在播放的内容,包括封面或海报、谁在播放、在哪台设备上以及播放进度。
常见问题解答
应该使用 API 密钥还是用户名和密码?
推荐使用 API 密钥:这样 Macro Deck 可以看到并控制服务器上的所有会话。使用用户名和密码时,它只能看到该账户有权控制的会话。密码只用于登录一次,不会被存储;Macro Deck 只保留 Jellyfin 发放的访问令牌。
可以连接多台服务器吗?
可以。为每台服务器添加一个配置。每个配置都有自己的变量,以配置名称命名,并显示是否已连接。
命令为什么在电视或浏览器中失败?
并非每个 Jellyfin 客户端都支持所有命令。Macro Deck 只发送客户端报告支持的命令,因此客户端无法执行的命令会失败并显示消息。音量和静音通常只在 Jellyfin 应用中有效,在浏览器标签页中无效。
服务器离线时会怎样?
Macro Deck 会在后台持续重试,并在几次尝试失败后在 集成 下的 Jellyfin 页面上显示问题 无法连接 Jellyfin 服务器。在服务器恢复之前,针对该服务器的动作会失败并显示消息。
应该使用 Jellyfin 触发器还是音乐播放器触发器?
音乐播放器触发器(例如 音乐播放器 下的 播放已开始)也会因 Jellyfin 触发,服务器和设备各触发一次。对于自动化,Jellyfin 触发器是更好的选择:它们每台设备只触发一次,并且包含用户和媒体类型。
“音乐和音频”分类中的更多集成
Spotify
Macro Deck 自带控制 Spotify 播放、喜欢歌曲、管理播放列表,并在面板上显示正在播放的内容。
YouTube Music Desktop App
Macro Deck 自带在面板上控制 YouTube Music Desktop App:播放、音量、评分和正在播放的内容。
WebNowPlaying
Macro Deck 自带通过 WebNowPlaying 扩展控制浏览器中播放的音乐和视频,并显示正在播放的内容。
SoundPad
Macro Deck 自带播放 SoundPad 列表中的声音,控制录音,并在面板上显示正在播放的声音。
Voicemeeter
Macro Deck 自带在面板上控制 Voicemeeter、Banana 或 Potato 的增益、静音、路由和宏按钮。