Coder Social home page Coder Social logo

lavaplayer-fork's Introduction

LavaPlayer - Audio player library for Discord

This is forked version of LavaPlayer, original repo here https://github.com/sedmelluq/lavaplayer

Currently LavaPlayer repo is not actively maintained so decided create this fork, if main repo will be maintained again this fork will follow up and include all updates from it

Custom branch used for my own updates and usage, it include playback and searching on Yandex Music, provide thumbnails from all available audio sources in AudioTrackInfo exclude http one (this is mainly breaking change, because it affect how all tracks decoded/encoded)

LavaPlayer is an audio player library written in Java which can load audio tracks from various sources and convert them into a stream of Opus frames. It is designed for use with Discord bots, but it can be used anywhere where Opus format output is required.

Please read the FAQ in case of issues.

Maven package

Replace x.y.z with the latest version number:

Using in Gradle:

repositories {
  maven {
    url 'https://jitpack.io'
  }
}

dependencies {
  implementation 'com.github.walkyst:lavaplayer-fork:x.y.z'
}

Using in Maven:

<repositories>
  <repository>
    <id>jitpack</id>
    <url>https://jitpack.io</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>com.github.walkyst</groupId>
    <artifactId>lavaplayer-fork</artifactId>
    <version>x.y.z</version>
  </dependency>
</dependencies>

Supported formats

The set of sources where LavaPlayer can load tracks from is easily extensible, but the ones currently included by default are:

  • YouTube
  • SoundCloud
  • Bandcamp
  • Vimeo
  • Twitch streams
  • Local files
  • HTTP URLs

The file formats that LavaPlayer can currently handle are (relevant for file/url sources):

  • MP3
  • FLAC
  • WAV
  • Matroska/WebM (AAC, Opus or Vorbis codecs)
  • MP4/M4A (AAC codec)
  • OGG streams (Opus, Vorbis and FLAC codecs)
  • AAC streams
  • Stream playlists (M3U and PLS)

Resource usage

What makes LavaPlayer unique is that it handles everything in the same process. Different sources and container formats are handled in Java, while decoding and encoding of audio are handled by embedded native libraries. This gives it a very fine-grained control over the resources that it uses, which means a low memory footprint as well as the chance to skip decoding and encoding steps altogether when the input format matches the output format. Some key things to remember:

  • Memory usage is both predictable and low. The amount of memory used per track when testing with YouTube was at most 350 kilobytes per track plus the off-heap memory for the thread stack, since there is one thread per playing track.
  • The most common format used in YouTube is Opus, which matches the exact output format required for Discord. When no volume adjustment is applied, the packets from YouTube are directly passed to output, which saves CPU cycles.
  • Resource leaks are unlikely because there are no additional processes launched and only one thread per playing track. When an audio player is not queried for an user-configured amount of time, then the playing track is aborted and the thread cleaned up. This avoids thread leaks even when the audio player is not shut down as it is supposed to.

Features

Precise seeking support

Seeking is supported on all non-stream formats and sources. When a seek is performed on a playing track, the previously buffered audio samples will be provided until the seek is finished (this is configurable). When a seek is performed on a track which has not yet started, it will start immediately from the chosen position.

Due to media containers supporting seeking at different resolutions, the position that a media player can start reading data from might be several seconds from the location that the user actually wanted to seek to. LavaPlayer handles it by remembering the position where it was requested to seek to, jumping to the highest position which is not after that and then ignoring the audio until the actual position that was requested. This provides a millisecond accuracy on seeking.

Easy track loading

When creating an instance of an AudioPlayerManager, sources where the tracks should be loaded from with it must be manually registered. When loading tracks, you pass the manager an identifier and a handler which will get asynchronously called when the result has arrived. The handler has separate methods for receiving resolved tracks, resolved playlists, exceptions or being notified when nothing was found for the specified identifier.

Since the tracks hold only minimal meta-information (title, author, duration and identifier), loading playlists does not usually require the library to check the page of each individual track for sources such as YouTube or SoundCloud. This makes loading playlists pretty fast.

Load balancing

LavaPlayer includes the support for delegating the decoding/encoding/resampling operations to separate nodes running the lavaplayer-node Spring Boot application. These can be easily enabled by calling:

manager.useRemoteNodes("somehost:8080", "otherhost:8080")

The library will automatically assign the processing of new tracks to them by selecting a node based on the number of tracks they are currently processing and the CPU usage of the machine they are running on.

Extensibility

Any source that implements the AudioSourceManager interface can be registered to the player manager. These can be custom sources using either some of the supported containers and codecs or defining a totally new way the tracks are actually executed, such as delegating it to another process, should the set of formats supported by LavaPlayer by default not be enough.

Usage

Creating an audio player manager

First thing you have to do when using the library is to create a DefaultAudioPlayerManager and then configure it to use the settings and sources you want. Here is a sample:

AudioPlayerManager playerManager = new DefaultAudioPlayerManager();
AudioSourceManagers.registerRemoteSources(playerManager);

There are various configuration settings that can be modified:

  • Opus encoding and resampling quality settings.
  • Frame buffer duration: how much of audio is buffered in advance.
  • Stuck track threshold: when no data from a playing track comes in the specified time, an event is sent.
  • Abandoned player cleanup threshold: when the player is not queried in the specified amount of time, it is stopped.
  • Garbage collection monitoring: logs statistics of garbage collection pauses every 2 minutes. If the pauses are long enough to cause a stutter in the audio, it will be logged with a warning level, so you could take action to optimize your GC settings.

If possible, you should use a single instance of a player manager for your whole application. A player manager manages several thread pools which make no sense to duplicate.

Creating an audio player

Once you have a player manager, you can create players from it. Generally you would want to create a player per every different target you might want to separately stream audio to. It is totally fine to create them even if they are unlikely to be used, as they do not use any resources on their own without an active track.

Creating a player is rather simple:

AudioPlayer player = playerManager.createPlayer();

Once you have an instance of an audio player, you need some way to receive events from it. For that you should register a listener to it which either extends the AudioEventAdapter class or implements AudioEventListener. Since that listener receives the events for starting and ending tracks, it makes sense to also make it responsible for scheduling tracks. Assuming TrackScheduler is a class that implements AudioEventListener:

TrackScheduler trackScheduler = new TrackScheduler(player);
player.addListener(trackScheduler);

Now you have an audio player capable of playing instances of AudioTrack. However, what you don't have is audio tracks, which are the next things you have to obtain.

Loading audio tracks

To load a track, you have to call either the loadItem or loadItemOrdered method of an AudioPlayerManager. loadItem takes an identifier parameter and a load handler parameter. The identifier is a piece of text that should identify the track for some source. For example if it is a YouTube video ID, then YouTube source manager will load it, if it is a file path then the local file source will load it. The handler parameter is an instance of AudioLoadResultHandler, which has separate methods for different results of the loading process. You can either have a dedicated class for this or you can simply pass it an anonymous class as in the next example:

playerManager.loadItem(identifier, new AudioLoadResultHandler() {
  @Override
  public void trackLoaded(AudioTrack track) {
    trackScheduler.queue(track);
  }

  @Override
  public void playlistLoaded(AudioPlaylist playlist) {
    for (AudioTrack track : playlist.getTracks()) {
      trackScheduler.queue(track);
    }
  }

  @Override
  public void noMatches() {
    // Notify the user that we've got nothing
  }

  @Override
  public void loadFailed(FriendlyException throwable) {
    // Notify the user that everything exploded
  }
});

Most of these methods are rather obvious. In addition to everything exploding, loadFailed will also be called for example when a YouTube track is blocked or not available in your area. The FriendlyException class has a field called severity. If the value of this is COMMON, then it means that the reason is definitely not a bug or a network issue, but because the track is not available, such as the YouTube blocked video example. These message in this case can simply be forwarded as is to the user.

The other method for loading tracks, loadItemOrdered is for cases where you want the tracks to be loaded in order for example within one player. loadItemOrdered takes an ordering channel key as the first parameter, which is simply any object which remains the same for all the requests that should be loaded in the same ordered queue. The most common use would probably be to just pass it the AudioPlayer instance that the loaded tracks will be queued for.

Playing audio tracks

In the previous example I did not actually start playing the loaded track yet, but sneakily passed it on to our fictional TrackScheduler class instead. Starting the track is however a trivial thing to do:

player.playTrack(track);

Now the track should be playing, which means buffered for whoever needs it to poll its frames. However, you would need to somehow react to events, most notably the track finishing, so you could start the next track.

Handling events

Events are handled by event handlers added to an AudioPlayer instance. The simplest way for creating the handler is to extend the AudioEventAdapter class. Here is a quick description of each of the methods it has, in the context of using it for a track scheduler:

public class TrackScheduler extends AudioEventAdapter {
  @Override
  public void onPlayerPause(AudioPlayer player) {
    // Player was paused
  }

  @Override
  public void onPlayerResume(AudioPlayer player) {
    // Player was resumed
  }

  @Override
  public void onTrackStart(AudioPlayer player, AudioTrack track) {
    // A track started playing
  }

  @Override
  public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) {
    if (endReason.mayStartNext) {
      // Start next track
    }

    // endReason == FINISHED: A track finished or died by an exception (mayStartNext = true).
    // endReason == LOAD_FAILED: Loading of a track failed (mayStartNext = true).
    // endReason == STOPPED: The player was stopped.
    // endReason == REPLACED: Another track started playing while this had not finished
    // endReason == CLEANUP: Player hasn't been queried for a while, if you want you can put a
    //                       clone of this back to your queue
  }

  @Override
  public void onTrackException(AudioPlayer player, AudioTrack track, FriendlyException exception) {
    // An already playing track threw an exception (track end event will still be received separately)
  }

  @Override
  public void onTrackStuck(AudioPlayer player, AudioTrack track, long thresholdMs) {
    // Audio track has been unable to provide us any audio, might want to just start a new track
  }
}

JDA integration

To use it with JDA 4, you would need an instance of AudioSendHandler. There is only the slight difference of no separate canProvide and provide methods in AudioPlayer, so the wrapper for this is simple:

public class AudioPlayerSendHandler implements AudioSendHandler {
  private final AudioPlayer audioPlayer;
  private AudioFrame lastFrame;

  public AudioPlayerSendHandler(AudioPlayer audioPlayer) {
    this.audioPlayer = audioPlayer;
  }

  @Override
  public boolean canProvide() {
    lastFrame = audioPlayer.provide();
    return lastFrame != null;
  }

  @Override
  public ByteBuffer provide20MsAudio() {
    return ByteBuffer.wrap(lastFrame.getData());
  }

