Releases: manuel-rw/jellyfin-discord-music-bot
1.2.0: Support for playing artists, persist volume accross tracks
Features
-
Added the possibility to search for artists: The bot now can search for artists and will play all of their tracks if selected. By default,
/playwill search for all types, including artists. You can manually search only for artists by setting thetypeparameter to Artist.

-
Persist track volume across tracks: The
/volumecommand now saves the entered percentage in memory and adjusts all tracks.
Fixes
- Previously,
/playwould display an incorrect duration, such as-03:21:00. This was fixed and now the correct duration will be displayed (.e.g03:21:00).
Other
- Updated
README.mdwith an animated preview - Updated WIKI with updated information regarding on how to update and how to install the bot.
- Fix code smells and reduce technical debt
How to update
See https://github.com/manuel-rw/jellyfin-discord-music-bot/wiki/Bot-Installation#updating-1 (or your respective guide for the method) on how to update.
Full changelog
- fix: code smells by @manuel-rw in #465
- chore: upgrade dependencies by @manuel-rw in #466
- refactor: replace template strings with regular string literals by @deepsource-autofix[bot] in #467
- chore: fix code smells by @manuel-rw in #468
- feat: update discord sdk by @manuel-rw in #462
- chore: update jellyfin sdk by @manuel-rw in #461
- experiment: esm by @manuel-rw in #472
- fix: prettier formatting by @manuel-rw in #473
- fix: deepsource coverage input by @manuel-rw in #475
- fix: use v8 lcov by @manuel-rw in #476
- feat: add jetbrains run profiles by @manuel-rw in #474
- docs: add demo video by @manuel-rw in #471
- docs: update readme by @manuel-rw in #477
- docs: update readme by @manuel-rw in #478
- chore:(deps): bump node from 24-alpine to 25-alpine by @dependabot[bot] in #453
- feat: persist volume accross tracks by @manuel-rw in #469
- Update README with new features and commands by @manuel-rw in #479
- chore: bump body-parser from 2.2.0 to 2.2.1 by @dependabot[bot] in #480
- fix: duration display by @manuel-rw in #485
- feat: improved not playable error message by @manuel-rw in #486
- feat: add artist item and translation by @manuel-rw in #483
- refactor: move model files by @manuel-rw in #487
Full Changelog: 1.1.0...1.2.0
1.1.0: Shuffle command, auto leave after play and miscellaneous bug fixes
New Commands
- Added
/sufflevia feature: shuffle command by @Uo1428 in #338
Features
Bug fixes
-
Drop only broken items for broken search results by @sxvghd in #440
-
fix: #454 playlist order by @manuel-rw in #460
-
Fixed reverse order to albums and playlists. by @davidpk18 in #463
-
feat: add play next param by @manuel-rw in #321
Other
- Update @discordjs/voice to 0.18.0 by @sxvghd in #439
- fix: deepsource dsn by @manuel-rw in #459
Dependency Updates
Click here for dependency updates
- Bump micromatch from 4.0.5 to 4.0.8 by @dependabot[bot] in #332
- 🚀(deps): Bump node from 18-alpine to 24-alpine by @dependabot[bot] in #427
- build(deps): bump @nestjs/common from 9.4.3 to 10.4.16 by @dependabot[bot] in #419
- ⬆️(deps-dev): bump @types/express from 5.0.0 to 5.0.3 by @dependabot[bot] in #445
- build(deps): bump axios from 1.8.2 to 1.12.0 by @dependabot[bot] in #452
- build(deps): bump formidable from 3.5.1 to 3.5.4 by @dependabot[bot] in #424
- ⬆️(deps-dev): Bump ts-jest from 29.1.5 to 29.3.4 by @dependabot[bot] in #435
- build(deps): bump @babel/runtime from 7.23.1 to 7.27.0 by @dependabot[bot] in #412
- ⬆️(deps): Bump rimraf from 5.0.7 to 6.0.1 by @dependabot[bot] in #391
- ⬆️(deps): Bump @discord-nestjs/core from 5.3.14 to 5.5.1 by @dependabot[bot] in #438
- ⬆️(deps-dev): Bump typescript from 5.3.3 to 5.6.3 by @dependabot[bot] in #341
- ⬆️(deps): Bump joi from 17.13.1 to 17.13.3 by @dependabot[bot] in #325
- ⬆️(deps): Bump uuid from 9.0.1 to 10.0.0 by @dependabot[bot] in #326
- ⬆️(deps): Bump @nestjs/schedule from 4.0.0 to 4.1.1 by @dependabot[bot] in #342
- ⬆️(deps-dev): Bump prettier from 3.1.0 to 3.3.3 by @dependabot[bot] in #329
- chore: upgrade axios by @manuel-rw in #344
- ⬆️(deps): Bump zod-validation-error from 2.1.0 to 3.4.0 by @dependabot[bot] in #349
- ⬆️(deps-dev): Bump eslint-plugin-prettier from 5.1.3 to 5.2.1 by @dependabot[bot] in #348
- ⬆️(deps): Bump libsodium-wrappers from 0.7.13 to 0.7.15 by @dependabot[bot] in #353
- ⬆️(deps-dev): Bump @types/express from 4.17.21 to 5.0.0 by @dependabot[bot] in #355
- ⬆️(deps): Bump discord.js from 14.15.2 to 14.16.3 by @dependabot[bot] in #346
- ⬆️(deps): Bump uuid from 10.0.0 to 11.0.5 by @dependabot[bot] in #382
- ⬆️ Bump cross-spawn from 7.0.3 to 7.0.6 by @dependabot[bot] in #371
- ⬆️(deps-dev): Bump @nestjs/cli from 10.3.2 to 11.0.2 by @dependabot[bot] in #388
- ⬆️(deps): Bump zod from 3.23.8 to 3.24.2 by @dependabot[bot] in #395
- build(deps): bump axios from 1.7.7 to 1.8.2 by @dependabot[bot] in #404
- build(deps): bump serialize-javascript from 6.0.1 to 6.0.2 by @dependabot[bot] in #396
- ⬆️(deps-dev): Bump @types/cron from 2.4.0 to 2.4.3 by @dependabot[bot] in #368
- ⬆️(deps-dev): Bump @types/node from 20.14.0 to 22.15.21 by @dependabot[bot] in #437
- build(deps): bump axios from 0.27.2 to 1.13.2 by @dependabot[bot] in #458
- ⬆️(deps): Bump @nestjs/terminus from 9.2.2 to 10.2.3 by @dependabot[bot] in #304
- ⬆️(deps-dev): Bump @types/node from 20.11.0 to 20.14.0 by @dependabot[bot] in #306
- ⬆️(deps): Bump @discord-nestjs/core from 5.3.12 to 5.3.14 by @dependabot[bot] in #305
- ⬆️(deps): Bump ws from 8.16.0 to 8.17.0 by @dependabot[bot] in #303
- ⬆️(deps): Bump @nestjs/event-emitter from 2.0.3 to 2.0.4 by @dependabot[bot] in #311
- ⬆️(deps): Bump @nestjs/config from 3.1.1 to 3.2.2 by @dependabot[bot] in #310
- ⬆️(deps-dev): Bump @types/jest from 29.5.11 to 29.5.12 by @dependabot[bot] in #309
- ⬆️(deps-dev): Bump ts-node from 10.9.1 to 10.9.2 by @dependabot[bot] in #308
- Bump braces from 3.0.2 to 3.0.3 by @dependabot[bot] in #312
- Bump ws from 8.17.0 to 8.17.1 by @dependabot[bot] in #320
- ⬆️(deps): Bump rimraf from 5.0.5 to 5.0.7 by @dependabot[bot] in #317
- ⬆️(deps-dev): Bump supertest from 6.3.3 to 7.0.0 by @dependabot[bot] in #315
- ⬆️(deps): Bump zod from 3.22.4 to 3.23.8 by @dependabot[bot] in #316
- ⬆️(deps): Bump joi from 17.12.3 to 17.13.1 by @dependabot[bot] in #314
- ⬆️(deps-dev): Bump ts-jest from 29.1.1 to 29.1.5 by @dependabot[bot] in #313
New Contributors
- @7eventy7 made their first contribution in #301
- @Uo1428 made their first contribution in #336
- @sxvghd made their first contribution in #439
- @davidpk18 made their first contribution in #463
Full Changelog: 1.0.0...1.1.0
Support for Jellyfin 10.9.2 and latest Discord
What's Changed
- ⬆️(deps-dev): Bump @types/node from 20.10.6 to 20.11.0 by @dependabot in #282
- ⬆️(deps-dev): Bump @nestjs/cli from 9.5.0 to 10.3.2 by @dependabot in #285
- Bump follow-redirects from 1.15.3 to 1.15.4 by @dependabot in #280
- ⬆️(deps): Bump reflect-metadata from 0.1.13 to 0.1.14 by @dependabot in #276
- ⬆️(deps-dev): Bump eslint-plugin-prettier from 5.0.1 to 5.1.3 by @dependabot in #283
- Bump tar from 6.2.0 to 6.2.1 by @dependabot in #294
- ⬆️(deps): Bump joi from 17.11.0 to 17.12.3 by @dependabot in #293
- Bump follow-redirects from 1.15.4 to 1.15.6 by @dependabot in #291
- ⬆️(deps-dev): Bump eslint from 8.56.0 to 8.57.0 by @dependabot in #295
- ⬆️(deps): Bump @nestjs/serve-static from 4.0.0 to 4.0.2 by @dependabot in #292
- ⬆️(deps-dev): Bump @nestjs/schematics from 10.0.3 to 10.1.1 by @dependabot in #288
- ⬆️(deps): Bump @discord-nestjs/common from 5.2.10 to 5.2.12 by @dependabot in #286
- Fix/playback by @manuel-rw in #298
Full Changelog: 0.1.1...1.0.0
🐛 Fixes for albums, playlists and casting
What's Changed
- Fix playing albums and playlists by @sssionek in #249
- ⬆️(deps-dev): Bump eslint-plugin-prettier from 4.2.1 to 5.0.1 by @dependabot in #254
- ⬆️(deps): Bump @nestjs/event-emitter from 1.4.2 to 2.0.3 by @dependabot in #253
- ⬆️(deps): Bump @nestjs/schedule from 2.2.3 to 4.0.0 by @dependabot in #252
- ⬆️(deps): Bump zod-validation-error from 1.5.0 to 2.1.0 by @dependabot in #251
- Fix casting to the bot device by @sssionek in #255
- Keep a tighter sync between Jellyfin's remote control and the state of the Discord player by @sssionek in #256
- Listen for Discord disconnect event and make sure it's handled by @sssionek in #259
- ⬆️(deps-dev): Bump @types/node from 20.9.2 to 20.10.4 by @dependabot in #268
- ⬆️(deps-dev): Bump eslint-config-prettier from 8.10.0 to 9.1.0 by @dependabot in #266
- ⬆️(deps): Bump @nestjs/terminus from 9.2.2 to 10.2.0 by @dependabot in #265
- Revert "⬆️(deps): Bump @nestjs/terminus from 9.2.2 to 10.2.0" by @manuel-rw in #275
- ⬆️(deps-dev): Bump eslint from 8.54.0 to 8.56.0 by @dependabot in #272
- ⬆️(deps-dev): Bump @types/jest from 29.5.8 to 29.5.11 by @dependabot in #269
- ⬆️(deps): Bump ws from 8.14.2 to 8.16.0 by @dependabot in #274
- ⬆️(deps-dev): Bump @types/node from 20.10.4 to 20.10.6 by @dependabot in #273
Full Changelog: 0.1.0...0.1.1
🐛 0.1.0: Command and Jellyfin connection bug fixes
- 🐛 Fixed URL being overwritten in some edge cases
- 🐛 Fixed
/stopand/disconnectnot properly disposing connection and audio player - 🐛 Fixed several bugs
- ♻️ Refactored model names
- ⬆️ Updated dependencies
What's Changed
- ⬆️(deps): Bump @discord-nestjs/core from 5.3.7 to 5.3.8 by @dependabot in #215
- ⬆️(deps-dev): Bump ts-loader from 9.4.2 to 9.4.4 by @dependabot in #216
- ⬆️(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.59.5 to 5.62.0 by @dependabot in #217
- ⬆️(deps-dev): Bump @nestjs/schematics from 9.1.0 to 10.0.1 by @dependabot in #218
- ⬆️(deps): Bump @discord-nestjs/common from 5.2.5 to 5.2.8 by @dependabot in #228
- ⬆️(deps-dev): Bump @types/node from 20.1.4 to 20.5.7 by @dependabot in #227
- ⬆️(deps-dev): Bump prettier from 2.8.8 to 3.0.2 by @dependabot in #224
- ⬆️(deps): Bump @discord-nestjs/core from 5.3.8 to 5.3.10 by @dependabot in #226
- replace template strings with regular string literals by @deepsource-autofix in #229
- ♻️ Fix code smells by @manuel-rw in #230
- ♻️ Fix code smells by @manuel-rw in #231
- ⬆️ Upgrade opusscript by @manuel-rw in #237
- Don't overwrite base path when constructing paths by @sssionek in #240
- Include artist names in song/album search results by @sssionek in #241
- ⬆️ Bump @babel/traverse from 7.23.0 to 7.23.2 by @dependabot in #239
- ⬆️(deps-dev): Bump ts-jest from 29.1.0 to 29.1.1 by @dependabot in #235
- ⬆️(deps-dev): Bump jest and @types/jest by @dependabot in #242
- 🐛 Stop command stuck by @manuel-rw in #244
- 🐛 #236 Destroying connection improperly by @manuel-rw in #245
- ♻️ Model names by @manuel-rw in #246
- 🚨 Fix build errors by @manuel-rw in #247
New Contributors
Full Changelog: 0.0.9...0.1.0
0.0.9 Bug fixes, dependency upgrades
What's Changed
- ⬆️(deps-dev): Bump @typescript-eslint/parser from 5.59.5 to 5.59.7 by @dependabot in #192
- ⬆️(deps): Bump @nestjs/platform-express from 9.4.0 to 9.4.2 by @dependabot in #191
- ⬆️(deps): Bump rimraf from 5.0.0 to 5.0.1 by @dependabot in #188
- ⬆️(deps-dev): Bump eslint from 8.40.0 to 8.42.0 by @dependabot in #193
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #209
- 🐛 Max search item length by @manuel-rw in #210
- ⬆️(deps): Bump @nestjs/serve-static from 3.0.1 to 4.0.0 by @dependabot in #211
- Bump semver from 6.3.0 to 6.3.1 by @dependabot in #206
- ⬆️(deps-dev): Bump @typescript-eslint/parser from 5.59.7 to 5.62.0 by @dependabot in #208
- ⬆️(deps): Bump @nestjs/config from 2.3.1 to 3.0.0 by @dependabot in #200
- ⬆️(deps-dev): Bump typescript from 5.0.4 to 5.1.6 by @dependabot in #204
Full Changelog: 0.0.8...0.0.9
✨ Default member permission
What's Changed
- Update docker.yml by @manuel-rw in #165
- 🚑 Critical: Fix crash caused by Jellyfin SDK 0.8.x by @manuel-rw in #166
- ⬆️(deps-dev): Bump @typescript-eslint/parser from 5.58.0 to 5.59.1 by @dependabot in #177
- ⬆️(deps-dev): Bump typescript from 4.9.5 to 5.0.4 by @dependabot in #169
- Env for default member permissions by @manuel-rw in #185
Full Changelog: 0.0.7...0.0.8
✨ Jellyfin session control, add time tracking
What's Changed
- 🔖 Version 0.0.6 by @manuel-rw in #133
- 🚑 Missing dependencies and invalid dependency tree by @manuel-rw in #135
- 🐛 Fix case sensitive validation for LOGLEVEL by @manuel-rw in #138
- ✨ Add playback reporting at Jellyfin by @manuel-rw in #139
- ⬆️(deps-dev): Bump prettier from 2.8.4 to 2.8.7 by @dependabot in #137
- 🐛 Fix track state on finishing track by @manuel-rw in #141
- ⬆️(deps-dev): Bump eslint from 8.36.0 to 8.37.0 by @dependabot in #142
- ⬆️(deps): Bump @nestjs/terminus from 9.2.1 to 9.2.2 by @dependabot in #143
- ⬆️(deps-dev): Bump @types/node from 18.15.10 to 18.15.11 by @dependabot in #144
- ⬆️(deps-dev): Bump @typescript-eslint/eslint-plugin from 5.56.0 to 5.57.0 by @dependabot in #146
- ⬆️(deps-dev): Bump @typescript-eslint/parser from 5.56.0 to 5.57.0 by @dependabot in #145
- 🐛 Items in album reversed order by @manuel-rw in #147
- ✨ Reimplement websocket controls by @manuel-rw in #148
- Replace template strings with regular string literals by @deepsource-autofix in #150
- 🚨 Fix deepsource warnings by @manuel-rw in #151
- ♻️ Strict Typescript by @manuel-rw in #149
- ✨ Add time tracking by @manuel-rw in #152
- ⬆️(deps-dev): Bump tsconfig-paths from 4.1.2 to 4.2.0 by @dependabot in #157
- ⬆️(deps): Bump discord.js from 14.8.0 to 14.9.0 by @dependabot in #155
- ⬆️(deps): Bump @discordjs/voice from 0.15.0 to 0.16.0 by @dependabot in #153
- ⬆️(deps): Bump @jellyfin/sdk from 0.7.0 to 0.8.1 by @dependabot in #154
- ⬆️(deps-dev): Bump @nestjs/schematics from 9.0.4 to 9.1.0 by @dependabot in #156
- ⬆️(deps): Bump @nestjs/common from 9.3.12 to 9.4.0 by @dependabot in #160
- ⬆️(deps-dev): Bump @nestjs/testing from 9.3.12 to 9.4.0 by @dependabot in #162
- ⬆️(deps-dev): Bump eslint from 8.37.0 to 8.38.0 by @dependabot in #163
- ⬆️(deps): Bump @nestjs/core from 9.3.12 to 9.4.0 by @dependabot in #164
- ⬆️(deps): Bump rimraf from 4.4.1 to 5.0.0 by @dependabot in #161
- 🔀 Version 0.0.7 by @manuel-rw in #158
New Contributors
- @deepsource-autofix made their first contribution in #150
Full Changelog: 0.0.6...0.0.7
✨ Volume and Random command, several bugfixes
New /volume command
The volume command can now adjust the volume of the track currently being played.
It can also be used to boost the volume, as it can be set up to 150%.
In the future, the volume will be global over the entire playlist.
New /random command
The random command searches through your entire library and plays random items.
It requires a parameter, that defines the count of random items that should be searched.
Changes to the build system
- We now use Sonarcloud for static code analysis. It helps to find bugs, potential security issues and more.
- The test coverage is now displayed in the Sonarcloud
- The old analysis has been removed
What's Changed
- 🔖 Version 0.0.5 by @manuel-rw in #107
- ⬆️(deps-dev): Bump @nestjs/testing from 9.3.9 to 9.3.10 by @dependabot in #124
- ⬆️(deps): Bump @nestjs/common from 9.3.9 to 9.3.10 by @dependabot in #123
- ⬆️(deps): Bump @nestjs/platform-express from 9.3.9 to 9.3.10 by @dependabot in #122
- ⬆️(deps-dev): Bump @nestjs/cli from 9.2.0 to 9.3.0 by @dependabot in #120
- ⬆️(deps): Bump @nestjs/core from 9.3.9 to 9.3.11 by @dependabot in #125
- 🐛 Empty playlist crash by @manuel-rw in #128
- ✨ Add enqueue random items command by @manuel-rw in #130
- 🐛 Fix missing remote images for albums by @manuel-rw in #131
- ✨ Add volume command by @manuel-rw in #132
Full Changelog: 0.0.5...0.0.6
✨ Autocomplete search for /play, pageable playlist
Highlights
Search with autocomplete
The bot will now prompt you with search results automatically:

Paginated Playlist
If a playlist exceeds 10 items, it will now break to a new page, that you can open using the interaction buttons:

Refactored code
I rewrote some of the code, to improve and speed up development.
The embed were also cleaned up a bit, since they were pretty cluttered with information.
What's Changed
- ♻️ Playlist and playback manager (https://github.com/manuel-rw/jellyfin-discord-music-bot/pull/89[)](https://github.com/manuel-rw/jellyfin-discord-music-bot/commit/3adec06df737d78b3a5f682c04e6cdc31ff60b1e)
- 🐛 Fix crash with undefined id in interaction
- ♻️ Audio player events
- ♻️ Add autocomplete for search (https://github.com/manuel-rw/jellyfin-discord-music-bot/pull/100[)](https://github.com/manuel-rw/jellyfin-discord-music-bot/commit/12065e6c90ac640f01f8b7a372f558372c56ff47)
- ✨ Add paged playlist (https://github.com/manuel-rw/jellyfin-discord-music-bot/pull/106[)](https://github.com/manuel-rw/jellyfin-discord-music-bot/commit/916969f07b0be1528afb3cd9be5c04c39e18bcb4)
- ✨ Add web client (https://github.com/manuel-rw/jellyfin-discord-music-bot/pull/108[)](https://github.com/manuel-rw/jellyfin-discord-music-bot/commit/aac7a2c62803a5526adaddec3cf2ad5fc3eba824)
- 🐛 Track change announcement after play
- 🔖 0.0.4 by @manuel-rw in #81
- ⬆️ Bump http-cache-semantics from 4.1.0 to 4.1.1 by @dependabot in #74
- ⬆️ Bump cookiejar from 2.1.3 to 2.1.4 by @dependabot in #70
- ⬆️(deps-dev): Bump @nestjs/cli from 9.1.8 to 9.2.0
- ⬆️(deps): Bump @discord-nestjs/common from 4.0.8 to 5.1.5
- ⬆️(deps-dev): Bump @nestjs/testing from 9.2.1 to 9.3.9
- ⬆️(deps-dev): Bump @types/node from 18.11.18 to 18.13.0
- ⬆️(deps): Bump ws from 8.11.0 to 8.12.1
Full Changelog: 0.0.4...0.0.5