Lavasrc
The lavasrc lavalink plugin provides additional Lavaplayer and Lavasearch audio source managers.
Installation
For using the Lavasrc integration, you need to install the Lavalink4NET.Integrations.Lavasrc package.
You need to have the Lavasrc plugin installed on your Lavalink server.
Usage
The Lavasrc integrations provides types to interpret the additional metadata provided by the Lavasrc plugin.
The following tracks are resolved using the Lavasearch integration which allows to resolve tracks more advanced.
When you resolve a track, you can wrap the LavalinkTrack in an ExtendedLavalinkTrack to access the additional metadata.
var searchResult = await audio.Tracks.SearchAsync(
query: "[...]",
loadOptions: new TrackLoadOptions(SearchMode: TrackSearchMode.Spotify),
categories: ImmutableArray.Create(SearchCategory.Track));
var track = new ExtendedLavalinkTrack(searchResult.Tracks[0]);
var artist = track.Artist;
var album = track.Album;
var isPreview = track.IsPreview;
var previewUri = track.PreviewUri;
Similarly, you can wrap the PlaylistInformation in an ExtendedPlaylistInformation to access the additional metadata.
var searchResult = await audio.Tracks.SearchAsync(
query: "[...]",
loadOptions: new TrackLoadOptions(SearchMode: TrackSearchMode.Spotify),
categories: ImmutableArray.Create(SearchCategory.Playlist));
var playlist = new ExtendedPlaylistInformation(searchResult.Playlists[0]);
var author = playlist.Author;
var totalTracks = playlist.TotalTracks;
var artworkUri = playlist.ArtworkUri;
var uri = playlist.Uri;
var type = playlist.Type;
Flowery TTS
The Lavasrc plugin provides a TTS source manager which allows to play TTS audio using the Flowery TTS.
You can use the GetTextToSpeechTrackAsync method to resolve a TTS track.
var options = new TextToSpeechOptions(
Speed: 1.2F,
Format: TextToSpeechFormat.Mp3);
var track = await _trackManager
.GetTextToSpeechTrackAsync(query, options)
.ConfigureAwait(false);