  @Override
  public boolean isOpus() {
    return true;
  }
}

lavaplayer-fork's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lavaplayer-fork's Issues

Crash during music playback, version 1.3.98.3

15:41:09.850 lava-daemon-pool-info-loader-2-thr YoutubeAccessTo WARN YouTube auth tokens can't be retrieved because email and password is not set in YoutubeAudioSourceManager, age restricted videos will throw exceptions.
15:51:20.738 lava-daemon-pool-playback-1-thread LocalAudioTrack ERROR Error in playback of GPKQk_Vg1Qc
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something went wrong when decoding the track.
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:293)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:249)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:38)
at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:58)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:50)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation:
lavaplayer.version: 1.3.98.2-original
os.arch: amd64
os.name: Linux
os.version: 5.4.0-121-generic
java.vendor: Oracle Corporation
java.version: 17.0.2
java.runtime.version: 17.0.2+8-86
java.vm.version: 17.0.2+8-86
Caused by: java.lang.RuntimeException: java.net.SocketTimeoutException: Read timed out
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:308)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.lambda$process$0(MatroskaAudioTrack.java:39)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:275)
... 10 common frames omitted
Caused by: java.net.SocketTimeoutException: Read timed out
at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:283)
at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:309)
at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350)
at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803)
at java.base/java.net.Socket$SocketInputStream.read(Socket.java:966)
at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1455)
at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1059)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at com.sedmelluq.discord.lavaplayer.tools.io.HttpInterface.execute(HttpInterface.java:72)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.attemptConnect(PersistentHttpStream.java:113)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.connect(PersistentHttpStream.java:105)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:170)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:180)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.read(PersistentHttpStream.java:186)
at java.base/java.io.DataInputStream.readFully(DataInputStream.java:201)
at com.sedmelluq.discord.lavaplayer.container.matroska.format.MutableMatroskaBlock.getNextFrameBuffer(MutableMatroskaBlock.java:54)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.processFrameInBlock(MatroskaStreamingFile.java:371)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseClusterSimpleBlock(MatroskaStreamingFile.java:335)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseNextCluster(MatroskaStreamingFile.java:320)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:296)
... 12 common frames omitted
15:51:24.268 lava-daemon-pool-playback-1-thread LocalAudioTrack ERROR Error in playback of IOvHQA6xc4w
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track.
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:116)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation:
lavaplayer.version: 1.3.98.2-original
os.arch: amd64
os.name: Linux
os.version: 5.4.0-121-generic
java.vendor: Oracle Corporation
java.version: 17.0.2
java.runtime.version: 17.0.2+8-86
java.vm.version: 17.0.2+8-86
Caused by: java.lang.RuntimeException: java.net.SocketTimeoutException: Read timed out
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.loadMatroskaFile(MatroskaAudioTrack.java:56)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:34)
at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:58)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:50)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
... 4 common frames omitted
Caused by: java.net.SocketTimeoutException: Read timed out
at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:283)
at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:309)
at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350)
at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803)
at java.base/java.net.Socket$SocketInputStream.read(Socket.java:966)
at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1455)
at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1059)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at com.sedmelluq.discord.lavaplayer.tools.io.HttpInterface.execute(HttpInterface.java:72)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.attemptConnect(PersistentHttpStream.java:113)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.connect(PersistentHttpStream.java:105)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:150)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.read(PersistentHttpStream.java:166)
at java.base/java.io.DataInputStream.readByte(DataInputStream.java:271)
at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaEbmlReader.readEbmlInteger(MatroskaEbmlReader.java:39)
at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaFileReader.readNextElement(MatroskaFileReader.java:45)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.readFile(MatroskaStreamingFile.java:78)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.loadMatroskaFile(MatroskaAudioTrack.java:51)
... 9 common frames omitted
15:51:27.613 lava-daemon-pool-playback-1-thread LocalAudioTrack ERROR Error in playback of JYiOfCc0G_g
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track.
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:116)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation:
lavaplayer.version: 1.3.98.2-original
os.arch: amd64
os.name: Linux
os.version: 5.4.0-121-generic
java.vendor: Oracle Corporation
java.version: 17.0.2
java.runtime.version: 17.0.2+8-86
java.vm.version: 17.0.2+8-86
Caused by: java.lang.RuntimeException: java.net.SocketTimeoutException: Read timed out
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.loadMatroskaFile(MatroskaAudioTrack.java:56)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:34)
at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:58)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:50)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
... 4 common frames omitted
Caused by: java.net.SocketTimeoutException: Read timed out
at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:283)
at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:309)
at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350)
at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803)
at java.base/java.net.Socket$SocketInputStream.read(Socket.java:966)
at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1455)
at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1059)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at com.sedmelluq.discord.lavaplayer.tools.io.HttpInterface.execute(HttpInterface.java:72)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.attemptConnect(PersistentHttpStream.java:113)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.connect(PersistentHttpStream.java:105)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:150)
at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.read(PersistentHttpStream.java:166)
at java.base/java.io.DataInputStream.readByte(DataInputStream.java:271)
at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaEbmlReader.readEbmlInteger(MatroskaEbmlReader.java:39)
at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaFileReader.readNextElement(MatroskaFileReader.java:45)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.readFile(MatroskaStreamingFile.java:78)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.loadMatroskaFile(MatroskaAudioTrack.java:51)
... 9 common frames omitted

SoundCloud stops after 30 seconds

SoundCloud recently introduced a new feature called SoundCloud GO+, which blocks some songs and only plays them for the first 30 seconds.
When you try to play a GO+ song with lavaplayer it will stop playing after 30 seconds and then sending the stop event.

It would be nice if the SoundCloudAudioTrack class had a isGoPlus method or something like that for checking if the track is playable.

More info: https://checkout.soundcloud.com/go
Example track: https://soundcloud.com/rosaliaofficial/bizcochito

Unable to play soundcloud

Soundcloud link: https://soundcloud.com/pon-pon-pon-784839651/sets/of

I use docker image lavalink

Stack trace
2022-05-12 18:16:15.270  INFO 1 --- [ XNIO-1 task-10] l.server.player.AudioLoaderRestHandler   : Got request to load for identifier "https://soundcloud.com/pon-pon-pon-784839651/sets/of"
2022-05-12 18:16:15.646 ERROR 1 --- [ader-2-thread-1] lavalink.server.player.AudioLoader       : Load failed

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Unknown file format.
  at com.sedmelluq.discord.lavaplayer.source.ProbingAudioSourceManager.handleLoadResult(ProbingAudioSourceManager.java:34) ~[lavaplayer-fork-1.3.97.jar!/:na]
  at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.loadItem(HttpAudioSourceManager.java:81) ~[lavaplayer-fork-1.3.97.jar!/:na]
  at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:436) ~[lavaplayer-fork-1.3.97.jar!/:na]
  at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:418) ~[lavaplayer-fork-1.3.97.jar!/:na]
  at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:217) ~[lavaplayer-fork-1.3.97.jar!/:na]
  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
  at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
  Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation: 
lavaplayer.version: 1.3.97-original
os.arch: amd64
os.name: Linux
os.version: 5.4.0-107-generic
java.vendor: Azul Systems, Inc.
java.version: 13.0.11
java.runtime.version: 13.0.11+4-MTS
java.vm.version: 13.0.11+4-MTS

2022-05-12 18:16:15.647 ERROR 1 --- [ader-2-thread-1] l.server.player.AudioLoaderRestHandler   : Track loading failed

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Unknown file format.
  at com.sedmelluq.discord.lavaplayer.source.ProbingAudioSourceManager.handleLoadResult(ProbingAudioSourceManager.java:34) ~[lavaplayer-fork-1.3.97.jar!/:na]
  at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.loadItem(HttpAudioSourceManager.java:81) ~[lavaplayer-fork-1.3.97.jar!/:na]
  at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:436) ~[lavaplayer-fork-1.3.97.jar!/:na]
  at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:418) ~[lavaplayer-fork-1.3.97.jar!/:na]
  at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:217) ~[lavaplayer-fork-1.3.97.jar!/:na]
  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
  at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
  Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation: 
lavaplayer.version: 1.3.97-original
os.arch: amd64
os.name: Linux
os.version: 5.4.0-107-generic
java.vendor: Azul Systems, Inc.
java.version: 13.0.11
java.runtime.version: 13.0.11+4-MTS
java.vm.version: 13.0.11+4-MTS

Twitch tracks are not playing

Hello, I'm using your Lavaplayer fork @ 1.3.94 (haven't tested this on .95 yet) in a Lavalink.jar and playing a Twitch url seems to drop the track immediately after queueing. On Lavalink I see a play op with the track, and then a stop op occurs right after it. I've been testing this on various nodes in the EU and East US and it seems consistent across all of them so far.

Mix playlist fail to be loaded when using shortened URL

Unresolved YT mix playlist link fails to be loaded.

Manually resolving the link does successfully load the playlist.

https://youtube.com/playlist is the scheme used by the YouYube app (that's what it was reported to me).

2022-12-09 20:06:08.379  INFO 490 --- [XNIO-1 task-1] l.server.player.AudioLoaderRestHandler   : Got request to load for identifier "https://www.youtube.com/playlist?list=RDROxbBkH5jkg&start_radio=1"
2022-12-09 20:06:08.403 ERROR 490 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader       : Load failed

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: This playlist type is unviewable.
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubePlaylistLoader.buildPlaylist(DefaultYoutubePlaylistLoader.java:60) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubePlaylistLoader.load(DefaultYoutubePlaylistLoader.java:48) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.playlist(YoutubeAudioSourceManager.java:260) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.playlist(YoutubeAudioSourceManager.java:248) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:72) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:44) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:216) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:147) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:436) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:418) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:217) ~[lavaplayer-1.3.98.3.jar!/:na]
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
        at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
        Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation:
  lavaplayer.version: 1.3.98.2-original
  os.arch: amd64
  os.name: Linux
  os.version: 5.15.74-1-pve
  java.vendor: Ubuntu
  java.version: 11.0.17
  java.runtime.version: 11.0.17+8-post-Ubuntu-1ubuntu222.04
  java.vm.version: 11.0.17+8-post-Ubuntu-1ubuntu222.04

