# Jellyfin

> Search and browse your own Jellyfin media server: find films, shows and music, see what's new, what to continue and what's next up, mark things played or favourite, manage playlists, and see what's playing now.

App · 20 actions. Web page: https://docs.lodol.com/docs/integrations/jellyfin

## Actions

### Add to favourites

Add a film, show, episode, song, album or artist to your Jellyfin account's favourites.

**Inputs**

- Item (`item`, text, required): The film, show, episode, song or album: its exact name, its link from Jellyfin, or an item an earlier step found, such as Search media.

**Outputs**

- `favourite` (true/false): Whether it's one of your account's favourites now.
- `id` (text): Jellyfin's id for it, which every other Jellyfin step takes.
- `last_played_at` (text): When your account last played it. Null when never.
- `name` (text): Its title.
- `play_count` (number): How many times your account has played it.
- `played` (true/false): Whether your account has played it now.
- `web_url` (text): Its page in Jellyfin, to open in a browser.

**Example output**

```json
{
  "favourite": true,
  "id": "c7eb95d14156c803611cf4a78ac469f6",
  "last_played_at": null,
  "name": "Caminandes: Llamigos",
  "play_count": 0,
  "played": false,
  "web_url": "https://jellyfin.example.com/web/#/details?id=c7eb95d14156c803611cf4a78ac469f6&serverId=f0b3381645f04afb9a0e392e74b6a1b0"
}
```

### Add to playlist

Add films, episodes or songs to the end of a Jellyfin playlist.

**Inputs**

- Playlist (`playlist`, text, required): Pick a playlist, or use one an earlier step created. Its name works too.
- Items (`items`, list, required): What to add: names, links from Jellyfin, or items from an earlier step, one per line.

**Outputs**

- `added` (number): How many items were added.
- `date_added` (text): When it was made, e.g. 2026-10-16T02:40:23Z.
- `id` (text): Jellyfin's id for it, which every other Jellyfin step takes.
- `image_url` (text): Its poster or cover picture. Null when it has none.
- `item_count` (number): How many items are in it.
- `name` (text): The playlist's name.
- `runtime_minutes` (number): How long it plays in minutes. Null when it's empty.
- `web_url` (text): Its page in Jellyfin, to open in a browser.

**Example output**

```json
{
  "added": 2,
  "date_added": "2026-10-16T02:40:23Z",
  "id": "561df1c258ffd3ded7afb0c7ebdd9267",
  "image_url": "https://jellyfin.example.com/Items/561df1c258ffd3ded7afb0c7ebdd9267/Images/Primary?tag=8bb157cd8899b9377ef72d4626fac059",
  "item_count": 3,
  "name": "Lodol QA playlist",
  "runtime_minutes": 9.9,
  "web_url": "https://jellyfin.example.com/web/#/details?id=561df1c258ffd3ded7afb0c7ebdd9267&serverId=f0b3381645f04afb9a0e392e74b6a1b0"
}
```

### Create playlist

Make a new playlist in Jellyfin for your account, empty or with the films, episodes or songs you choose.

**Inputs**

- Name (`name`, text, required): What to call the playlist.
- Items (`items`, list): What to put in it: names, links from Jellyfin, or items from an earlier step, one per line.
- Public (`public`, true/false): Let everyone on the Jellyfin server see and play it. Off keeps it to your account. Default: `false`.

**Outputs**

- `date_added` (text): When it was made, e.g. 2026-10-16T02:40:23Z.
- `id` (text): Jellyfin's id for it, which every other Jellyfin step takes.
- `image_url` (text): Its poster or cover picture. Null when it has none.
- `item_count` (number): How many items are in it.
- `name` (text): The playlist's name.
- `runtime_minutes` (number): How long it plays in minutes. Null when it's empty.
- `web_url` (text): Its page in Jellyfin, to open in a browser.

**Example output**

```json
{
  "date_added": "2026-10-16T02:40:23Z",
  "id": "561df1c258ffd3ded7afb0c7ebdd9267",
  "image_url": null,
  "item_count": 1,
  "name": "Lodol QA playlist",
  "runtime_minutes": 4.5,
  "web_url": "https://jellyfin.example.com/web/#/details?id=561df1c258ffd3ded7afb0c7ebdd9267&serverId=f0b3381645f04afb9a0e392e74b6a1b0"
}
```

### Delete playlist

Delete a Jellyfin playlist your account made. The films and songs in it stay on the server.

**Inputs**

- Playlist (`playlist`, text, required): Pick a playlist, or use one an earlier step created. Its name works too.

**Outputs**

- `deleted` (true/false): True once the playlist is gone.
- `id` (text): The deleted playlist's id.
- `name` (text): The deleted playlist's name.

**Example output**

```json
{
  "deleted": true,
  "id": "561df1c258ffd3ded7afb0c7ebdd9267",
  "name": "Lodol QA playlist"
}
```

