Releases: AmandaDiscord/Volcano
Release 1.5.0
This release is as follows:
- Adds a custom written lavalink typings package to assist with presenting accurate user-facing data
- Updates all deps to latest as of posting. (prism-media declares that it requires an older version of djs opus and causes npm install to fail. Using the --force flag should be fine in this situation)
As a result of both of these updates, a lot of issues when it comes down to the WS and REST APIs have been resolved. Massive thank you to the contributors of LavaLink for dealing with my bs while I was writing the types package.
play-dl has also been updated to support the latest youtube ciphers and as such, errors related to extraction should be warded off for the time being. Thank you to AtariTom (maintainer of play-dl)
More specific API changes includes
- /decodetracks no longer accepts GET as a valid method as it was supposed to be GET /decodetrack?track=... and POST /decodetracks.
- TrackExceptionEvent incorrectly included message, severity, and cause in the top level of the packet instead of in the supposed to be exception object which was previously a string.
Release 1.4.2
This release is as follows:
- Added a GET /version endpoint
- Removed global.dirname
- Fixed headers missing on some endpoints
- bumped deps
- includes build info in logs
- re-target LL version to 3.5.1
Release 1.4.1
This release fixes the following
- /loadtracks including probeInfo in the info property per track.
- YouTubeSource usable regex returning false for whatever reason
- Updated dependencies
Release 1.4.0
This release makes use of the internal rewrite for code readability and also for some fixes and improvements especially to HTTP (I feel like HTTP is the biggest headache and always could use improvements)
Some dependencies have also been reconsidered such as opusscript > discordjs/opus as it seems to no longer cause a memory leak when using encoding to opus from s16le. Should the issue re-surface, opusscript can be reinstalled and discordjs/opus removed.
- The HTTP source should now be able to avoid demuxing a stream to determine its type if it's detected to be of the content type of opus, ogg opus, or pcm.
- Fixed an issue where TrackStartEvent was being sent more than once due to the player thinking no connections were subscribed to it and it emitting Auto paused.
- Fixed issues with the logger
- Fixed improper error handling of /loadtracks
- Fixed the YT Source sometimes passing back tracks which didn't have an ID and thus not being streamable
- Added /plugins HTTP route as per LavaLink spec
- Added POST /decodetracks as per LavaLink spec
- Fixed SpotifyPlugin not properly returning what Volcano expects
- Updated info on what Volcano doesn't offer that LavaLink does
- Changes package.json to recommend node 18 instead of node 16.9
- Updated all dependencies
Release 1.3.0
This release has been a huge effort to improve Volcano's source code and add sources LavaLink already supports.
A side effect is that quite a few bugs have been squashed and overall reliability has been improved especially in areas that depend on HTTP.
Updates
- Move sources to plugin interface (d1e37d3)
- Added bandcamp as a source (2ce6cb6)
- Added YouTube Music searching support (2bc84ea)
- From dev build to another, bandcamp has been improved until it reached where it is now
- Fixes to the Twitch Source (cfa2d89)
- Improved logging (42d1677) (f64940b)
- Made HTTP utility functions to stream and parse raw socket messages. (Is very low level and doesn't handle much beyond sending initial request with headers. No body) (ce9da39)
Release 1.2.0
This release fixes issues with Plugins not having their results be encoded to the track hash and also the Spotify Plugin having issues due to it being rushed.
This release also fixes locks due to improper usage of fetch when trying to convert the web streams to node streams. (#24) (@melike2d )
Adds support for plugins to mutate the state of filters being applied to the queue. The Array is of raw ffmpeg args.
Also fixes the Logger being a bit jank with Object logging.
Release 1.1.9
Updates
Fixes an issue with plugins causing tracks to not play regardless of if they're apart of the plugin system or not
Release 1.1.8
This release adds a lot from LavaLink to increase feature parity especially with the recently release LavaLink 3.5 with its own plugin system. Read more here: https://github.com/AmandaDiscord/Volcano#plugins
Updates
- Move to the native fetch implementation from Node 17, but Volcano recommends Node 18
- Remove/replace/add some dependencies mostly revolving around http as they've been made redundant.
- Cleaned up some code
- Rudimentary ipv6 block support removed as fetch doesn't allow passing an ip to use for requesting, but it does have the ability for it to use ipv6 from getaddrinfo(). Unknown if it supports Happy Eyeballs or not.
- Support for Twitch sources has been added and is backwards compatible
- Added a plugin system with Spotify as a default plugin (URLs only as searching requires use of the API)
- Added support for m3u8 streams from the http source (Twitch streams operate on m3u8)
- Support arbitrary Player Stuck thresholds.
- Bug fixes
Release 1.1.7
Notice
A start script is included that enables source mappings and optimizing the node runtime for the container size (RAM). It's recommended to use this script with npm run start
as bug reports going forward should use that for easier debugging on my end
Updates
- Fixes an issue where parentPort.postMessage was returning a boolean instead of void as expected and typed in Node typings.
- All
//@ts-ignore
comments have been removed - Fixes logical issues with the http source getter, resulting in much faster track loading of ice-cast streams and providing more accurate metadata. (Metadata was the way it was because of legacy reasons)
- Updated BackTracker due to an issue with capturing anonymous scoped error stack frames
Release 1.1.6
Notice
A start script is included that enables source mappings and optimizing the node runtime for the container size (RAM). It's recommended to use this script with npm run start
as bug reports going forward should use that for easier debugging on my end
This release mainly updates the project to use esm for builds instead of cjs (Borewit/music-metadata#1218) and fixes FFMPEG not working for YouTube tracks. (#19)
From the words of one of the maintainers of play-dl:
"Play-dl doesn't continually fetch data. It fetches 5 minutes worth of data (depending on bitrate size) and fetches the next batch every 265 seconds. It's not ideal for piping, and the data it does fetch is throttled by youtube."
Ignoring this optimization and trying to stream in real time may pose bad implications, but only happens when using FFMPEG (op filters/ffmpeg/seek). Should a node get banned by YouTube, you should have reserve nodes to take the place of or load balance to avoid bans.
Also adds support for op ping (#21)
All dependencies have been upgraded to latest-as-of-publish