2022-12-09 20:06:08.403 ERROR 490 --- [lava-daemon-pool-info-loader-2-thread-1] l.server.player.AudioLoaderRestHandler   : Track loading failed

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: This playlist type is unviewable.
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubePlaylistLoader.buildPlaylist(DefaultYoutubePlaylistLoader.java:60) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubePlaylistLoader.load(DefaultYoutubePlaylistLoader.java:48) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.playlist(YoutubeAudioSourceManager.java:260) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.playlist(YoutubeAudioSourceManager.java:248) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:72) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:44) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:216) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:147) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:436) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:418) ~[lavaplayer-1.3.98.3.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:217) ~[lavaplayer-1.3.98.3.jar!/:na]
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
        at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
        Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation:
  lavaplayer.version: 1.3.98.2-original
  os.arch: amd64
  os.name: Linux
  os.version: 5.15.74-1-pve
  java.vendor: Ubuntu
  java.version: 11.0.17
  java.runtime.version: 11.0.17+8-post-Ubuntu-1ubuntu222.04
  java.vm.version: 11.0.17+8-post-Ubuntu-1ubuntu222.04

Music Youtube Search (get vidoes unavailable)

I searched for a song, but the results are available, but it is basically video not available

  • Query: 'Words - Birdy';

  • Result first 3 videoIds: fEhyx8su1EI, ckj0m0Pv0Sc, jqiONhGGCzk

my server region US (Ohio)

any solution?

Unexpected exception

ERROR 20969 --- [lava-daemon-pool-playback-1-thread-2] c.s.d.l.t.p.LocalAudioTrackExecutor      : Error in playback of 0itOCgJtNVU

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track.
	at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:45) ~[lavaplayer-d5535cf7fb7dc4e068dffda64097d6fc30767fdd.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:117) ~[lavaplayer-d5535cf7fb7dc4e068dffda64097d6fc30767fdd.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:349) ~[lavaplayer-d5535cf7fb7dc4e068dffda64097d6fc30767fdd.jar!/:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
Caused by: java.lang.RuntimeException: javax.script.ScriptException: ReferenceError: "g" is not defined. (eval#16) in eval at line number 16 at column number 0
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipher.transform(YoutubeSignatureCipher.java:59) ~[lavaplayer-d5535cf7fb7dc4e068dffda64097d6fc30767fdd.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.resolveFormatUrl(YoutubeSignatureCipherManager.java:119) ~[lavaplayer-d5535cf7fb7dc4e068dffda64097d6fc30767fdd.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.loadBestFormatWithUrl(YoutubeAudioTrack.java:89) ~[lavaplayer-d5535cf7fb7dc4e068dffda64097d6fc30767fdd.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:43) ~[lavaplayer-d5535cf7fb7dc4e068dffda64097d6fc30767fdd.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:105) ~[lavaplayer-d5535cf7fb7dc4e068dffda64097d6fc30767fdd.jar!/:na]
	... 4 common frames omitted
Caused by: javax.script.ScriptException: ReferenceError: "g" is not defined. (eval#16) in eval at line number 16 at column number 0
	at org.mozilla.javascript.engine.RhinoScriptEngine.eval(RhinoScriptEngine.java:122) ~[rhino-engine-1.7.14.jar!/:1.7.14]
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) ~[java.scripting:na]
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipher.transform(YoutubeSignatureCipher.java:56) ~[lavaplayer-d5535cf7fb7dc4e068dffda64097d6fc30767fdd.jar!/:na]
	... 8 common frames omitted
JVM: 11.0.14.1
Lavaplayer version: 84e5509765a5ee344b6db832505db48e7ed0dbd3 (custom)

Deezer broken

When i try to load deezer playlist (https://www.deezer.com/us/album/70080182) i get the following exception:

2022-01-14 23:52:42.325 ERROR 6648 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader       : Load failed

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Unknown file format.
	at com.sedmelluq.discord.lavaplayer.source.ProbingAudioSourceManager.handleLoadResult(ProbingAudioSourceManager.java:34) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.loadItem(HttpAudioSourceManager.java:81) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:436) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:418) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:217) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
	Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation: 
  lavaplayer.version: 1.3.96-original
  os.arch: amd64
  os.name: Windows Server 2019
  os.version: 10.0
  java.vendor: BellSoft
  java.version: 13.0.2
  java.runtime.version: 13.0.2+9
  java.vm.version: 13.0.2+9

2022-01-14 23:52:42.328 ERROR 6648 --- [lava-daemon-pool-info-loader-2-thread-1] l.server.player.AudioLoaderRestHandler   : Track loading failed

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Unknown file format.
	at com.sedmelluq.discord.lavaplayer.source.ProbingAudioSourceManager.handleLoadResult(ProbingAudioSourceManager.java:34) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.loadItem(HttpAudioSourceManager.java:81) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:436) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:418) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:217) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
	Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation: 
  lavaplayer.version: 1.3.96-original
  os.arch: amd64
  os.name: Windows Server 2019
  os.version: 10.0
  java.vendor: BellSoft
  java.version: 13.0.2
  java.runtime.version: 13.0.2+9
  java.vm.version: 13.0.2+9

Seems like deezer tracks also failing.
Maybe i do something wrong?

.wav files can't be played through discord bot

Hello,
when trying to play a .wav file through discord, I get following error.
All other formats seem to be working fine.

14:27:55 MediaContainerDetect WARN Attempting to detect file with container wav failed. java.lang.IllegalStateException: Invalid audio format 3, must be 1 (PCM) at com.sedmelluq.discord.lavaplayer.container.wav.WavFileLoader$InfoBuilder.validateFormat(WavFileLoader.java:106) at com.sedmelluq.discord.lavaplayer.container.wav.WavFileLoader$InfoBuilder.build(WavFileLoader.java:98) at com.sedmelluq.discord.lavaplayer.container.wav.WavFileLoader$InfoBuilder.access$300(WavFileLoader.java:88) at com.sedmelluq.discord.lavaplayer.container.wav.WavFileLoader.parseHeaders(WavFileLoader.java:53) at com.sedmelluq.discord.lavaplayer.container.wav.WavContainerProbe.probe(WavContainerProbe.java:45) at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.checkContainer(MediaContainerDetection.java:91) at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.detectContainer(MediaContainerDetection.java:76) at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.detectContainer(MediaContainerDetection.java:61) at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.detectContainerWithClient(HttpAudioSourceManager.java:142) at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.detectContainer(HttpAudioSourceManager.java:120) at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.loadItem(HttpAudioSourceManager.java:81) at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:442) at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:424) at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:223) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at com.sedmelluq.discord.lavaplayer.tools.OrderedExecutor$ChannelRunnable.executeQueue(OrderedExecutor.java:98) at com.sedmelluq.discord.lavaplayer.tools.OrderedExecutor$ChannelRunnable.run(OrderedExecutor.java:87) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833)

Bug with client screen EMBED

while the video does not enable embed it's showing "Playback on other websites has been disabled by the video owner."
video testing zHqS3bS4fpk

playlist urls are not really working correctly.

The url:
https://music.youtube.com/playlist/?list=PLhlYlDBoaODZh7oYlcARKFvFiocV5DOeZ

does NOT Work

but
https://music.youtube.com/playlist?list=PLhlYlDBoaODZh7oYlcARKFvFiocV5DOeZ

DOES

what is different?

the / after playlist -> it's still valid, as if you visit the page it's valid.

maybe there are more cases like that

this should be working due to url formatting

like if you enter it with playlist/?list= the browser formats it to playlist?list=

should be easy to fix.

Lavalink cannot play audio format: wav

ava.lang.IllegalStateException: Invalid audio format 3, must be 1 (PCM)
    at com.sedmelluq.discord.lavaplayer.container.wav.WavFileLoader$InfoBuilder.validateFormat(WavFileLoader.java:106)
    at com.sedmelluq.discord.lavaplayer.container.wav.WavFileLoader$InfoBuilder.build(WavFileLoader.java:98)
    at com.sedmelluq.discord.lavaplayer.container.wav.WavFileLoader$InfoBuilder.access$300(WavFileLoader.java:88)
    at com.sedmelluq.discord.lavaplayer.container.wav.WavFileLoader.parseHeaders(WavFileLoader.java:53)
    at com.sedmelluq.discord.lavaplayer.container.wav.WavContainerProbe.probe(WavContainerProbe.java:45)
    at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.checkContainer(MediaContainerDetection.java:91)
    at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.detectContainer(MediaContainerDetection.java:76)
    at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.detectContainer(MediaContainerDetection.java:61)
    at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.detectContainerWithClient(HttpAudioSourceManager.java:142)
    at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.detectContainer(HttpAudioSourceManager.java:120)
    at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.loadItem(HttpAudioSourceManager.java:81)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:436)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:418)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:217)
    at java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)

No result for some queries using ytsearch

Hi,

When using ytsearch with a query containing "รฉ" or "ร " or any "special" character, for exemple Video dรฉtaillรฉe, i get : No matches found and when looking at the request it replaces "รฉ" with "ฮ˜" for exemple, it replaces other special characters too, so i think that the problem comes from lavaplayer not handling UTF-8 characters correctly or something like that.

Thanks.

Error :

2022-06-25 23:58:07.312  INFO 13696 --- [  XNIO-1 task-1] l.server.player.AudioLoaderRestHandler   : Got request to load for identifier "ytsearch:Hugo Dฮ˜crypte - Annonces de Macron dฮ˜taillฮ˜es, dฮ˜putฮ˜s accusฮ˜s, trฮ˜sor ฮฑ 17 milliards d'ร‡... Actus du jour"
2022-06-25 23:58:07.533  INFO 13696 --- [ader-2-thread-1] lavalink.server.player.AudioLoader       : No matches found

Connection reset issue

Noticing this issue quite frequently when playing tracks.

javax.net.ssl.SSLException: Connection reset
	at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:127)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:369)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:307)
	at java.base/sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1690)
	at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1064)
	at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
	at org.apache.http.impl.io.SessionInputBufferImpl.read(SessionInputBufferImpl.java:197)
	at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:176)
	at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:135)
	at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:244)
	at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
	at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:343)
	at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:173)
	at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.read(PersistentHttpStream.java:186)
	at java.base/java.io.DataInputStream.readFully(DataInputStream.java:201)
	at com.sedmelluq.discord.lavaplayer.container.matroska.format.MutableMatroskaBlock.getNextFrameBuffer(MutableMatroskaBlock.java:54)
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.processFrameInBlock(MatroskaStreamingFile.java:371)
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseClusterSimpleBlock(MatroskaStreamingFile.java:335)
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseNextCluster(MatroskaStreamingFile.java:320)
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:296)
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.lambda$process$0(MatroskaAudioTrack.java:39)
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:275)
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:249)
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:38)
	at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:57)
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:49)
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
	at java.base/java.lang.Thread.run(Thread.java:831)
	Suppressed: java.net.SocketException: Connection reset by peer
		at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:420)
		at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440)
		at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:826)
		at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1045)
		at java.base/sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:82)
		at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:400)
		... 31 common frames omitted
