Alexa skill plugin for Jellyfin
Note: This project is still in a very early alpha phase, this means not all features are fully functional at this time and features or usage can change significantly between releases.
Moreover, new releases can result in data loss of the plugin configuration.
Changes on the main branch are not final and may brake your setup, please use the tagged versions for more stable beta versions eg. 0.x
.
Please always create a backup of your setup beforehand.
Note: If you are looking for a more stable and feature-packed Alexa Skill for Jellyfin, then check out this project.
- About
- Features
- Requirements
- Installation
- Configuration file
- Supported languages
- Skill speech examples
- Project plan
- Third party notices
- License
This is a Jellyfin plugin for an Alexa skill to play media from your Jellyfin server. Besides, simple playback, other additional functions like playback of playlists or managing favorites are included.
- playback control:
- play a specific media
- play media from an artist
- pause/resume/stop/cancel a playback
- play previous/next song in queue
- playlist:
- play a specific playlist
- favorite:
- play favorite media
- add media to favorites
- remove media from favorites
- other:
- multi-language support (see Supported languages)
- multi-user support (any user on the Jellyfin server can use the skill)
- multi-alexa-user support, allow different Amazon Alexa accounts use the skill
Note: currently only audio is a supported media type
If you have a feature idea, use this issue template to suggest your idea for implementation.
Before you continue, make sure you meet the following requirements:
- Jellyfin server: 10.8+
- Amazon developer account
- publicly accessible Jellyfin server with a domain and a valid SSL certificate
- You can either use the prebuilds or build the plugin by yourself:
- Use prebuilds, here you have also two options:
- Use the plugin repository (recommend):
- Open the admin dashboard of your Jellyfin server.
- Go to Plugins and select the
Repositories
tab. - Add a new repository with the following URL (name can be anything):
https://raw.githubusercontent.com/infinityofspace/jellyfin-alexa-plugin/master/manifest.json
- Now you can find the plugin under the
General
category in theCatalog
tab.
- Manually download the latest release:
- Download the lastes release from the releases page.
- Extract the zip file.
- Copy the folder
Jellyfin.Plugin.AlexaSkill
of the extracted zip to theplugins
folder of your Jellyfin server.
- Use the plugin repository (recommend):
- Build the plugin by yourself:
- Ensure you have .NET Core 6.0 SDK setup and installed.
- Clone the repository and checkout the latest release tag:
git clone https://github.com/infinityofspace/jellyfin-alexa-plugin.git cd jellyfin-alexa-plugin git checkout <version>
- Build plugin with the following command:
dotnet publish --configuration Release
- Create a folder named
Jellyfin.Plugin.AlexaSkill
inside theplugins
folder of your Jellyfin server data folder. - Copy everything from the folder
Jellyfin.Plugin.AlexaSkill/bin/Release/net6.0/publish/
to the previously created folderJellyfin.Plugin.AlexaSkill
in your Jellyfin serverplugin
directory.
- Use prebuilds, here you have also two options:
- Restart your Jellyfin server.
- Go to the plugin settings page and configure the plugin. You can find here more details on how to fill out the required values and configure the plugin.
- Now go into your Alexa app and link your desired Jellyfin account.
- You are now ready to use the skill. Let's start the skill with "Alexa, start Jellyfin Player" (assuming the invocation name has not been customized).
The skill saves data in the plugin config xml file, which is located at plugins/configurations
path in your root Jellyfin folder and named Jellyfin.Plugin.AlexaSkill.xml
.
The skill has support for the following languages:
- English
- German (no localized Alexa responses)
The wiki contains examples how to interact with the skill.
Take a look at the project plan to see what features and bug fixes are planned and in progress.
Module | License | Project |
---|---|---|
Alexa.NET | License | Project |
Alexa.NET.Management | License | Project |
Amazon.Lambda.Core | License | Project |
Amazon.Lambda.Serialization.Json | License | Project |
Microsoft.Extensions.Logging.Console | License | Project |
Jellyfin.Controller | License | Project |
Jellyfin.Model | License | Project |
Furthermore, this readme file contains embeddings of Shields.io.