### Find similar titles

Find films, shows or music on your Jellyfin server that are like one you choose, for a 'more like this' suggestion.

**Inputs**

- Item (`item`, text, required): The film, show, episode, song or album: its exact name, its link from Jellyfin, or an item an earlier step found, such as Search media.
- Results (`limit`, number): How many to return, up to 50. From 1 to 50. Default: `10`.

**Outputs**

- `count` (number): How many are in this answer.
- `items` (list): The most similar first.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "age_rating": null,
      "album": null,
      "album_artist": null,
      "artists": [],
      "child_count": null,
      "community_rating": 6.7,
      "critic_rating": null,
      "date_added": "2019-11-28T06:11:52Z",
      "episode_number": null,
      "favourite": false,
      "genres": [
        "Animation",
        "Comedy",
        "Family"
      ],
      "id": "c7eb95d14156c803611cf4a78ac469f6",
      "image_url": "https://jellyfin.example.com/Items/c7eb95d14156c803611cf4a78ac469f6/Images/Primary?tag=855efbac73978bd01e073cc19697dfac",
      "last_played_at": null,
      "name": "Caminandes: Llamigos",
      "overview": "In this episode of the Caminandes cartoon series we learn to know our hero Koro even better! It's winter in Patagonia, food is getting scarce. Koro the Llama engages with Oti the pesky penguin in an epic fight over that last tasty berry.  This short animation film was made with Blender and funded by the subscribers of the Blender Cloud platform. Already since 2007, Blender Institute successfully combines film and media production with improving a free and open source 3D creation pipeline.",
      "play_count": 0,
      "played": false,
      "progress_percent": null,
      "release_date": "2016-01-30",
      "resume_position": null,
      "runtime_minutes": 2.5,
      "season_number": null,
      "show_id": null,
      "show_name": null,
      "type": "Movie",
      "unplayed_count": null,
      "web_url": "https://jellyfin.example.com/web/#/details?id=c7eb95d14156c803611cf4a78ac469f6&serverId=f0b3381645f04afb9a0e392e74b6a1b0",
      "year": 2016
    }
  ]
}
```

### Get an item

Get everything Jellyfin knows about one film, show, episode, song or album: its summary, ratings, cast and crew, links to IMDb and others, and whether you've played it.

**Inputs**

- Item (`item`, text, required): The film, show, episode, song or album: its exact name, its link from Jellyfin, or an item an earlier step found, such as Search media.

**Outputs**

- `age_rating` (text): Its age rating, e.g. PG-13. Null when it has none.
- `album` (text): For a song, its album. Null otherwise.
- `album_artist` (text): For a song or album, the album's artist. Null otherwise.
- `artists` (list): For music, who performs it.
- `child_count` (number): How many things it holds: a show's seasons, a season's episodes, an album's songs. Null for a single film, episode or song.
- `community_rating` (number): Its audience rating out of 10, e.g. 7.2. Null when unrated.
- `critic_rating` (number): Its critics' score out of 100, e.g. 94. Null when unrated.
- `date_added` (text): When it was added to the server, e.g. 2025-02-22T17:39:47Z.
- `end_date` (text): For a show that ended, its last air date. Null otherwise.
- `episode_number` (number): For an episode, its number in the season. Null otherwise.
- `external_links` (list): Its pages on other sites, such as IMDb.
- `favourite` (true/false): Whether it's one of your account's favourites. Null when Jellyfin didn't say.
- `genres` (list): Its genres, e.g. Horror.
- `id` (text): Jellyfin's id for it, which every other Jellyfin step takes.
- `image_url` (text): Its poster or cover picture. Null when it has none.
- `last_played_at` (text): When your account last played it. Null when never.
- `name` (text): Its title.
- `overview` (text): The summary on its page. Null when there's none.
- `people` (list): Its cast and crew, in the order Jellyfin lists them.
- `play_count` (number): How many times your account has played it.
- `played` (true/false): Whether your account has played it to the end. Null when Jellyfin didn't say.
- `progress_percent` (number): How far through it your account is, e.g. 55.0: through the film or episode, or through a show's episodes. Null when not started.
- `release_date` (text): When it was first released or aired, e.g. 1931-02-12.
- `resume_position` (text): Where playback stopped, e.g. 0:53:54. Null when not started.
- `runtime_minutes` (number): How long it lasts in minutes, e.g. 74.4.
- `season_number` (number): For a season or episode, the season number. Null otherwise.
- `show_id` (text): For a season or episode, its show's id. Null otherwise.
- `show_name` (text): For a season or episode, its show. Null otherwise.
- `status` (text): For a show, Continuing or Ended. Null otherwise.
- `studios` (list): The studios or networks that made it.
- `tagline` (text): Its tagline. Null when it has none.
- `tags` (list): Its tags, e.g. vampire.
- `type` (text): What it is: Movie, Show, Season, Episode, Song, Album, Artist, Music video, Video, Collection, Playlist, Book, Audiobook or Photo.
- `unplayed_count` (number): For a show or season, how many episodes your account hasn't played. Null otherwise.
- `web_url` (text): Its page in Jellyfin, to open in a browser.
- `year` (number): The year it came out. Null when Jellyfin doesn't know.

**Example output**

```json
{
  "age_rating": "NR",
  "album": null,
  "album_artist": null,
  "artists": [],
  "child_count": null,
  "community_rating": 7.2,
  "critic_rating": 94,
  "date_added": "2025-02-22T17:39:47Z",
  "end_date": null,
  "episode_number": null,
  "external_links": [
    {
      "name": "IMDb",
      "url": "https://www.imdb.com/title/tt0021814"
    },
    {
      "name": "TMDB",
      "url": "https://www.themoviedb.org/movie/138"
    }
  ],
  "favourite": false,
  "genres": [
    "Horror"
  ],
  "id": "c002f0f88ee970cce7f138bbc925de64",
  "image_url": "https://jellyfin.example.com/Items/c002f0f88ee970cce7f138bbc925de64/Images/Primary?tag=50267d2518c172701a0c3e2f80a10a33",
  "last_played_at": "2026-10-16T01:59:27Z",
  "name": "Dracula",
  "overview": "British estate agent Renfield travels to Transylvania to meet the mysterious Count Dracula, who is interested in leasing a castle in London. After Dracula enslaves Renfield and drives him to insanity, the pair sail to London together and Dracula, a secret vampire, begins preying on London socialites.",
  "people": [
    {
      "kind": "Actor",
      "name": "Bela Lugosi",
      "role": "Count Dracula"
    },
    {
      "kind": "Actor",
      "name": "Helen Chandler",
      "role": "Mina Seward"
    },
    {
      "kind": "Actor",
      "name": "David Manners",
      "role": "John Harker"
    }
  ],
  "play_count": 22,
  "played": false,
  "progress_percent": null,
  "release_date": "1931-02-12",
  "resume_position": null,
  "runtime_minutes": 74.4,
  "season_number": null,
  "show_id": null,
  "show_name": null,
  "status": null,
  "studios": [
    "Universal Pictures"
  ],
  "tagline": "The story of the strangest passion the world has ever known!",
  "tags": [
    "monster",
    "based on novel or book",
    "transylvania",
    "vampire",
    "spider"
  ],
  "type": "Movie",
  "unplayed_count": null,
  "web_url": "https://jellyfin.example.com/web/#/details?id=c002f0f88ee970cce7f138bbc925de64&serverId=f0b3381645f04afb9a0e392e74b6a1b0",
  "year": 1931
}
```

### List a show's episodes

List the episodes of a TV show in Jellyfin, in order, for every season or one, with whether you've watched each.

**Inputs**

- Show (`show`, text, required): The TV show: its exact name, its link from Jellyfin, or a show an earlier step found.
- Season (`season`, number): Only this season's episodes, by number. Leave empty for every season. From 0 to 1000.
- Results (`limit`, number): How many to return, up to 200. From 1 to 200. Default: `200`.
- Page (`page`, number): Which page of results: 2 for the next lot after the first, and so on. At least 1. Default: `1`.

**Outputs**

- `count` (number): How many are in this answer.
- `episodes` (list): The episodes, by season and number.
- `has_more` (true/false): Whether there are more after these, on the next page.
- `show_id` (text): The show's id.
- `show_name` (text): The show's title.
- `total` (number): How many there are in all.

**Example output**

```json
{
  "count": 1,
  "episodes": [
    {
      "age_rating": null,
      "album": null,
      "album_artist": null,
      "artists": [],
      "child_count": null,
      "community_rating": 4.5,
      "critic_rating": null,
      "date_added": "2024-01-15T09:38:16Z",
      "episode_number": 1,
      "favourite": false,
      "genres": [],
      "id": "f717d85df782816c2ab75423e32f740b",
      "image_url": "https://jellyfin.example.com/Items/f717d85df782816c2ab75423e32f740b/Images/Primary?tag=745a7a9a17c6332bda53814ec489f281",
      "last_played_at": "2026-10-16T00:51:10Z",
      "name": "Earthfall",
      "overview": "An object from space spreads radiation over North America. Fearing terrorism, U.S. Homeland Security agents are dispatched to investigate and contain the damage. What they discover is a forgotten relic of the old Soviet space program, whose return to Earth will have implications for the entire world.",
      "play_count": 20,
      "played": true,
      "progress_percent": 15.3,
      "release_date": "2010-06-16",
      "resume_position": "0:04:49",
      "runtime_minutes": 31.6,
      "season_number": 1,
      "show_id": "9bd5926326d651153928e0d11c6ee7cb",
      "show_name": "Pioneer One",
      "type": "Episode",
      "unplayed_count": null,
      "web_url": "https://jellyfin.example.com/web/#/details?id=f717d85df782816c2ab75423e32f740b&serverId=f0b3381645f04afb9a0e392e74b6a1b0",
      "year": 2010
    }
  ],
  "has_more": true,
  "show_id": "9bd5926326d651153928e0d11c6ee7cb",
  "show_name": "Pioneer One",
  "total": 6
}
```

### List a show's seasons

List the seasons of a TV show in Jellyfin, with how many episodes each has and how many you haven't watched.

**Inputs**

- Show (`show`, text, required): The TV show: its exact name, its link from Jellyfin, or a show an earlier step found.

**Outputs**

- `count` (number): How many are in this answer.
- `seasons` (list): The seasons in order. Each one's episode count is child_count.
- `show_id` (text): The show's id.
- `show_name` (text): The show's title.

**Example output**

```json
{
  "count": 1,
  "seasons": [
    {
      "age_rating": null,
      "album": null,
      "album_artist": null,
      "artists": [],
      "child_count": 6,
      "community_rating": null,
      "critic_rating": null,
      "date_added": "2025-02-22T21:13:50Z",
      "episode_number": null,
      "favourite": false,
      "genres": [],
      "id": "c83a32158113f6961530bbc1bcf916a7",
      "image_url": "https://jellyfin.example.com/Items/9bd5926326d651153928e0d11c6ee7cb/Images/Primary?tag=b2dfa2770ea69e5bd933b4bf2784597a",
      "last_played_at": null,
      "name": "Season 1",
      "overview": null,
      "play_count": 0,
      "played": false,
      "progress_percent": 50.0,
      "release_date": "2010-06-16",
      "resume_position": null,
      "runtime_minutes": null,
      "season_number": 1,
      "show_id": "9bd5926326d651153928e0d11c6ee7cb",
      "show_name": "Pioneer One",
      "type": "Season",
      "unplayed_count": 3,
      "web_url": "https://jellyfin.example.com/web/#/details?id=c83a32158113f6961530bbc1bcf916a7&serverId=f0b3381645f04afb9a0e392e74b6a1b0",
      "year": 2010
    }
  ],
  "show_id": "9bd5926326d651153928e0d11c6ee7cb",
  "show_name": "Pioneer One"
}
```

### List continue watching

List what your Jellyfin account started but didn't finish, most recent first, with how far through each one you are.

**Inputs**

- What (`media`, text): Videos, audio, or both. One of: `video` (Films and episodes), `audio` (Music and audiobooks), `all` (Both). Default: `video`.
- Library (`library`, text): Only this library. Leave empty for all of them.
- Results (`limit`, number): How many to return, up to 200. From 1 to 200. Default: `25`.

**Outputs**

- `count` (number): How many are in this answer.
- `has_more` (true/false): Whether there are more after these, on the next page.
- `items` (list): The items found.
- `total` (number): How many there are in all.

**Example output**

```json
{
  "count": 1,
  "has_more": true,
  "items": [
    {
      "age_rating": null,
      "album": null,
      "album_artist": null,
      "artists": [],
      "child_count": null,
      "community_rating": 7.0,
      "critic_rating": 100,
      "date_added": "2019-11-04T02:33:12Z",
      "episode_number": null,
      "favourite": false,
      "genres": [
        "Western",
        "Crime",
        "Action",
        "Adventure"
      ],
      "id": "788ae1cdf3816e3441e29dd3a96ddfe1",
      "image_url": "https://jellyfin.example.com/Items/788ae1cdf3816e3441e29dd3a96ddfe1/Images/Primary?tag=b51cba302e12fbb69a511ed54e780e0f",
      "last_played_at": "2026-10-16T02:39:23Z",
      "name": "The Great Train Robbery",
      "overview": "After the train station clerk is assaulted and left bound and gagged, then the departing train and its passengers robbed, a posse goes in hot pursuit of the fleeing bandits.",
      "play_count": 16,
      "played": false,
      "progress_percent": 73.5,
      "release_date": "1903-12-07",
      "resume_position": "0:08:50",
      "runtime_minutes": 12.0,
      "season_number": null,
      "show_id": null,
      "show_name": null,
      "type": "Movie",
      "unplayed_count": null,
      "web_url": "https://jellyfin.example.com/web/#/details?id=788ae1cdf3816e3441e29dd3a96ddfe1&serverId=f0b3381645f04afb9a0e392e74b6a1b0",
      "year": 1903
    }
  ],
  "total": 11
}
```

### List libraries

List the libraries your Jellyfin account can see, such as Movies, Shows and Music, with a link to each.

**Inputs**: None.

**Outputs**

- `count` (number): How many are in this answer.
- `libraries` (list): The libraries, in Jellyfin's order.

**Example output**

```json
{
  "count": 2,
  "libraries": [
    {
      "id": "f137a2dd21bbc1b99aa5c0f6bf02a805",
      "image_url": "https://jellyfin.example.com/Items/f137a2dd21bbc1b99aa5c0f6bf02a805/Images/Primary?tag=d310357b87ab68c0c8a1193ae9541af8",
      "name": "Movies",
      "type": "Movies",
      "web_url": "https://jellyfin.example.com/web/#/movies?topParentId=f137a2dd21bbc1b99aa5c0f6bf02a805&collectionType=movies"
    },
    {
      "id": "a656b907eb3a73532e40e44b968d0225",
      "image_url": "https://jellyfin.example.com/Items/a656b907eb3a73532e40e44b968d0225/Images/Primary?tag=b8fdaa13b769b06ff9ee4d76c1c454ef",
      "name": "Shows",
      "type": "Shows",
      "web_url": "https://jellyfin.example.com/web/#/tv?topParentId=a656b907eb3a73532e40e44b968d0225&collectionType=tvshows"
    }
  ]
}
```

### List next up

List the next episode to watch of each show your Jellyfin account is part way through, or of one show.

**Inputs**

- Show (`show`, text): Only this show. Leave empty for every show.
- Results (`limit`, number): How many to return, up to 200. From 1 to 200. Default: `25`.

**Outputs**

- `count` (number): How many are in this answer.
- `has_more` (true/false): Whether there are more after these, on the next page.
- `items` (list): The items found.
- `total` (number): How many there are in all.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "age_rating": null,
      "album": null,
      "album_artist": null,
      "artists": [],
      "child_count": null,
      "community_rating": 5.0,
      "critic_rating": null,
      "date_added": "2024-01-15T05:10:36Z",
      "episode_number": 4,
      "favourite": false,
      "genres": [
        "Drama",
        "Sci-Fi"
      ],
      "id": "99b215aae1784e8d3ada93001ebe686f",
      "image_url": "https://jellyfin.example.com/Items/99b215aae1784e8d3ada93001ebe686f/Images/Primary?tag=9ce442af79c99c03498d06d4fb3264f7",
      "last_played_at": "2026-10-16T02:00:12Z",
      "name": "Triangular Diplomacy",
      "overview": "As the media begins to question the story about the crashed satellite, Secretary McClellan (Einar Gunn) starts to play hardball with the Russians in pursuit of his own truth. But everything hinges on what Yuri (Aleksandr Evtushenko), the frightened boy at the center of it all, might have to say...",
      "play_count": 40,
      "played": false,
      "progress_percent": 20.8,
      "release_date": "2011-04-28",
      "resume_position": "0:07:08",
      "runtime_minutes": 34.3,
      "season_number": 1,
      "show_id": "9bd5926326d651153928e0d11c6ee7cb",
      "show_name": "Pioneer One",
      "type": "Episode",
      "unplayed_count": null,
      "web_url": "https://jellyfin.example.com/web/#/details?id=99b215aae1784e8d3ada93001ebe686f&serverId=f0b3381645f04afb9a0e392e74b6a1b0",
      "year": 2011
    }
  ],
  "total": 1
}
```