Caused by: java.net.SocketException: Connection reset
	at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:323)
	at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350)
	at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803)
	at java.base/java.net.Socket$SocketInputStream.read(Socket.java:976)
	at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
	at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
	at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
	at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1444)
	at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1048)
	... 27 common frames omitted
```

Runtime Exception

Message:

Error in playback of xi1Dnf_1S-4

Stack Trace:

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something went wrong when decoding the track.
    at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:293)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:249)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:38)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:57)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:49)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)
java.lang.RuntimeException: Not success status code: 403
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.validateStatusCode(PersistentHttpStream.java:87)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.attemptConnect(PersistentHttpStream.java:116)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.connect(PersistentHttpStream.java:105)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:150)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:160)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.read(PersistentHttpStream.java:166)
    at java.io.DataInputStream.readByte(DataInputStream.java:270)
    at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaEbmlReader.readEbmlInteger(MatroskaEbmlReader.java:39)
    at com.sedmelluq.discord.lavaplayer.container.matroska.format.MutableMatroskaBlock.parseHeader(MutableMatroskaBlock.java:73)
    at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaFileReader.readBlockHeader(MatroskaFileReader.java:74)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseClusterSimpleBlock(MatroskaStreamingFile.java:332)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseNextCluster(MatroskaStreamingFile.java:320)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:296)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.lambda$process$0(MatroskaAudioTrack.java:39)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:275)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:249)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:38)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:57)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:49)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)

Decoding issue

This decoding error I get on videos (360D Audio) only.
e.g. https://www.youtube.com/watch?v=vG9EV6b5TJ0
Is there a solution to this error?

[lava-daemon-pool-playback-1-thread-74908] c.s.d.l.t.p.LocalAudioTrackExecutor      : Error in playback of 6CeSz4vU1VA

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something went wrong when decoding the track.
	at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:45) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:294) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:250) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:39) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:57) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:49) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:105) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:349) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
Caused by: java.lang.IllegalStateException: Failed to create a decoder instance with sample rate 48000 and channel count 4
	at com.sedmelluq.discord.lavaplayer.natives.opus.OpusDecoder.<init>(OpusDecoder.java:25) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.common.OpusPacketRouter.initialiseDecoder(OpusPacketRouter.java:194) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.common.OpusPacketRouter.checkDecoderNecessity(OpusPacketRouter.java:178) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.common.OpusPacketRouter.process(OpusPacketRouter.java:94) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaOpusTrackConsumer.consume(MatroskaOpusTrackConsumer.java:47) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.processFrameInBlock(MatroskaStreamingFile.java:372) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseClusterSimpleBlock(MatroskaStreamingFile.java:336) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseNextCluster(MatroskaStreamingFile.java:321) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:297) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.lambda$process$0(MatroskaAudioTrack.java:40) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:276) ~[lavaplayer-6ab48ea334f43e9acbfc35029ffd82be4906d0f2.jar!/:na]
	... 10 common frames omitted

Where does connector.so come from?

I run lavaplayer on a Raspberry Pi, but some videos did not play.
I narrowed it down to the fact that I am missing libconnector.so

I found various more or less suspicious download links it, so I just wanted to ask where I can obtain one/where the source-code is to compile it myself.

Thank you!

Google TTS link sometimes broke

Client used: Lavalink

I tried to play a song with a GTTS link

Sometimes it can play but sometimes throw error like below.

Caused by: java.lang.RuntimeException: Not success status code: 302

022-04-09 01:06:02.612  INFO 1 --- [   XNIO-1 I/O-1] lavalink.server.io.SocketServer          : {"op":"play","guildId":"776995466302062633","track":"QAABPwIADVVua25vd24gdGl0bGUADlVua25vd24gYXJ0aXN0f/////////8Af2h0dHBzOi8vdHJhbnNsYXRlLmdvb2dsZS5jb20vdHJhbnNsYXRlX3R0cz9pZT1VVEYtOCZxPTclMjA1JnRsPXZpLVZOJnRvdGFsPTEmaWR4PTAmdGV4dGxlbj0zJmNsaWVudD10dy1vYiZwcmV2PWlucHV0JnR0c3NwZWVkPTEBAQB/aHR0cHM6Ly90cmFuc2xhdGUuZ29vZ2xlLmNvbS90cmFuc2xhdGVfdHRzP2llPVVURi04JnE9NyUyMDUmdGw9dmktVk4mdG90YWw9MSZpZHg9MCZ0ZXh0bGVuPTMmY2xpZW50PXR3LW9iJnByZXY9aW5wdXQmdHRzc3BlZWQ9MQAEaHR0cAADbXAzAAAAAAAAAAA="}
2022-04-09 01:06:02.869 ERROR 1 --- [k-1-thread-1265] c.s.d.l.t.p.LocalAudioTrackExecutor      : Error in playback of https://translate.google.com/translate_tts?ie=UTF-8&q=7%205&tl=vi-VN&total=1&idx=0&textlen=3&client=tw-ob&prev=input&ttsspeed=1
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track.
	at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:116) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
	Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation: 
  lavaplayer.version: 1.3.96-original
  os.arch: amd64
  os.name: Linux
  os.version: 5.4.0-107-generic
  java.vendor: Azul Systems, Inc.
  java.version: 13.0.2
  java.runtime.version: 13.0.2+6-MTS
  java.vm.version: 13.0.2+6-MTS
Caused by: java.lang.RuntimeException: Not success status code: 302
	at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.validateStatusCode(PersistentHttpStream.java:87) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.attemptConnect(PersistentHttpStream.java:116) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.connect(PersistentHttpStream.java:105) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:170) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.read(PersistentHttpStream.java:186) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at java.base/java.io.DataInputStream.readFully(DataInputStream.java:200) ~[na:na]
	at com.sedmelluq.discord.lavaplayer.container.mp3.Mp3TrackProvider.skipIdv3Tags(Mp3TrackProvider.java:194) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.mp3.Mp3TrackProvider.parseHeaders(Mp3TrackProvider.java:75) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.container.mp3.Mp3AudioTrack.process(Mp3AudioTrack.java:33) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioTrack.process(HttpAudioTrack.java:53) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104) ~[lavaplayer-fork-1.3.96.jar!/:na]
	... 4 common frames omitted
2022-04-09 01:06:02.870  INFO 1 --- [   XNIO-1 I/O-1] lavalink.server.io.SocketServer          : {"op":"stop","guildId":"776995466302062633"}
2022-04-09 01:06:06.452  INFO 1 --- [ XNIO-1 task-24] l.server.player.AudioLoaderRestHandler   : Got request to load for identifier "https://translate.google.com/translate_tts?ie=UTF-8&q=7%205&tl=vi-VN&total=1&idx=0&textlen=3&client=tw-ob&prev=input&ttsspeed=1"
2022-04-09 01:06:06.562  INFO 1 --- [ader-2-thread-1] lavalink.server.player.AudioLoader       : Loaded track Unknown title
2022-04-09 01:06:06.564  INFO 1 --- [   XNIO-1 I/O-1] lavalink.server.io.SocketServer          : {"op":"play","guildId":"776995466302062633","track":"QAABPwIADVVua25vd24gdGl0bGUADlVua25vd24gYXJ0aXN0f/////////8Af2h0dHBzOi8vdHJhbnNsYXRlLmdvb2dsZS5jb20vdHJhbnNsYXRlX3R0cz9pZT1VVEYtOCZxPTclMjA1JnRsPXZpLVZOJnRvdGFsPTEmaWR4PTAmdGV4dGxlbj0zJmNsaWVudD10dy1vYiZwcmV2PWlucHV0JnR0c3NwZWVkPTEBAQB/aHR0cHM6Ly90cmFuc2xhdGUuZ29vZ2xlLmNvbS90cmFuc2xhdGVfdHRzP2llPVVURi04JnE9NyUyMDUmdGw9dmktVk4mdG90YWw9MSZpZHg9MCZ0ZXh0bGVuPTMmY2xpZW50PXR3LW9iJnByZXY9aW5wdXQmdHRzc3BlZWQ9MQAEaHR0cAADbXAzAAAAAAAAAAA="}
2022-04-09 01:06:31.607  INFO 1 --- [   XNIO-1 I/O-3] lavalink.server.io.SocketServer          : {"op":"volume","guildId":"955836645838573619","volume":80}

Issue with custom branch and ip rotator

It happens when i add ip rotator version 0.2.3 and try to build it

  1. artworkUrl - cannot find symbol variable artworkUrl
  2. YoutubeAudioSourceManager - no suitable constructor found for YoutubeAudioSourceManager(boolean,String,String)

using gradle 7.4
openJDK 15

error log:

1 actionable task: 1 executed
D:\BeatMusic\src\main\java\me\rohank05\commands\music\NowPlayingCommand.java:18: error: cannot find symbol
        MessageEmbed embed = new EmbedBuilder().setColor(16760143).setTitle("Now Playing").addField("Track Name", "["+currentTrack.getInfo().title+"]("+currentTrack.getInfo().uri+")", true).addField("By", currentTrack.getInfo().author,true).setThumbnail(currentTrack.getInfo().artworkUrl).build();
                                                                                                                                                                                                                                                                                    ^
  symbol:   variable artworkUrl
  location: class AudioTrackInfo
D:\BeatMusic\src\main\java\me\rohank05\utilities\music\TrackManager.java:74: error: cannot find symbol
                MessageEmbed embed = new EmbedBuilder().setTitle("Now Playing").setColor(16760143).setTitle("Now Playing").addField("Title", "["+track.getInfo().title+"]("+track.getInfo().uri+")", true).setThumbnail(track.getInfo().artworkUrl).build();
                                                                                                                                                                                                                                       ^
  symbol:   variable artworkUrl
  location: class AudioTrackInfo
D:\BeatMusic\src\main\java\me\rohank05\utilities\music\PlayerManager.java:51: error: no suitable constructor found for YoutubeAudioSourceManager(boolean,String,String)
        this.audioPlayerManager.registerSourceManager(new YoutubeAudioSourceManager(true, "", ""));
                                                      ^
    constructor YoutubeAudioSourceManager.YoutubeAudioSourceManager() is not applicable
      (actual and formal argument lists differ in length)
    constructor YoutubeAudioSourceManager.YoutubeAudioSourceManager(boolean) is not applicable
      (actual and formal argument lists differ in length)
    constructor YoutubeAudioSourceManager.YoutubeAudioSourceManager(boolean,YoutubeTrackDetailsLoader,YoutubeSearchResultLoader,YoutubeSearchMusicResultLoader,YoutubeSignatureResolver,YoutubePlaylistLoader,YoutubeLinkRouter,YoutubeMixLoader) is not applicable
      (actual and formal argument lists differ in length)
D:\BeatMusic\src\main\java\me\rohank05\utilities\music\PlayerManager.java:80: error: cannot find symbol
                        .setThumbnail(track.getInfo().artworkUrl)
                                                     ^
  symbol:   variable artworkUrl
  location: class AudioTrackInfo
4 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
18:56:37: Execution finished 'build'.

As soon as i remove ip rotator dependency it start to work

Invalid Status code from...

Exception:

Invalid status code from https://cf-hls-opus-media.sndcdn.com/media/325931/413077/LpmPTZmwPDqf.64.opus?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiKjovL2NmLWhscy1vcHVzLW1lZGlhLnNuZGNkbi5jb20vbWVkaWEvKi8qL0xwbVBUWm13UERxZi42NC5vcHVzIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNjQ5ODg3Nzg4fX19XX0_&Signature=Hzy7XVtSCVPZ85aG8fmlI86is3gGWxsWTiP6ZTgp2G6Pgz1XdwFM-JD0njJip1FBC8VsrN7GpY8j3M8iC9tFnm6-KrwT63oM31eGnaxldoMSp4fmJBWIkxBvGZtTwtNkzzRda2JXPeDvrqBzL6542c5CAyx49Hq4a9~NyA9C2Xj-db3jw38Hmoax4OUzGwinNNZ1xHJUuVGoaVu5kRMmYCT70IiQfaH-SYMjwQp4TQuDVqiLWrhXv9XAE~pwzuUgbLBBE8wUace6JDnjn64yiBwpczBwNddi-tx-W816hcdkYWZdVQz2IAkLJqOwYHTVDZCS~H3lbayMVPBDbsdS-Q__&Key-Pair-Id=APKAI6TU7MMXM5DG6EPQ URL: 403

Stack:

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something went wrong when decoding the track.
    at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:293)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudM3uAudioTrack.process(SoundCloudM3uAudioTrack.java:41)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudAudioTrack.playFromIdentifier(SoundCloudAudioTrack.java:51)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudAudioTrack.process(SoundCloudAudioTrack.java:38)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)
java.lang.RuntimeException: java.io.IOException: Invalid status code from https://cf-hls-opus-media.sndcdn.com/media/325931/413077/LpmPTZmwPDqf.64.opus?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiKjovL2NmLWhscy1vcHVzLW1lZGlhLnNuZGNkbi5jb20vbWVkaWEvKi8qL0xwbVBUWm13UERxZi42NC5vcHVzIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNjQ5ODg3Nzg4fX19XX0_&Signature=Hzy7XVtSCVPZ85aG8fmlI86is3gGWxsWTiP6ZTgp2G6Pgz1XdwFM-JD0njJip1FBC8VsrN7GpY8j3M8iC9tFnm6-KrwT63oM31eGnaxldoMSp4fmJBWIkxBvGZtTwtNkzzRda2JXPeDvrqBzL6542c5CAyx49Hq4a9~NyA9C2Xj-db3jw38Hmoax4OUzGwinNNZ1xHJUuVGoaVu5kRMmYCT70IiQfaH-SYMjwQp4TQuDVqiLWrhXv9XAE~pwzuUgbLBBE8wUace6JDnjn64yiBwpczBwNddi-tx-W816hcdkYWZdVQz2IAkLJqOwYHTVDZCS~H3lbayMVPBDbsdS-Q__&Key-Pair-Id=APKAI6TU7MMXM5DG6EPQ URL: 403
    at com.sedmelluq.discord.lavaplayer.tools.http.HttpStreamTools.streamContent(HttpStreamTools.java:27)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudM3uAudioTrack$SegmentTracker.getNextStream(SoundCloudM3uAudioTrack.java:128)
    at com.sedmelluq.discord.lavaplayer.tools.io.ChainedInputStream.loadNextStream(ChainedInputStream.java:25)
    at com.sedmelluq.discord.lavaplayer.tools.io.ChainedInputStream.read(ChainedInputStream.java:45)
    at org.apache.commons.io.input.ProxyInputStream.read(ProxyInputStream.java:59)
    at com.sedmelluq.discord.lavaplayer.tools.io.NonSeekableInputStream.read(NonSeekableInputStream.java:41)
    at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.checkNextBytes(MediaContainerDetection.java:126)
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggPacketInputStream.readPageHeader(OggPacketInputStream.java:92)
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggPacketInputStream.loadNextPage(OggPacketInputStream.java:158)
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggPacketInputStream.loadNextNonEmptyPage(OggPacketInputStream.java:131)
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggPacketInputStream.startNewPacket(OggPacketInputStream.java:76)
    at com.sedmelluq.discord.lavaplayer.container.ogg.opus.OggOpusTrackHandler.provideFrames(OggOpusTrackHandler.java:45)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudOpusSegmentDecoder.playStream(SoundCloudOpusSegmentDecoder.java:61)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudM3uAudioTrack.lambda$process$0(SoundCloudM3uAudioTrack.java:41)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:275)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudM3uAudioTrack.process(SoundCloudM3uAudioTrack.java:41)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudAudioTrack.playFromIdentifier(SoundCloudAudioTrack.java:51)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudAudioTrack.process(SoundCloudAudioTrack.java:38)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)
java.io.IOException: Invalid status code from https://cf-hls-opus-media.sndcdn.com/media/325931/413077/LpmPTZmwPDqf.64.opus?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiKjovL2NmLWhscy1vcHVzLW1lZGlhLnNuZGNkbi5jb20vbWVkaWEvKi8qL0xwbVBUWm13UERxZi42NC5vcHVzIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNjQ5ODg3Nzg4fX19XX0_&Signature=Hzy7XVtSCVPZ85aG8fmlI86is3gGWxsWTiP6ZTgp2G6Pgz1XdwFM-JD0njJip1FBC8VsrN7GpY8j3M8iC9tFnm6-KrwT63oM31eGnaxldoMSp4fmJBWIkxBvGZtTwtNkzzRda2JXPeDvrqBzL6542c5CAyx49Hq4a9~NyA9C2Xj-db3jw38Hmoax4OUzGwinNNZ1xHJUuVGoaVu5kRMmYCT70IiQfaH-SYMjwQp4TQuDVqiLWrhXv9XAE~pwzuUgbLBBE8wUace6JDnjn64yiBwpczBwNddi-tx-W816hcdkYWZdVQz2IAkLJqOwYHTVDZCS~H3lbayMVPBDbsdS-Q__&Key-Pair-Id=APKAI6TU7MMXM5DG6EPQ URL: 403
    at com.sedmelluq.discord.lavaplayer.tools.http.HttpStreamTools.streamContent(HttpStreamTools.java:21)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudM3uAudioTrack$SegmentTracker.getNextStream(SoundCloudM3uAudioTrack.java:128)
    at com.sedmelluq.discord.lavaplayer.tools.io.ChainedInputStream.loadNextStream(ChainedInputStream.java:25)
    at com.sedmelluq.discord.lavaplayer.tools.io.ChainedInputStream.read(ChainedInputStream.java:45)
    at org.apache.commons.io.input.ProxyInputStream.read(ProxyInputStream.java:59)
    at com.sedmelluq.discord.lavaplayer.tools.io.NonSeekableInputStream.read(NonSeekableInputStream.java:41)
    at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.checkNextBytes(MediaContainerDetection.java:126)
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggPacketInputStream.readPageHeader(OggPacketInputStream.java:92)
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggPacketInputStream.loadNextPage(OggPacketInputStream.java:158)
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggPacketInputStream.loadNextNonEmptyPage(OggPacketInputStream.java:131)
    at com.sedmelluq.discord.lavaplayer.container.ogg.OggPacketInputStream.startNewPacket(OggPacketInputStream.java:76)
    at com.sedmelluq.discord.lavaplayer.container.ogg.opus.OggOpusTrackHandler.provideFrames(OggOpusTrackHandler.java:45)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudOpusSegmentDecoder.playStream(SoundCloudOpusSegmentDecoder.java:61)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudM3uAudioTrack.lambda$process$0(SoundCloudM3uAudioTrack.java:41)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:275)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudM3uAudioTrack.process(SoundCloudM3uAudioTrack.java:41)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudAudioTrack.playFromIdentifier(SoundCloudAudioTrack.java:51)
    at com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudAudioTrack.process(SoundCloudAudioTrack.java:38)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)

Message:

Error in playback of O:https://api-v2.soundcloud.com/media/soundcloud:tracks:417229077/89f3d2b5-522c-4e6b-a9f1-a8446975d33c/stream/hls

No matches found for ytsearch

Hello,

7 hours and 30 minutes ago (varies by user) ytsearch: search stopped working. One of the users on Discord wrote: "I tried using ytmsearch: and it worked ...".
Lavalink returns an error lavalink.server.player.AudioLoader : No matches found.
Playback with links to a specific song works normally.

Is it possible that there has been some change by YoutTube?

Thanks

Throwing error when trying to play a specific video

I get this error when trying to play https://www.youtube.com/watch?v=I_6ZcOo6pnk :

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track.
        at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:116) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:354) ~[lavaplayer-1.3.99.jar!/:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
        at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
        Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation:
  lavaplayer.version: 1.3.99-original
  os.arch: amd64
  os.name: Windows 10
  os.version: 10.0
  java.vendor: Oracle Corporation
  java.version: 17.0.4.1
  java.runtime.version: 17.0.4.1+1-LTS-2
  java.vm.version: 17.0.4.1+1-LTS-2
Caused by: java.lang.RuntimeException: java.io.EOFException
        at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.loadMatroskaFile(MatroskaAudioTrack.java:56) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:34) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:58) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:50) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104) ~[lavaplayer-1.3.99.jar!/:na]
        ... 4 common frames omitted
Caused by: java.io.EOFException: null
        at java.base/java.io.DataInputStream.readByte(DataInputStream.java:273) ~[na:na]
        at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaEbmlReader.readFixedSizeEbmlInteger(MatroskaEbmlReader.java:24) ~[lavaplayer-1.3.99.jar!/:na]     
        at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaFileReader.asLong(MatroskaFileReader.java:109) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseCuePoint(MatroskaStreamingFile.java:191) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseCues(MatroskaStreamingFile.java:170) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseSegmentElement(MatroskaStreamingFile.java:130) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.readFile(MatroskaStreamingFile.java:92) ~[lavaplayer-1.3.99.jar!/:na]
        at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.loadMatroskaFile(MatroskaAudioTrack.java:51) ~[lavaplayer-1.3.99.jar!/:na]
        ... 9 common frames omitted

I used Lavalink and i opened an error on their repo they then said me that it probably came from Lavaplayer (That's also what i see in the logs that i provided above).

Thank you and have a nice day.

EOFException SSL peer shut down incorrectly

Message:

Error in playback of niG3YMU6jFk

Stack Trace:

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track.
    at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:116)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)
java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.loadMatroskaFile(MatroskaAudioTrack.java:56)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:34)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:57)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:49)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)
javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
    at sun.security.ssl.SSLSocketImpl.handleEOF(SSLSocketImpl.java:1659)
    at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1468)
    at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1368)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:437)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384)
    at com.sedmelluq.discord.lavaplayer.tools.http.ExtendedConnectionOperator.connectWithDestination(ExtendedConnectionOperator.java:157)
    at com.sedmelluq.discord.lavaplayer.tools.http.ExtendedConnectionOperator.connect(ExtendedConnectionOperator.java:81)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
    at com.sedmelluq.discord.lavaplayer.tools.io.HttpInterface.execute(HttpInterface.java:72)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.attemptConnect(PersistentHttpStream.java:113)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.connect(PersistentHttpStream.java:105)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:150)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.read(PersistentHttpStream.java:166)
    at java.io.DataInputStream.readByte(DataInputStream.java:270)
    at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaEbmlReader.readEbmlInteger(MatroskaEbmlReader.java:39)
    at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaFileReader.readNextElement(MatroskaFileReader.java:45)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.readFile(MatroskaStreamingFile.java:78)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.loadMatroskaFile(MatroskaAudioTrack.java:51)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:34)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:57)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:49)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)
java.io.EOFException: SSL peer shut down incorrectly
    at sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:167)
    at sun.security.ssl.SSLTransport.decode(SSLTransport.java:108)
    at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1460)
    at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1368)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:437)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384)
    at com.sedmelluq.discord.lavaplayer.tools.http.ExtendedConnectionOperator.connectWithDestination(ExtendedConnectionOperator.java:157)
    at com.sedmelluq.discord.lavaplayer.tools.http.ExtendedConnectionOperator.connect(ExtendedConnectionOperator.java:81)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
    at com.sedmelluq.discord.lavaplayer.tools.io.HttpInterface.execute(HttpInterface.java:72)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.attemptConnect(PersistentHttpStream.java:113)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.connect(PersistentHttpStream.java:105)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.internalRead(PersistentHttpStream.java:150)
    at com.sedmelluq.discord.lavaplayer.tools.io.PersistentHttpStream.read(PersistentHttpStream.java:166)
    at java.io.DataInputStream.readByte(DataInputStream.java:270)
    at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaEbmlReader.readEbmlInteger(MatroskaEbmlReader.java:39)
    at com.sedmelluq.discord.lavaplayer.container.matroska.format.MatroskaFileReader.readNextElement(MatroskaFileReader.java:45)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.readFile(MatroskaStreamingFile.java:78)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.loadMatroskaFile(MatroskaAudioTrack.java:51)
    at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:34)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:57)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:49)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)

Age restricted tracks are broken

Age restricted tracks are broken again. This is a Lavalink trace but I am using your lavaplayer @ 1.3.96.

Tracks tried on US East: B3eAMGXFw1o, GV7FSJDwjME, jPFfDavVpj0, i63cgUeSsY0

2021-12-18 10:23:32.416  INFO 1045 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader       : Loaded track LITTLE BIG - BIG DICK
2021-12-18 10:23:32.452  INFO 1045 --- [XNIO-1 I/O-1] lavalink.server.io.SocketServer          : {"op": "play", "guildId": "REDACTED", "track": "QAAAeQIAFUxJVFRMRSBCSUcgLSBCSUcgRElDSwAKTGl0dGxlIEJpZwAAAAAAAquYAAtpNjNjZ1VlU3NZMAABACtodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWk2M2NnVWVTc1kwAAd5b3V0dWJlAAAAAAAAAAA=", "noReplace": false, "startTime": "0", "pause": false}
2021-12-18 10:23:32.528  WARN 1045 --- [lava-daemon-pool-playback-1-thread-1] c.s.d.l.s.y.DefaultYoutubeTrackDetails   : Video i63cgUeSsY0 with no detected format field, response {"responseContext":{"visitorData":"CgtiMDdFZ1hSNlVRdyikzviNBg%3D%3D","serviceTrackingParams":[{"service":"GFEEDBACK","params":[{"key":"is_viewed_live","value":"False"},{"key":"logged_in","value":"0"},{"key":"e","value":"24142941,24115641,24141079,24036947,24002923,24136746,24007790,24135236,24143411,24140247,23983296,24138442,23884386,23966208,24021124,24143428,23946420,24077241,24142961,1714254,24004644,24059148,24007246,24142596,23944779,24058380,23744176,24091230,24054345,24001373,24135228,24132215,24080738,24063124,24143789,24116735,24117476,24128155,23888717,23918597,24060091,23735348,24082661,24131027,24085811,39321475,23934970,24109690,24104858,24116717,24034168,24134152,23882502,24108823,24149573,24110902,24106839,23998056,24095695,24054937,24077266,24028143,24123943,23968386,24130239"}]},{"service":"CSI","params":[{"key":"c","value":"ANDROID"},{"key":"cver","value":"16.24"},{"key":"yt_li","value":"0"},{"key":"GetPlayer_rid","value":"0xea78bc0b682772ef"}]},{"service":"GUIDED_HELP","params":[{"key":"logged_in","value":"0"}]},{"service":"ECATCHER","params":[{"key":"client.version","value":"16.24"},{"key":"client.name","value":"ANDROID"},{"key":"client.fexp","value":"24142941,24115641,24141079,24036947,24002923,24136746,24007790,24135236,24143411,24140247,23983296,24138442,23884386,23966208,24021124,24143428,23946420,24077241,24142961,1714254,24004644,24059148,24007246,24142596,23944779,24058380,23744176,24091230,24054345,24001373,24135228,24132215,24080738,24063124,24143789,24116735,24117476,24128155,23888717,23918597,24060091,23735348,24082661,24131027,24085811,39321475,23934970,24109690,24104858,24116717,24034168,24134152,23882502,24108823,24149573,24110902,24106839,23998056,24095695,24054937,24077266,24028143,24123943,23968386,24130239"}]},{"service":"LISTNR","params":[{"key":"e","value":"24085324,24106839,24033252,24110902,24030282,24109931,24024517,24116717,24116735,24117476,24141079,39321475,24115641,24036947,24140247,24142941,24104858,24132215,24058380,24109690,24054345,24059148,24130239,24134152,24143428,24037284"}]},{"service":"SUGGEST","params":[{"key":"sugexp","value":"shwpc1,ytpo.bo.me=0,ytposo.bo.me=0,ytpo.bo.ei=45364322,ytposo.bo.ei=45364322,ytpo.bo.uo.et=1,ytposo.bo.uo.et=1,ytpo.bo.uo.mw=10,ytposo.bo.uo.mw=10,ytpo.bo.uo.md=7,ytposo.bo.uo.md=3,cfro=1,ytpo.bo.me=1,ytposo.bo.me=1,ytpo.bo.ei=45351862,ytposo.bo.ei=45351862,ytpo.bo.uo.et=1,ytposo.bo.uo.et=1,ytpo.bo.uo.mw=10,ytposo.bo.uo.mw=10,ytpo.bo.uo.md=7,ytposo.bo.uo.md=3"}]}]},"trackingParams":"CAAQu2kiEwiRxZKG_O30AhXhS0wIHXp8CsY=","playabilityStatus":{"status":"LOGIN_REQUIRED","reason":"This video may be inappropriate for some users.","errorScreen":{"confirmDialogRenderer":{"title":{"runs":[{"text":"You must sign in to view this video"}]},"trackingParams":"CAIQxjgiEwiRxZKG_O30AhXhS0wIHXp8CsY=","dialogMessages":[{"runs":[{"text":"This video may be inappropriate for some users."}]}],"confirmButton":{"buttonRenderer":{"style":"STYLE_BLUE_TEXT","size":"SIZE_DEFAULT","isDisabled":false,"text":{"runs":[{"text":"Sign in"}]},"trackingParams":"CAQQ8FsiEwiRxZKG_O30AhXhS0wIHXp8CsY="}},"cancelButton":{"buttonRenderer":{"style":"STYLE_BLUE_TEXT","size":"SIZE_DEFAULT","isDisabled":false,"text":{"runs":[{"text":"Go back"}]},"trackingParams":"CAMQ8FsiEwiRxZKG_O30AhXhS0wIHXp8CsY="}}}},"desktopLegacyAgeGateReason":1,"reasonTitle":"You must sign in to view this video","contextParams":"Q0FFU0FnZ0I="},"videoDetails":{"videoId":"i63cgUeSsY0","title":"LITTLE BIG - BIG DICK","lengthSeconds":"175","keywords":["LITTLE BIG","BIG","dick","music","rave","ilich","klick","klak","olympiya","gokk","pasok","russia","die antwoord","sex","body","cute","dwarf","prusikin","boobs","ass","bodyart","color","fashion","finger","dance","dance music","electronic","big","little big","little","littlebig","watch little big shots"],"channelId":"UCu7TZ_ATWgjgD9IrNLdnYDA","isOwnerViewing":false,"shortDescription":"ะžั‡ะบะธ ะธ ะะธั‡ะพัะธ ะพั‚ััŽะดะฐ: http://maskbro.ru \nSubscribe: http://bit.ly/2gdHQs8 \nNew album \"FUNERAL RAVE\" available on iTunes now: http://apple.co/2hKUQq0\n\nOfficial merch / ะžั„ะธั†ะธะฐะปัŒะฝั‹ะน ะผะตั€ั‡:\nhttps://bit.ly/2WAmMBN\n\nMail to: [email protected] \n\nBooking (Ru, USA):  [email protected]\n+79816863508\n\nBooking (Europe): +33 608 815 807 Fabristi\nhttp://www.base-productions.com\n\nLITTLE BIG:\nNew album \"FUNERAL RAVE\" available on iTunes now: https://itunes.apple.com/album/id1068508618?ls=1&app=itunes\nfacebook: https://www.facebook.com/littlebigbandofficial/\nsoundcloud: https://soundcloud.com/littlebigrussia\nvk: http://vk.com/littlebigband\ntwitter: https://twitter.com/LITTLEBIG_BAND\nwebsite: http://thelittlebig.com\n\nLITTLE BIG production:\n\nDirected:  Alina Pasok, Ilya Prusikin\nDOP: Yriy Iskhakov\nCamera Assistants and focus pullers: \nFedor Yashkin\nGaffer: Maksim Kolupaev\nColor: Alina Pasok, Aleksandr Karelin\n\nProducer: Alina Pasok, Denis Glazin\nLine Producer: Sergey Makarov\nArt Director: Daria Uhvatova \nEditing: Alina Pasok, Ilya Prusikin\nVFX: Aleksandr Karelin\nStyle: Vadim Ksendokhov\nDancers:  Alyona Bonchinche, Katya Bonchinche, Dima Bonchinche, Timofey Smirnov\nMUA: Maria Francevich \nBodyart: Ksenya Eliseeva vk.com/eliseeva_lab\nHairstyle: Marina Koskova\nAdministrators: Vasilisa Lubenko\nBodies and Lips:  Alyona Dvoichenkova, Irina Smelaya, Vasilisa Lubenko, Polina Soshnikova\n\nCrew and Runners: Ivan Romanov, Denis Glazin, Irina Smelaya, Vadim Tolmachev, Masha Lesovaya, Mikhail Kshishtovsky, Aleksander Anokhin, Jenya Nikolaev\n\nmake up: Elena Pentenshina, Maria Francevich \nMusic: Sergey Makarov, Iliya Prusikin (Mixing: Aleksander Karelin)\n\nLyrics: Sergey Rahmaninov, Ilya Prusikin, Sergey Makarov\n\nLittle Big band: Iliya Prusikin, Sergey Gokk Makarov, Olympiya Ivleva and Mr. Clown (Anton Lissov) \n\nSpecial Thanks: Sofa Taurskaya\nEldar Djarakhov\nGeorgy Makelroy\nAnastasia Kharlamova\nMr. BrownGreen\nะŸะฐั€ะธะบะผะฐั…ะตั€ัะบะพะน ยซะ“ะฝะตะทะดะพยป https://vk.com/gnezdosalon\nะะณะตะฝั‚ัั‚ะฒัƒ \"ะกะผะตั‚ะฐะฝะฐ\" http://vk.com/smetanaagency","isCrawlable":true,"thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/i63cgUeSsY0/default.jpg","width":120,"height":90},{"url":"https://i.ytimg.com/vi/i63cgUeSsY0/mqdefault.jpg","width":320,"height":180},{"url":"https://i.ytimg.com/vi/i63cgUeSsY0/hqdefault.jpg","width":480,"height":360},{"url":"https://i.ytimg.com/vi/i63cgUeSsY0/sddefault.jpg","width":640,"height":480}]},"allowRatings":true,"viewCount":"82310706","author":"Little Big","isPrivate":false,"isUnpluggedCorpus":false,"isLiveContent":false},"playerSettingsMenuData":{"loggingDirectives":{"trackingParams":"CAEQtc4GIhMIkcWShvzt9AIV4UtMCB16fArG","visibility":{"types":"12"}}},"frameworkUpdates":{"entityBatchUpdate":{"mutations":[{"entityKey":"Eg0KC2k2M2NnVWVTc1kwIPYBKAE%3D","type":"ENTITY_MUTATION_TYPE_REPLACE","payload":{"offlineabilityEntity":{"key":"Eg0KC2k2M2NnVWVTc1kwIPYBKAE%3D","accessState":"OFFLINEABILITY_FEATURE_ACCESS_STATE_UNKNOWN","addToOfflineButtonState":"ADD_TO_OFFLINE_BUTTON_STATE_UNKNOWN"}}}],"timestamp":{"seconds":"1639851812","nanos":520389018}}}} polymer null
2021-12-18 10:23:32.535  WARN 1045 --- [lava-daemon-pool-playback-1-thread-1] c.s.d.l.t.p.LocalAudioTrackExecutor      : Suspicious exception for playback of i63cgUeSsY0

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Unable to play this YouTube track.
	at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetails.loadTrackFormats(DefaultYoutubeTrackDetails.java:79) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetails.getFormats(DefaultYoutubeTrackDetails.java:49) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.loadBestFormatWithUrl(YoutubeAudioTrack.java:83) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:42) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348) ~[lavaplayer-fork-1.3.96.jar!/:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
	Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation: 
  lavaplayer.version: 1.3.96-original
  os.arch: x86_64
  os.name: Mac OS X
  os.version: 10.15.7
  java.vendor: AdoptOpenJDK
  java.version: 11.0.9
  java.runtime.version: 11.0.9+11
  java.vm.version: 11.0.9+11
Caused by: java.lang.IllegalStateException: No track formats found.
	... 9 common frames omitted

Support for Age Restricted in metadata

As a feature request,

Is it possible for lavalplayer to return whether a given audio track is age restricted. Then we could avoid playing it and having it fail, so from the start we'd know it wouldn't work?

Thanks

Cookie rejected

Message:

Cookie rejected [rj-listener-cookie="mfpxgbna4p00", version:0, domain:zeno.fm, path:/, expiry:null] Illegal 'domain' attribute "zeno.fm". Domain of origin: "stream.zenolive.com"

Stack Trace:

  at org.apache.http.client.protocol.ResponseProcessCookies.processCookies(ResponseProcessCookies.java:123)
    at org.apache.http.client.protocol.ResponseProcessCookies.process(ResponseProcessCookies.java:93)
    at org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:142)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:191)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)

Problems when trying to build project

Hi, first of all i never used gradle so please be cool.
I installed JDK 15 as i saw that the version that this project uses for gradle only supports JDK 15.

I then downloaded the zip of the latest version of this project and ran gradlew.bat clean build
I got this error, any ideas ?

> Task :common:compileJava
Note: C:\Users\User\Downloads\lavaplayer-fork-1.3.97.1\common\src\main\java\com\sedmelluq\lava\common\natives\NativeResourceHolder.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :demo-jda:compileJava
Note: C:\Users\User\Downloads\lavaplayer-fork-1.3.97.1\demo-jda\src\main\java\com\sedmelluq\discord\lavaplayer\demo\jda\Main.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :main:compileJava
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :main:compileTestGroovy FAILED
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7
        at org.codehaus.groovy.vmplugin.VMPluginFactory.<clinit>(VMPluginFactory.java:43)
        at org.codehaus.groovy.reflection.GroovyClassValueFactory.<clinit>(GroovyClassValueFactory.java:35)
        at org.codehaus.groovy.reflection.ClassInfo.<clinit>(ClassInfo.java:109)
        at org.codehaus.groovy.reflection.ReflectionCache.getCachedClass(ReflectionCache.java:95)
        at org.codehaus.groovy.reflection.ReflectionCache.<clinit>(ReflectionCache.java:39)
        at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerMethods(MetaClassRegistryImpl.java:209)
        at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:107)
        at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:85)
        at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:36)
        at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.parseGroovyVersion(ApiGroovyCompiler.java:324)
        at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:167)
        at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:67)
        at org.gradle.api.internal.tasks.compile.GroovyCompilerFactory$DaemonSideCompiler.execute(GroovyCompilerFactory.java:98)
        at org.gradle.api.internal.tasks.compile.GroovyCompilerFactory$DaemonSideCompiler.execute(GroovyCompilerFactory.java:77)
        at org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerWorkAction.execute(AbstractDaemonCompiler.java:135)
        at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
        at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:49)
        at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:43)
        at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97)
        at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:43)
        at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
        at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
        at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:85)
        at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:55)
        at org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:138)
        at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
        at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:135)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
        at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
        at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
        at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
        at java.base/java.lang.Thread.run(Thread.java:832)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':main:compileTestGroovy'.
> Could not initialize class org.codehaus.groovy.reflection.ReflectionCache

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.8.2/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 3s
32 actionable tasks: 18 executed, 14 up-to-date

Video L4-MJdbgPXo with no detected format field

Java: https://github.com/freyacodes/Lavalink/blob/master/LavalinkServer/docker/Dockerfile

More Details

<html>
<body>
<!--StartFragment-->

L4-MJdbgPXo
--


<br class="Apple-interchange-newline"><!--EndFragment-->
</body>
</html>
<html>
<body>
<!--StartFragment-->

{"responseContext":{"visitorData":"CgtlQTA0NEd0TXhzbyiRn4ySBg%3D%3D","serviceTrackingParams":[{"service":"GFEEDBACK","params":[{"key":"is_viewed_live","value":"True"},{"key":"logged_in","value":"0"},{"key":"country-type","value":"B"},{"key":"e","value":"23966208,24080738,24188933,24174661,24183272,24183574,24184445,24140247,24117491,24120820,23998056,24077241,24007246,24145515,24185614,24173787,24021124,23946420,23918597,24165226,24177193,24165219,24188848,24187043,24161848,24036948,24004644,24054345,24169500,24063124,24176755,24082662,24163232,23888716,24189899,24184052,24106839,39321475,24179789,24110902,24175488,24180089,24034168,24185065,24138064,24060091,24117247,24149832,24189419,24177978,24165080,24185349,24085811,24171338,24186023,24169726,23934970,23744176,24154616,24077266,24184785,24135310,24181182,24123943,24001373,24175468,23882685,24138442,23983296,1714254"}]},{"service":"CSI","params":[{"key":"yt_ad","value":"1"},{"key":"c","value":"ANDROID"},{"key":"cver","value":"16.24"},{"key":"yt_li","value":"0"},{"key":"GetPlayer_rid","value":"0xc4bcb5b0304e7a9e"}]},{"service":"GUIDED_HELP","params":[{"key":"logged_in","value":"0"}]},{"service":"ECATCHER","params":[{"key":"client.version","value":"16.24"},{"key":"client.name","value":"ANDROID"},{"key":"client.fexp","value":"23966208,24080738,24188933,24174661,24183272,24183574,24184445,24140247,24117491,24120820,23998056,24077241,24007246,24145515,24185614,24173787,24021124,23946420,23918597,24165226,24177193,24165219,24188848,24187043,24161848,24036948,24004644,24054345,24169500,24063124,24176755,24082662,24163232,23888716,24189899,24184052,24106839,39321475,24179789,24110902,24175488,24180089,24034168,24185065,24138064,24060091,24117247,24149832,24189419,24177978,24165080,24185349,24085811,24171338,24186023,24169726,23934970,23744176,24154616,24077266,24184785,24135310,24181182,24123943,24001373,24175468,23882685,24138442,23983296,1714254"}]},{"service":"LISTNR","params":[{"key":"e","value":"24033252,24110902,24185065,24024517,24152482,24176...
--


<!--EndFragment-->
</body>
</html>

Stack Trace:

    at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetails.loadTrackFormats(DefaultYoutubeTrackDetails.java:72)
    at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetails.getFormats(DefaultYoutubeTrackDetails.java:49)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.loadBestFormatWithUrl(YoutubeAudioTrack.java:83)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:42)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)

JVM crash on moving the bot to another voice channel

Hello, since I migrated my project to Kotlin, my bot is constantly crashing when moved to another channel while playing music. The bot has permission to connect to both channels, here is the crash log: hs_err_pid6034.log

I'm a little bit confused because it works in Java, maybe I made something I shouldn't in Kotlin ?

My bot's repo is private but I can add someone if necessary.

No matches found using ytsearch with query including special characters

Description

Hi,

When using ytsearch with a query containing "รฉ" or "ร " or any "special" character, for exemple Video dรฉtaillรฉe, i get : No matches found and when looking at the request it replaces "รฉ" with "ฮ˜" for exemple, it replaces other special characters too, so i think that the problem comes from lavaplayer not handling UTF-8 characters correctly or something like that.

Thanks.

Error (It's using lavalink but even when doing the query directly to lavaplayer it doesn't work) :

2022-06-25 23:58:07.312  INFO 13696 --- [  XNIO-1 task-1] l.server.player.AudioLoaderRestHandler   : Got request to load for identifier "ytsearch:Hugo Dฮ˜crypte - Annonces de Macron dฮ˜taillฮ˜es, dฮ˜putฮ˜s accusฮ˜s, trฮ˜sor ฮฑ 17 milliards d'ร‡... Actus du jour"
2022-06-25 23:58:07.533  INFO 13696 --- [ader-2-thread-1] lavalink.server.player.AudioLoader       : No matches found

Output of java -version:

java version "17.0.2" 2022-01-18 LTS
Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)

Version used:
1.3.97.1 (Latest)

Youtube Shorts Support

Youtube Shorts use the same videoID as "standard" youtube videos but a different url.
Youtube shorts: https://www.youtube.com/shorts/videoID
Youtube video: https://www.youtube.com/watch?v=videoID

Youtube Shorts are also available via the "standard" youtube video URL and the "standard" video convention (watch?v=videoID) by entering the Shorts videoID.

Loading a "song" via the youtube shorts URL leads to an "Unknown file format" exception. Loading the same song via its "standard" youtube video URL shows now issues.

Since the videoID is usuable on both URLs the shorts URL isnt really needed imo but supporting it would still improve the userfriendliness

I dont seem to be skilled enough to figure out how to add either:

  • a converter converting shorts/videoID to watch?v=videoID
  • a proper route for the /shorts/ page

IllegalStateException Expected decoding to halt, got: 8200

Stack:

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something went wrong when decoding the track.
    at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:293)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:249)
    at com.sedmelluq.discord.lavaplayer.container.mpeg.MpegAudioTrack.process(MpegAudioTrack.java:51)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioTrack.process(HttpAudioTrack.java:53)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)
java.lang.IllegalStateException: Expected decoding to halt, got: 8200
    at com.sedmelluq.discord.lavaplayer.natives.aac.AacDecoder.resolveStreamInfo(AacDecoder.java:195)
    at com.sedmelluq.discord.lavaplayer.container.common.AacPacketRouter.processInput(AacPacketRouter.java:37)
    at com.sedmelluq.discord.lavaplayer.container.mpeg.MpegAacTrackConsumer.consume(MpegAacTrackConsumer.java:78)
    at com.sedmelluq.discord.lavaplayer.container.mpeg.reader.standard.MpegStandardFileTrackProvider.provideFrames(MpegStandardFileTrackProvider.java:74)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:275)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:249)
    at com.sedmelluq.discord.lavaplayer.container.mpeg.MpegAudioTrack.process(MpegAudioTrack.java:51)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioTrack.process(HttpAudioTrack.java:53)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)

Message:

Error in playback of https://cdn.discordapp.com/attachments/932064877047062538/954072268357660712/Timeline_1.mov

IllegalStateException Configuring failed with error 8195

Stack Trace:

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something went wrong when decoding the track.
    at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:293)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:249)
    at com.sedmelluq.discord.lavaplayer.container.mpeg.MpegAudioTrack.process(MpegAudioTrack.java:51)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioTrack.process(HttpAudioTrack.java:53)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)
java.lang.IllegalStateException: Configuring failed with error 8195
    at com.sedmelluq.discord.lavaplayer.natives.aac.AacDecoder.configureRaw(AacDecoder.java:78)
    at com.sedmelluq.discord.lavaplayer.natives.aac.AacDecoder.configure(AacDecoder.java:66)
    at com.sedmelluq.discord.lavaplayer.container.mpeg.MpegAacTrackConsumer.configureDecoder(MpegAacTrackConsumer.java:91)
    at com.sedmelluq.discord.lavaplayer.container.common.AacPacketRouter.processInput(AacPacketRouter.java:31)
    at com.sedmelluq.discord.lavaplayer.container.mpeg.MpegAacTrackConsumer.consume(MpegAacTrackConsumer.java:78)
    at com.sedmelluq.discord.lavaplayer.container.mpeg.reader.standard.MpegStandardFileTrackProvider.provideFrames(MpegStandardFileTrackProvider.java:74)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:275)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:249)
    at com.sedmelluq.discord.lavaplayer.container.mpeg.MpegAudioTrack.process(MpegAudioTrack.java:51)
    at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
    at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioTrack.process(HttpAudioTrack.java:53)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)

The audio file (Contains Implicit audio): https://cdn.discordapp.com/attachments/898289589276508282/963884587312889926/790e34cb2577992b180a8f2c0cb27479-1.mp4

Could not find com.sedmelluq:lavaplayer-natives:1.3.14.

DRMC-Bot:main: Could not find com.sedmelluq:lavaplayer-natives:1.3.14.
Searched in the following locations:
  - https://jcenter.bintray.com/com/sedmelluq/lavaplayer-natives/1.3.14/lavaplayer-natives-1.3.14.pom
  - https://repo.maven.apache.org/maven2/com/sedmelluq/lavaplayer-natives/1.3.14/lavaplayer-natives-1.3.14.pom
  - https://m2.duncte123.dev/snapshots/com/sedmelluq/lavaplayer-natives/1.3.14/lavaplayer-natives-1.3.14.pom
  - https://repo.hypixel.net/repository/Hypixel/com/sedmelluq/lavaplayer-natives/1.3.14/lavaplayer-natives-1.3.14.pom
  - https://m2.duncte123.dev/releases/com/sedmelluq/lavaplayer-natives/1.3.14/lavaplayer-natives-1.3.14.pom
  - https://jitpack.io/com/sedmelluq/lavaplayer-natives/1.3.14/lavaplayer-natives-1.3.14.pom
  - https://m2.chew.pro/snapshots/com/sedmelluq/lavaplayer-natives/1.3.14/lavaplayer-natives-1.3.14.pom
Required by:
    project : > com.github.walkyst:lavaplayer-fork:1.3.97

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

build.gradle

repositories {
    jcenter()
    mavenCentral() // for transitive dependencies
    maven {
        name 'm2-dv8tion'
        url 'https://m2.duncte123.dev/snapshots'
    }
    maven { url 'https://jitpack.io' }
    maven { url "https://m2.chew.pro/snapshots" }
}

Illegal State Exception: No tracks format found.

Stack Trace:

com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Unable to play this YouTube track.
    at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetails.loadTrackFormats(DefaultYoutubeTrackDetails.java:79)
    at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetails.getFormats(DefaultYoutubeTrackDetails.java:49)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.loadBestFormatWithUrl(YoutubeAudioTrack.java:83)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:42)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)
java.lang.IllegalStateException: No track formats found.
    at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetails.loadTrackFormats(DefaultYoutubeTrackDetails.java:79)
    at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetails.getFormats(DefaultYoutubeTrackDetails.java:49)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.loadBestFormatWithUrl(YoutubeAudioTrack.java:83)
    at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:42)
    at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:104)
    at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.lang.Thread.run(Thread.java:830)

Message:

Suspicious exception for playback of iDbzteON8RE

Some Soundcloud tracks have length issue (0 length)

It appears in soundcloud api in duration field 0 but in the full_duration field it shows the actual duration of the track. (I'm not sure that full_duration field appears on all tracks)
e.g.
https://soundcloud.com/jahseh-onfroy/xxxtentacion-vice-city-prod
https://soundcloud.com/rojasonthebeat/look-at-me-ft-xxxtentacion

full_duration field is unreliable due to the tracks that a subscription is required to listen.
e.g.
https://soundcloud.com/pitbull/give-me-everything
https://soundcloud.com/harrystyles/watermelon-sugar

I think the best solution is to get the duration from media field.

No track formats found or This video requires age verification

You are getting this error because did not configure YoutubeHttpContextFilter

First you need YouTube account on what you can view age restricted videos in your browser, for example you can check it on this video https://www.youtube.com/watch?v=B3eAMGXFw1o

In browser DevTools find one of these requests to InnerTube API (You can filter requests)
image

Then open request, look at Request Headers and find cookie field in it and find these two keys

  • __Secure-3PAPISID=
  • __Secure-3PSID=

Set these keys in YoutubeHttpContextFilter, paste only what going after =
(For lavalink users only need paste keys to PAPISID and PSID fields in your config file)

YoutubeHttpContextFilter.setPAPISID("key1")
YoutubeHttpContextFilter.setPSID("key2")

In this screenshots is used Telerik Fiddler Classic program with it very easy find required cookies and keys
image
image

setFilterFactory not working twice from same file

Hello, I have an issue with filters. that is i can't use setFilterFactory from same file twice.
Here is my repo: https://github.com/OpenianDevelopment/Beat-Music
So the issue is when i enable nightcore command it works but as soon as i disable it by using nightcore command it stops working

I tried doing this

audioPlayer.setFilterFactory((track, format, output)->{
    System.out.print("Working");
    return Arrays.asList(filter)
});

Working will print once.

How to recreate it

  1. Play a track
  2. enable a filter
  3. disable that filter using the same command used to enable it

Expected Behaviour
It should disable the filter

Actual Behavious
It does not disable the filter but rest of the code execute

You guys can clone my repo and try it yourself. If it's not a lavaplayer-fork issue then it might be JDK issue. Kindly let me know

Thank you

Playing over Discord

I'm trying to integrate JavaMod with Lavaplayer, but guess it can't be added to the project as it's LGPL (am I right??) I face some sound problems doing the integration. Uploading a mod file through Discord and sending data in AudioPipeline's process with chunck sized ShortBuffer just makes a lot of noise... some times bits of something sounding like an old am/fm radio not right tuned. Writing the same data on javax.sound.sampled.SourceDataLine playes the tune right. Any ideas on what is going wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.