### List playlist items

List what's in a Jellyfin playlist, in playing order.

**Inputs**

- Playlist (`playlist`, text, required): Pick a playlist, or use one an earlier step created. Its name works too.
- Results (`limit`, number): How many to return, up to 200. From 1 to 200. Default: `200`.
- Page (`page`, number): Which page of results: 2 for the next lot after the first, and so on. At least 1. Default: `1`.

**Outputs**

- `count` (number): How many are in this answer.
- `has_more` (true/false): Whether there are more after these, on the next page.
- `items` (list): What's in it, in playing order.
- `playlist_id` (text): The playlist's id.
- `playlist_name` (text): The playlist's name.
- `total` (number): How many there are in all.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "age_rating": null,
      "album": "You Can't Stop Da Funk",
      "album_artist": "Binaerpilot",
      "artists": [
        "Binaerpilot"
      ],
      "child_count": null,
      "community_rating": null,
      "critic_rating": null,
      "date_added": "2019-11-28T06:07:13Z",
      "episode_number": null,
      "favourite": false,
      "genres": [
        "Electronic"
      ],
      "id": "a794b7c125d436df8dc2d870ad7b7e1e",
      "image_url": "https://jellyfin.example.com/Items/f21ea9ece4e6e26ec26ebfb81b82ad78/Images/Primary?tag=95b159065964e1210d8c39d255920ebc",
      "last_played_at": "2026-10-16T01:10:43Z",
      "name": "Bend",
      "overview": null,
      "play_count": 31,
      "played": true,
      "progress_percent": null,
      "release_date": "2006-01-01",
      "resume_position": null,
      "runtime_minutes": 4.5,
      "season_number": null,
      "show_id": null,
      "show_name": null,
      "type": "Song",
      "unplayed_count": null,
      "web_url": "https://jellyfin.example.com/web/#/details?id=a794b7c125d436df8dc2d870ad7b7e1e&serverId=f0b3381645f04afb9a0e392e74b6a1b0",
      "year": 2006
    }
  ],
  "playlist_id": "561df1c258ffd3ded7afb0c7ebdd9267",
  "playlist_name": "Lodol QA playlist",
  "total": 1
}
```

### List playlists

List the playlists your Jellyfin account can see, A to Z, with how many items each holds.

**Inputs**: None.

**Outputs**

- `count` (number): How many are in this answer.
- `playlists` (list): The playlists, A to Z.

**Example output**

```json
{
  "count": 1,
  "playlists": [
    {
      "date_added": "2025-10-25T21:11:27Z",
      "id": "d970eee82134b487f1df37d753fab1f9",
      "image_url": "https://jellyfin.example.com/Items/d970eee82134b487f1df37d753fab1f9/Images/Primary?tag=2f09f0b94ec7e929ccb390a555ea36bc",
      "item_count": 3,
      "name": "Binaerpilot",
      "runtime_minutes": 9.0,
      "web_url": "https://jellyfin.example.com/web/#/details?id=d970eee82134b487f1df37d753fab1f9&serverId=f0b3381645f04afb9a0e392e74b6a1b0"
    }
  ]
}
```

### List recently added

List what was added to your Jellyfin server most recently, newest first: by default films, episodes and albums. Set Added after to get only what's new since then.

**Inputs**

- Kinds (`item_types`, list): Which kinds of item to include. One or more of: `movies`, `shows`, `episodes`, `albums`, `artists`, `songs`, `music_videos` (Music videos), `other_videos` (Other videos), `collections`, `playlists`, and 3 more. Default: `["movies", "episodes", "albums"]`.
- Library (`library`, text): Only this library. Leave empty for all of them.
- Added after (`added_after`, date and time): Only what was added after this moment, such as the time of the last run.
- Results (`limit`, number): How many to return, up to 200. From 1 to 200. Default: `25`.

**Outputs**

- `count` (number): How many are in this answer.
- `items` (list): What was added, newest first.

**Example output**

```json
{
  "count": 1,
  "items": [
    {
      "age_rating": null,
      "album": null,
      "album_artist": null,
      "artists": [],
      "child_count": null,
      "community_rating": 7.2,
      "critic_rating": 92,
      "date_added": "2025-02-22T17:37:07Z",
      "episode_number": null,
      "favourite": false,
      "genres": [
        "Adventure",
        "War"
      ],
      "id": "70853c7dde5e5759b151cd76876ab6c2",
      "image_url": "https://jellyfin.example.com/Items/70853c7dde5e5759b151cd76876ab6c2/Images/Primary?tag=d09bbce8bddfa33156e62bfea6dffee6",
      "last_played_at": "2026-10-16T01:23:10Z",
      "name": "Sahara",
      "overview": "In Libya, an American tank commander, along with a handful of Allied soldiers, tries to defend an isolated well with a limited supply of water from a German Afrika Korps battalion during the Western Desert Campaign of World War II.",
      "play_count": 21,
      "played": true,
      "progress_percent": 55.0,
      "release_date": "1943-09-22",
      "resume_position": "0:53:54",
      "runtime_minutes": 98.0,
      "season_number": null,
      "show_id": null,
      "show_name": null,
      "type": "Movie",
      "unplayed_count": null,
      "web_url": "https://jellyfin.example.com/web/#/details?id=70853c7dde5e5759b151cd76876ab6c2&serverId=f0b3381645f04afb9a0e392e74b6a1b0",
      "year": 1943
    }
  ]
}
```

### List what's playing now

See what's playing on Jellyfin right now: who is watching or listening, on which device, and how far through they are. An administrator account sees everyone; others see only their own.

**Inputs**: None.

**Outputs**

- `count` (number): How many are in this answer.
- `sessions` (list): One entry for each device playing.

**Example output**

```json
{
  "count": 1,
  "sessions": [
    {
      "app": "Jellyfin Web",
      "device": "Firefox",
      "item": {
        "age_rating": null,
        "album": "Promo",
        "album_artist": "Binaerpilot",
        "artists": [
          "Binaerpilot"
        ],
        "child_count": null,
        "community_rating": null,
        "critic_rating": null,
        "date_added": "2019-11-28T06:07:05Z",
        "episode_number": null,
        "favourite": null,
        "genres": [
          "Electronic"
        ],
        "id": "933e3a903b3ea327b4acfbeb46445b92",
        "image_url": "https://jellyfin.example.com/Items/920673748d7c8a4aa03144614f1f947f/Images/Primary?tag=dcdaa02d4c5425aa20d7dbd3dc0df5fc",
        "last_played_at": null,
        "name": "Thunderdays",
        "overview": null,
        "play_count": null,
        "played": null,
        "progress_percent": null,
        "release_date": null,
        "resume_position": null,
        "runtime_minutes": 2.4,
        "season_number": null,
        "show_id": null,
        "show_name": null,
        "type": "Song",
        "unplayed_count": null,
        "web_url": "https://jellyfin.example.com/web/#/details?id=933e3a903b3ea327b4acfbeb46445b92&serverId=f0b3381645f04afb9a0e392e74b6a1b0",
        "year": null
      },
      "last_activity_at": "2026-10-16T02:42:28Z",
      "paused": true,
      "playback": "Direct play",
      "position": "0:00:04",
      "progress_percent": 3.1,
      "user": "demo"
    }
  ]
}
```

### Mark as played

Mark a film, episode or song as played (watched) for your Jellyfin account. Marking a show or season marks every episode in it.

**Inputs**

- Item (`item`, text, required): The film, show, episode, song or album: its exact name, its link from Jellyfin, or an item an earlier step found, such as Search media.
- Played at (`played_at`, date and time): When it was played. Leave empty for now.

**Outputs**

- `favourite` (true/false): Whether it's one of your account's favourites now.
- `id` (text): Jellyfin's id for it, which every other Jellyfin step takes.
- `last_played_at` (text): When your account last played it. Null when never.
- `name` (text): Its title.
- `play_count` (number): How many times your account has played it.
- `played` (true/false): Whether your account has played it now.
- `web_url` (text): Its page in Jellyfin, to open in a browser.

**Example output**

```json
{
  "favourite": false,
  "id": "c7eb95d14156c803611cf4a78ac469f6",
  "last_played_at": "2026-10-16T02:00:00Z",
  "name": "Caminandes: Llamigos",
  "play_count": 1,
  "played": true,
  "web_url": "https://jellyfin.example.com/web/#/details?id=c7eb95d14156c803611cf4a78ac469f6&serverId=f0b3381645f04afb9a0e392e74b6a1b0"
}
```

### Mark as unplayed

Mark a film, episode or song as not played for your Jellyfin account, clearing its play count. Marking a show or season marks every episode in it.

**Inputs**

- Item (`item`, text, required): The film, show, episode, song or album: its exact name, its link from Jellyfin, or an item an earlier step found, such as Search media.

**Outputs**

- `favourite` (true/false): Whether it's one of your account's favourites now.
- `id` (text): Jellyfin's id for it, which every other Jellyfin step takes.
- `last_played_at` (text): When your account last played it. Null when never.
- `name` (text): Its title.
- `play_count` (number): How many times your account has played it.
- `played` (true/false): Whether your account has played it now.
- `web_url` (text): Its page in Jellyfin, to open in a browser.

**Example output**

```json
{
  "favourite": false,
  "id": "c7eb95d14156c803611cf4a78ac469f6",
  "last_played_at": null,
  "name": "Caminandes: Llamigos",
  "play_count": 0,
  "played": false,
  "web_url": "https://jellyfin.example.com/web/#/details?id=c7eb95d14156c803611cf4a78ac469f6&serverId=f0b3381645f04afb9a0e392e74b6a1b0"
}
```

### Remove from favourites

Take a film, show, episode, song, album or artist out of your Jellyfin account's favourites.

**Inputs**

- Item (`item`, text, required): The film, show, episode, song or album: its exact name, its link from Jellyfin, or an item an earlier step found, such as Search media.

**Outputs**

- `favourite` (true/false): Whether it's one of your account's favourites now.
- `id` (text): Jellyfin's id for it, which every other Jellyfin step takes.
- `last_played_at` (text): When your account last played it. Null when never.
- `name` (text): Its title.
- `play_count` (number): How many times your account has played it.
- `played` (true/false): Whether your account has played it now.
- `web_url` (text): Its page in Jellyfin, to open in a browser.

**Example output**

```json
{
  "favourite": false,
  "id": "c7eb95d14156c803611cf4a78ac469f6",
  "last_played_at": null,
  "name": "Caminandes: Llamigos",
  "play_count": 0,
  "played": false,
  "web_url": "https://jellyfin.example.com/web/#/details?id=c7eb95d14156c803611cf4a78ac469f6&serverId=f0b3381645f04afb9a0e392e74b6a1b0"
}
```

### Remove from playlist

Take films, episodes or songs out of a Jellyfin playlist. An item that's in it more than once is taken out every time.

**Inputs**

- Playlist (`playlist`, text, required): Pick a playlist, or use one an earlier step created. Its name works too.
- Items (`items`, list, required): What to take out: names, links from Jellyfin, or items from an earlier step, one per line.

**Outputs**

- `date_added` (text): When it was made, e.g. 2026-10-16T02:40:23Z.
- `id` (text): Jellyfin's id for it, which every other Jellyfin step takes.
- `image_url` (text): Its poster or cover picture. Null when it has none.
- `item_count` (number): How many items are in it.
- `name` (text): The playlist's name.
- `removed` (number): How many entries were taken out.
- `runtime_minutes` (number): How long it plays in minutes. Null when it's empty.
- `web_url` (text): Its page in Jellyfin, to open in a browser.

**Example output**

```json
{
  "date_added": "2026-10-16T02:40:23Z",
  "id": "561df1c258ffd3ded7afb0c7ebdd9267",
  "image_url": "https://jellyfin.example.com/Items/561df1c258ffd3ded7afb0c7ebdd9267/Images/Primary?tag=8bb157cd8899b9377ef72d4626fac059",
  "item_count": 2,
  "name": "Lodol QA playlist",
  "removed": 1,
  "runtime_minutes": 7.5,
  "web_url": "https://jellyfin.example.com/web/#/details?id=561df1c258ffd3ded7afb0c7ebdd9267&serverId=f0b3381645f04afb9a0e392e74b6a1b0"
}
```

### Search media

Find films, shows, episodes, music and more on your Jellyfin server by title, kind, library, genre, year, actor, or whether you've played or favourited them, sorted the way you choose.

**Inputs**

- Title contains (`search_text`, text): Words in the title, e.g. dead. Leave empty to list everything that matches the other choices.
- Kinds (`item_types`, list): Which kinds of item to include. Leave empty for all of them. One or more of: `movies`, `shows`, `episodes`, `albums`, `artists`, `songs`, `music_videos` (Music videos), `other_videos` (Other videos), `collections`, `playlists`, and 3 more.
- Library (`library`, text): Only this library. Leave empty for all of them.
- Genres (`genres`, list): Only items in any of these genres. Leave empty for every genre.
- With person (`person`, text): Only titles this actor, director or writer worked on, by their full name.
- From year (`year_from`, number): Only titles from this year or later. From 1870 to 2100.
- To year (`year_to`, number): Only titles from this year or earlier. From 1870 to 2100.
- Played (`played`, text): Whether your account has played them. One of: `any` (Played or not), `unplayed` (Not played yet), `played` (Already played). Default: `any`.
- Favourites only (`favourites_only`, true/false): Only items in your account's favourites. Default: `false`.
- Sort by (`sort`, text): The order they come back in. One of: `name` (Name, A to Z), `recently_added` (Recently added first), `newest` (Newest releases first), `oldest` (Oldest releases first), `top_rated` (Highest rated first), `recently_played` (Recently played first), `most_played` (Most played first), `shortest` (Shortest first), `random` (Random order). Default: `name`.
- Results (`limit`, number): How many to return, up to 200. From 1 to 200. Default: `25`.
- Page (`page`, number): Which page of results: 2 for the next lot after the first, and so on. At least 1. Default: `1`.

**Outputs**

- `count` (number): How many are in this answer.
- `has_more` (true/false): Whether there are more after these, on the next page.
- `items` (list): The items found, in the order asked for.
- `page` (number): Which page of results this is.
- `total` (number): How many there are in all.

**Example output**

```json
{
  "count": 1,
  "has_more": true,
  "items": [
    {
      "age_rating": "NR",
      "album": null,
      "album_artist": null,
      "artists": [],
      "child_count": null,
      "community_rating": 7.6,
      "critic_rating": 95,
      "date_added": "2019-11-04T02:41:47Z",
      "episode_number": null,
      "favourite": false,
      "genres": [
        "Horror",
        "Thriller"
      ],
      "id": "5e6e8380563c5211106652362c5c6843",
      "image_url": "https://jellyfin.example.com/Items/5e6e8380563c5211106652362c5c6843/Images/Primary?tag=16531639600ebf2344b629860bb877e9",
      "last_played_at": "2026-10-16T00:48:34Z",
      "name": "Night of the Living Dead",
      "overview": "A group of strangers trapped in a farmhouse find themselves fending off a horde of recently dead, flesh-eating ghouls.",
      "play_count": 61,
      "played": true,
      "progress_percent": 7.5,
      "release_date": "1968-10-04",
      "resume_position": "0:07:07",
      "runtime_minutes": 95.3,
      "season_number": null,
      "show_id": null,
      "show_name": null,
      "type": "Movie",
      "unplayed_count": null,
      "web_url": "https://jellyfin.example.com/web/#/details?id=5e6e8380563c5211106652362c5c6843&serverId=f0b3381645f04afb9a0e392e74b6a1b0",
      "year": 1968
    }
  ],
  "page": 1,
  "total": 2
}
```
