lavalink-devs / lavaplayer Goto Github PK
View Code? Open in Web Editor NEWLavaplayer fork maintained by Lavalink
License: Apache License 2.0
Lavaplayer fork maintained by Lavalink
License: Apache License 2.0
When I load an ogg audio stream (icecast webradio), I get this error:
2023-05-17 18:30:23.670 INFO 94 --- [XNIO-1 task-12] l.server.player.AudioLoaderRestHandler : Got request to load for identifier "http://icecast.flazebot.com:8100/phonk_premium.ogg"
2023-05-17 18:30:23.671 WARN 94 --- [lava-daemon-pool-info-loader-2-thread-1] c.s.d.l.container.ogg.OggContainerProbe : Failed to collect additional information on OGG stream.
java.lang.NullPointerException: Cannot invoke "com.sedmelluq.discord.lavaplayer.container.ogg.OggStreamSizeInfo.getDuration()" because "sizeInfo" is null
at com.sedmelluq.discord.lavaplayer.container.ogg.vorbis.OggVorbisCodecHandler.loadMetadata(OggVorbisCodecHandler.java:62) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.ogg.OggTrackLoader.loadMetadata(OggTrackLoader.java:36) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.ogg.OggContainerProbe.collectStreamInformation(OggContainerProbe.java:61) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.ogg.OggContainerProbe.probe(OggContainerProbe.java:46) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.checkContainer(MediaContainerDetection.java:91) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.detectContainer(MediaContainerDetection.java:76) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.detectContainer(MediaContainerDetection.java:61) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.detectContainerWithClient(HttpAudioSourceManager.java:142) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.detectContainer(HttpAudioSourceManager.java:120) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.loadItem(HttpAudioSourceManager.java:81) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:449) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:431) ~[lavaplayer-1.4.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:223) ~[lavaplayer-1.4.0.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: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]
2023-05-17 18:30:23.671 INFO 94 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader : Loaded track phonk
The track plays correctly but at the end of the music, the end of track event is called and the stream is not played anymore even though the audio stream has not stopped.
After taking the version 3.7.4 of Lavalink it turns out that the problem is solved, I think it comes from the update of lavaplayer to 1.4.0, the lavalink logs (same configuration) :
2023-05-17 20:16:21.626 INFO 230156 --- [XNIO-1 task-1] l.server.player.AudioLoaderRestHandler : Got request to load for identifier "http://icecast.flazebot.com:8100/phonk_premium.ogg"
2023-05-17 20:16:21.902 INFO 230156 --- [lava-daemon-pool-info-loader-2-thread-1] lavalink.server.player.AudioLoader : Loaded track phonk
2023-05-17 20:16:21.905 INFO 230156 --- [XNIO-1 task-2] lavalink.server.io.RequestLoggingFilter : GET /v3/loadtracks?identifier=http://icecast.flazebot.com:8100/phonk_premium.ogg, client=192.168.0.2
Client used: Pomice
Output of java -version
:
openjdk version "17.0.6" 2023-01-17
OpenJDK Runtime Environment (build 17.0.6+10-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 17.0.6+10-Debian-1deb11u1, mixed mode, sharing)
Output of java -jar Lavalink.jar --version
:
Version: 3.7.5
Build time: 06.03.2023 12:02:05 UTC
Branch HEAD
Commit: c00286d
Commit time: 06.03.2023 11:59:46 UTC
JVM: 17.0.6
Lavaplayer 1.4.0-original
One of my users came to me about a problem with loading a playlist and it works just fine but with this specific playlist it won't load and I get the following error: java.lang.NullPointerException: Cannot invoke "String.length()" because "str" is null
Steps to reproduce the behavior:
All tracks to load
Client used: lavalink-client
Lavalink Logs:
2023-10-10T21:12:32.736-07:00 INFO 6288 --- [ XNIO-1 task-3] l.server.player.AudioLoaderRestHandler : Got request to load for identifier "https://youtube.com/playlist?list=PLOZHxgoRx5l2AGC3AQMmoVgkhUaHBuriM&si=kfZxBI39pUSF4hEj"
2023-10-10T21:12:33.893-07:00 INFO 6288 --- [ XNIO-1 task-3] lavalink.server.player.AudioLoader : Loaded playlist hYpE hOuRs
2023-10-10T21:12:33.925-07:00 WARN 6288 --- [ XNIO-1 task-3] c.s.d.l.p.DefaultAudioPlayerManager : Load result handler for https://youtube.com/playlist?list=PLOZHxgoRx5l2AGC3AQMmoVgkhUaHBuriM&si=kfZxBI39pUSF4hEj threw an exception
java.lang.NullPointerException: Cannot invoke "String.length()" because "str" is null
at java.base/java.io.DataOutputStream.writeUTF(DataOutputStream.java:359) ~[na:na]
at java.base/java.io.DataOutputStream.writeUTF(DataOutputStream.java:333) ~[na:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.encodeTrack(DefaultAudioPlayerManager.java:218) ~[lavaplayer-2.0.2.jar!/:na]
at lavalink.server.util.UtilKt.encodeTrack(util.kt:138) ~[classes!/:4.0.0-beta.4]
at lavalink.server.util.UtilKt.toTrack(util.kt:48) ~[classes!/:4.0.0-beta.4]
at lavalink.server.player.AudioLoader.playlistLoaded(AudioLoader.kt:70) ~[classes!/:4.0.0-beta.4]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:422) ~[lavaplayer-2.0.2.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:394) ~[lavaplayer-2.0.2.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.loadItemSync(DefaultAudioPlayerManager.java:156) ~[lavaplayer-2.0.2.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager.loadItemSync(AudioPlayerManager.java:91) ~[lavaplayer-2.0.2.jar!/:na]
at lavalink.server.player.AudioLoader.load(AudioLoader.kt:56) ~[classes!/:4.0.0-beta.4]
at lavalink.server.player.AudioLoaderRestHandler.loadTracks(AudioLoaderRestHandler.kt:56) ~[classes!/:4.0.0-beta.4]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207) ~[spring-web-6.0.9.jar!/:6.0.9]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152) ~[spring-web-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:527) ~[jakarta.servlet-api-6.0.0.jar!/:6.0.0]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614) ~[jakarta.servlet-api-6.0.0.jar!/:6.0.0]
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:289) ~[spring-web-6.0.9.jar!/:6.0.9]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.9.jar!/:6.0.9]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at lavalink.server.io.ResponseHeaderFilter.doFilterInternal(ResponseHeaderFilter.kt:17) ~[classes!/:4.0.0-beta.4]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.9.jar!/:6.0.9]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.0.9.jar!/:6.0.9]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.9.jar!/:6.0.9]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) ~[jboss-threads-3.5.0.Final.jar!/:3.5.0.Final]
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513) ~[jboss-threads-3.5.0.Final.jar!/:3.5.0.Final]
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538) ~[jboss-threads-3.5.0.Final.jar!/:3.5.0.Final]
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282) ~[xnio-api-3.8.8.Final.jar!/:3.8.8.Final]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
Was asked to open this issue from the Discord server by topi
As a continuation of Walkyst/lavaplayer-natives-fork#6, it seems that this issue isn't caused by libmpg123 itself, but by lavaplayer incorrectly determining the MP3 parameters if the input is a MP3 2.5 file.
This results in a slew of vague and unhelpful mpg123 error messages (shown in the issue linked before).
I'm not entirely sure what it would take to implement MP3 2.5 support, but reworking this, and everything that depends on it, is probably a good start:
true
for my sample file. Forcing it to return false
doesn't solve much, because the bitrate and sample rate are still incorrectly determined.I'm constantly getting this error message on LavaLink. How should I fix it?
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something went wrong when looking up the track
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:45) ~[lavaplayer-2.0.4.jar!/:na]
There seems to be a new issue with YouTube popping up sporadically. It seems to affect any video but it does not happen 100% of the time, I was able to reproduce it with the following video: https://www.youtube.com/watch?v=-k9qDxyxS3s
When it fails, it produces the following error:
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Video returned by YouTube isn't what was requested
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.load(DefaultYoutubeTrackDetailsLoader.java:59)
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:36)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:230)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:254)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:250)
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromUrlWithVideoId(DefaultYoutubeLinkRouter.java:103)
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:68)
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:46)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:218)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:149)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:412)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:394)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.loadItemSync(DefaultAudioPlayerManager.java:156)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$loadItem$0(DefaultAudioPlayerManager.java:175)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
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)
Caused by: java.lang.IllegalStateException: {"responseContext":{"serviceTrackingParams":[{"service":"GFEEDBACK","params":[{"key":"is_viewed_live","value":"False"},{"key":"is_alc_surface","value":"false"},{"key":"ipcc","value":"0"},{"key":"logged_in","value":"0"},{"key":"e","value":"23858057,23944306,23946420,23966208,23983296,23998056,24004644,24036947,24077241,24078649,24080738,24094148,24117491,24120820,24132305,24135310,24143331,24166867,24173288,24181174,24187377,24187920,24230811,24232551,24241378,24255545,24265964,24267186,24290971,24377598,24390675,24397985,24406318,24407446,24451319,24458317,24458324,24458329,24458684,24468724,24515423,24522874,24524098,24542367,24548627,24548629,24556101,24560416,24569425,24585133,24585737,24697013,39325978,51003636,51009781,51012659,51014091,51016856,51017346,51019626,51020570,51025415,51027870,51030103,51033399,51033765,51037346,51037349,51037540,51043775,51048489,51050361,51053689,51057842,51057857,51057865,51060353,51064835,51068313,51068632,51069269,51074183,51079239,51079299,51080128,51082236,51082384,51083232,51084267,51084279,51084290,51089177,51089441,51092557,51092661,51094171,51094178,51094197,51094200,51094207,51095478,51096646,51096989,51099085,51099404,51101454,51101465,51103088,51103518,51103858,51105795,51105868,51106995,51107338,51108006,51108486,51108620,51108974,51109702,51110160,51111738,51112401,51113658,51113661,51115184,51116067,51116578,51118064,51118293,51118595,51118932,51123073,51123540,51124104,51124478,51125857,51125903,51126664,51126845,51127837,51128585,51129060,51129702,51129851,51131429,51131840,51132393,51134506,51134769,51134883,51135346,51135658,51136217,51136785,51136842,51137086,51137134,51137185,51137672,51139379,51140749,51141541,51141780,51141798,51142469,51142566,51145258,51146435,51146962,51148976,51148983,51149606,51152042,51152050,51152207,51153082"}]},{"service":"CSI","params":[{"key":"c","value":"ANDROID"},{"key":"cver","value":"18.06.35"},{"key":"yt_li","value":"0"},{"key":"GetPlayer_rid","value":"0xc1fc2bd437f0434a"}]},{"service":"GUIDED_HELP","params":[{"key":"logged_in","value":"0"}]},{"service":"ECATCHER","params":[{"key":"client.version","value":"18.06"},{"key":"client.name","value":"ANDROID"}]},{"service":"LISTNR","params":[{"key":"e","value":"51136217,51134506,51089441,51104424,51111738,51152042,24267186,51080128,24406318,51102763,51103518,51118293,24524098,51101454,24036947,51096989,24290971,51126664,51012659,51064835,24181216,51108006,51124104,24569425,51068632,24556101,51125857,24254870,24560416,24024517,24230811,51152050,51019626,24143331,24033252,51132393,24250570,51146435,51074183,51131840,51016856,51092661,24458317,24548627,51112401,51137672,24458684,51050361,51104418,51140749,24410415,51030735,51142469,24458324,24195012,51103088,24232551,24522874,51082384,51104447,51144986,51009781,51074286,51096646,24181174,51123540,51118932,24451319,51025415,24220751,51146962,51043775,51134883,51152207,51033765,51137185,51106995,24135310,51141780,51069269,51101465,51116067,51053689,51116578,24515423,24458329,51137134,51048489,51033399,51037540,24166867,51139379,51153082,24286257,51060353,51105868,51125903,51149606,51129060,24397985,51027870,51020570,24117491,24377598,51142566,51128585,51127837,51135346,24585737,24585133,51003636,24274141,51079239,51136842,51095478,51014091,51110160,24195115,39325978,24548629,24542367,51136785"}]}],"maxAgeSeconds":0},"playabilityStatus":{"status":"OK","playableInEmbed":true,"offlineability":{"buttonRenderer":{"serviceEndpoint":{"clickTrackingParams":"CAkQ6ewBIhMI8qOq2uWahQMVLso_BB0epAIL","ypcGetOfflineUpsellEndpoint":{"params":"ChPqqN25AQ0KC2FRdkdJSWRnRkRNIgthUXZHSUlkZ0ZETSoVCAkYAVIPCgthUXZHSUlkZ0ZETSAB"}},"trackingParams":"CAkQ6ewBIhMI8qOq2uWahQMVLso_BB0epAIL"}},"pictureInPicture":{"pictureInPictureRenderer":{"playableInPip":true}},"miniplayer":{"miniplayerRenderer":{"playbackMode":"PLAYBACK_MODE_ALLOW"}},"contextParams":"Q0FFU0FnZ0M="},"streamingData":{"expiresInSeconds":"21540","formats":[{"itag":18,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fmp4&cnr=14&ratebypass=yes&dur=300.071&lmt=1711576327765252&mt=1711760447&fvip=2&fexp=51141541&c=ANDROID&txp=5538434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Ccnr%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRAIgbMiIvk_Iy89iHsRlVsOiu58NKt11LSanCLlJmqEP5JACIC67Aq5WBk7ZkOo15TkMcDUCUC2agjTjkysizlIZfQJ1&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"","bitrate":137681,"width":640,"height":358,"lastModified":"1711576327765252","quality":"medium","fps":6,"qualityLabel":"360p","projectionType":"RECTANGULAR","audioQuality":"AUDIO_QUALITY_LOW","approxDurationMs":"300071","audioSampleRate":"44100","audioChannels":2}],"adaptiveFormats":[{"itag":134,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=134&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fmp4&gir=yes&clen=310413&dur=300.000&lmt=1711576325179364&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRAIgUgENMoU7UQozIUJrzLRpaqLGNeang3Ch94zAgWLka7ICIFwHYgJyiX_Ob0-7Q76JxbQQhjt9o2kH5oaQDVLOUZJP&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/mp4; codecs=\"avc1.4d4016\"","bitrate":9667,"width":640,"height":358,"initRange":{"start":"0","end":"740"},"indexRange":{"start":"741","end":"1288"},"lastModified":"1711576325179364","contentLength":"310413","quality":"medium","fps":6,"qualityLabel":"360p","projectionType":"RECTANGULAR","averageBitrate":8277,"highReplication":true,"approxDurationMs":"300000"},{"itag":243,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=243&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fwebm&gir=yes&clen=620700&dur=299.999&lmt=1711576309861254&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5537434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIhAOgjyj4bNRT42eZZPpPmo_CwWwV5f4yVCh614-GOpirbAiAlrSGUyDcRYMM_hrU1y9kwCrAN41p5FH-hRvm3plxViQ%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/webm; codecs=\"vp9\"","bitrate":19045,"width":640,"height":358,"initRange":{"start":"0","end":"218"},"indexRange":{"start":"219","end":"939"},"lastModified":"1711576309861254","contentLength":"620700","quality":"medium","fps":6,"qualityLabel":"360p","projectionType":"RECTANGULAR","averageBitrate":16552,"colorInfo":{"primaries":"COLOR_PRIMARIES_BT709","transferCharacteristics":"COLOR_TRANSFER_CHARACTERISTICS_BT709","matrixCoefficients":"COLOR_MATRIX_COEFFICIENTS_BT709"},"approxDurationMs":"299999"},{"itag":396,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=396&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fmp4&gir=yes&clen=563729&dur=300.000&lmt=1711576399164396&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5537434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIhALLdwjkHHCKhDxqPlZ1qZUA43514j_cr6wYJmkT34u97AiBXcrCM6hK1jz7kQQgASEZl5MNQ_PlFNPZoZ-u91YSczA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/mp4; codecs=\"av01.0.01M.08\"","bitrate":17204,"width":640,"height":358,"initRange":{"start":"0","end":"699"},"indexRange":{"start":"700","end":"1247"},"lastModified":"1711576399164396","contentLength":"563729","quality":"medium","fps":6,"qualityLabel":"360p","projectionType":"RECTANGULAR","averageBitrate":15032,"colorInfo":{"primaries":"COLOR_PRIMARIES_BT709","transferCharacteristics":"COLOR_TRANSFER_CHARACTERISTICS_BT709","matrixCoefficients":"COLOR_MATRIX_COEFFICIENTS_BT709"},"approxDurationMs":"300000"},{"itag":133,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=133&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fmp4&gir=yes&clen=208905&dur=300.000&lmt=1711576334264359&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRAIgTXzfIZWobxpjnuM0RGCGeFQk4V0gYBHXN-Ch5ngAVWoCIFewVrjl-DKJWFujfjX9W7dCNcKpE_dko5ujdsN1z9Fl&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/mp4; codecs=\"avc1.4d4015\"","bitrate":7003,"width":426,"height":238,"initRange":{"start":"0","end":"740"},"indexRange":{"start":"741","end":"1288"},"lastModified":"1711576334264359","contentLength":"208905","quality":"small","fps":6,"qualityLabel":"240p","projectionType":"RECTANGULAR","averageBitrate":5570,"approxDurationMs":"300000"},{"itag":242,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=242&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fwebm&gir=yes&clen=384187&dur=299.999&lmt=1711576293743107&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5537434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIgPV3ttKDGHntBtS2suyaHxpMyg5KnqdDUD_--rnV9TWoCIQDUmd68TPH0aUUZnizk6qLjl4HXDWUqXdzBD_SowTj-uQ%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/webm; codecs=\"vp9\"","bitrate":11689,"width":426,"height":238,"initRange":{"start":"0","end":"217"},"indexRange":{"start":"218","end":"935"},"lastModified":"1711576293743107","contentLength":"384187","quality":"small","fps":6,"qualityLabel":"240p","projectionType":"RECTANGULAR","averageBitrate":10245,"colorInfo":{"primaries":"COLOR_PRIMARIES_BT709","transferCharacteristics":"COLOR_TRANSFER_CHARACTERISTICS_BT709","matrixCoefficients":"COLOR_MATRIX_COEFFICIENTS_BT709"},"approxDurationMs":"299999"},{"itag":395,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=395&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fmp4&gir=yes&clen=324781&dur=300.000&lmt=1711576321021233&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5537434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRgIhAMq2FYcQGEEPJ7UKKa8AczKMQ9DuFJkChayyxxUDNjlMAiEA3Rc8gO30bgQf9iSPQc7R9gj3Jl7UzcPIGgClzBMCf5Y%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/mp4; codecs=\"av01.0.00M.08\"","bitrate":10124,"width":426,"height":238,"initRange":{"start":"0","end":"699"},"indexRange":{"start":"700","end":"1247"},"lastModified":"1711576321021233","contentLength":"324781","quality":"small","fps":6,"qualityLabel":"240p","projectionType":"RECTANGULAR","averageBitrate":8660,"colorInfo":{"primaries":"COLOR_PRIMARIES_BT709","transferCharacteristics":"COLOR_TRANSFER_CHARACTERISTICS_BT709","matrixCoefficients":"COLOR_MATRIX_COEFFICIENTS_BT709"},"approxDurationMs":"300000"},{"itag":160,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=160&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fmp4&gir=yes&clen=139006&dur=300.000&lmt=1711576325035365&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRAIgVB4hLGg7bm5P-5UkSeL5-mfmBbAF1is4xP7AWBKEfYoCIFU-ZrmDl9d-46UYmTy5u6ksLQtMN5g0f_QK6znXb0s_&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/mp4; codecs=\"avc1.4d400b\"","bitrate":5131,"width":256,"height":144,"initRange":{"start":"0","end":"739"},"indexRange":{"start":"740","end":"1287"},"lastModified":"1711576325035365","contentLength":"139006","quality":"tiny","fps":6,"qualityLabel":"144p","projectionType":"RECTANGULAR","averageBitrate":3706,"approxDurationMs":"300000"},{"itag":278,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=278&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fwebm&gir=yes&clen=223725&dur=299.999&lmt=1711576390934771&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5537434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRgIhAJXvNg5kIF_QP7izz6-W_JnCCAPJXOCEAni-nSRDPi16AiEAjJ4MhWBRqbbFCXyLnNG85hoM-l9U9xmpURv4oFI4o_Q%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/webm; codecs=\"vp9\"","bitrate":6956,"width":256,"height":144,"initRange":{"start":"0","end":"217"},"indexRange":{"start":"218","end":"930"},"lastModified":"1711576390934771","contentLength":"223725","quality":"tiny","fps":6,"qualityLabel":"144p","projectionType":"RECTANGULAR","averageBitrate":5966,"colorInfo":{"primaries":"COLOR_PRIMARIES_BT709","transferCharacteristics":"COLOR_TRANSFER_CHARACTERISTICS_BT709","matrixCoefficients":"COLOR_MATRIX_COEFFICIENTS_BT709"},"approxDurationMs":"299999"},{"itag":394,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=394&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fmp4&gir=yes&clen=207535&dur=300.000&lmt=1711576438084941&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5537434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIhAKVMSSd0CsfYMGFDfbbNcpWn16e-7J5UGOtH7LSGS_yzAiA2-WsYBFD-77iWQUnCytXRBCnNxffFojspmLQipIaSOA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/mp4; codecs=\"av01.0.00M.08\"","bitrate":6913,"width":256,"height":144,"initRange":{"start":"0","end":"699"},"indexRange":{"start":"700","end":"1247"},"lastModified":"1711576438084941","contentLength":"207535","quality":"tiny","fps":6,"qualityLabel":"144p","projectionType":"RECTANGULAR","averageBitrate":5534,"colorInfo":{"primaries":"COLOR_PRIMARIES_BT709","transferCharacteristics":"COLOR_TRANSFER_CHARACTERISTICS_BT709","matrixCoefficients":"COLOR_MATRIX_COEFFICIENTS_BT709"},"approxDurationMs":"300000"},{"itag":597,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=597&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fmp4&gir=yes&clen=141189&dur=300.000&lmt=1711576306929520&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRgIhAP01_9JWOrnMZedTwv5Eeq4LBaJfzIfSit7zcUNSbuvfAiEA0HU0s387AyhCPq3zYDzx8V2jWFy0devJ2A--N8BynL8%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/mp4; codecs=\"avc1.4d400b\"","bitrate":5196,"width":256,"height":144,"initRange":{"start":"0","end":"739"},"indexRange":{"start":"740","end":"1287"},"lastModified":"1711576306929520","contentLength":"141189","quality":"tiny","fps":6,"qualityLabel":"144p","projectionType":"RECTANGULAR","averageBitrate":3765,"approxDurationMs":"300000"},{"itag":598,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=598&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=video%2Fwebm&gir=yes&clen=222740&dur=299.999&lmt=1711576303810722&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRgIhAKxf_yd8KzfGwMAC1oj2lULKq2R-u-a8IBihzQU61H_vAiEAvej45qTbhVV0JVBHbXZEtyhFpZfrrqBGDNkWasOtEt8%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"video/webm; codecs=\"vp9\"","bitrate":6956,"width":256,"height":144,"initRange":{"start":"0","end":"217"},"indexRange":{"start":"218","end":"930"},"lastModified":"1711576303810722","contentLength":"222740","quality":"tiny","fps":6,"qualityLabel":"144p","projectionType":"RECTANGULAR","averageBitrate":5939,"colorInfo":{"primaries":"COLOR_PRIMARIES_BT709","transferCharacteristics":"COLOR_TRANSFER_CHARACTERISTICS_BT709","matrixCoefficients":"COLOR_MATRIX_COEFFICIENTS_BT709"},"approxDurationMs":"299999"},{"itag":139,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=139&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=audio%2Fmp4&gir=yes&clen=1830967&dur=300.141&lmt=1711574706493930&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIgVZJtpdeuZcHltzo2myq6HPICE9BWAsbaLMwiAArw8zECIQCbO-VuOcQcAYBiTneWjthmtJgkb2f8aByjbxn8w0Dflg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"audio/mp4; codecs=\"mp4a.40.5\"","bitrate":50039,"initRange":{"start":"0","end":"640"},"indexRange":{"start":"641","end":"1044"},"lastModified":"1711574706493930","contentLength":"1830967","quality":"tiny","projectionType":"RECTANGULAR","averageBitrate":48802,"audioQuality":"AUDIO_QUALITY_LOW","approxDurationMs":"300141","audioSampleRate":"22050","audioChannels":2,"loudnessDb":-9986},{"itag":140,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=140&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=audio%2Fmp4&gir=yes&clen=4857095&dur=300.071&lmt=1711574696628887&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRgIhAPiIfV9leVFtZhCnWmwg_qbuOBPCs3KUtgiLz4bRAvMRAiEApLQjS5Bz1nNDoPedcyo-ZBU5kQZzKJrCJ6OoBPKduZA%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"audio/mp4; codecs=\"mp4a.40.2\"","bitrate":130951,"initRange":{"start":"0","end":"631"},"indexRange":{"start":"632","end":"1035"},"lastModified":"1711574696628887","contentLength":"4857095","quality":"tiny","projectionType":"RECTANGULAR","averageBitrate":129491,"highReplication":true,"audioQuality":"AUDIO_QUALITY_MEDIUM","approxDurationMs":"300071","audioSampleRate":"44100","audioChannels":2,"loudnessDb":-9986},{"itag":249,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=249&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=136118&dur=300.021&lmt=1711574692785189&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIhAO0Lno4luJOaHxGXgxbe_PRGbbKWoESdyQ82FP0EBErnAiBXP3cbHyh9ee0aCjwB80La1_-pAPfkA-UEUp5TCzAlSQ%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"audio/webm; codecs=\"opus\"","bitrate":10800,"initRange":{"start":"0","end":"258"},"indexRange":{"start":"259","end":"768"},"lastModified":"1711574692785189","contentLength":"136118","quality":"tiny","projectionType":"RECTANGULAR","averageBitrate":3629,"audioQuality":"AUDIO_QUALITY_LOW","approxDurationMs":"300021","audioSampleRate":"48000","audioChannels":2,"loudnessDb":-9986},{"itag":250,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=250&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=136118&dur=300.021&lmt=1711574710710074&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIgemaZliMIlRe3QbXuyoqZiTZKUfQyoWg3vajRdzsXAG4CIQC3FBbV9Ym9nhc5W4QjjPyTALGcJLdYsa8yJsiKnw7n3g%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"audio/webm; codecs=\"opus\"","bitrate":10800,"initRange":{"start":"0","end":"258"},"indexRange":{"start":"259","end":"768"},"lastModified":"1711574710710074","contentLength":"136118","quality":"tiny","projectionType":"RECTANGULAR","averageBitrate":3629,"audioQuality":"AUDIO_QUALITY_LOW","approxDurationMs":"300021","audioSampleRate":"48000","audioChannels":2,"loudnessDb":-9986},{"itag":251,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=251&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=136118&dur=300.021&lmt=1711574689964039&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRAIge0tPK1cpmpPmYdyVD_9C14lAUaJT4v7t55wHv_TcMwYCIBZVjWncG-b4AQxYPnrC-ww8Gwc_pznktqJVEGqlR3cB&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"audio/webm; codecs=\"opus\"","bitrate":10800,"initRange":{"start":"0","end":"258"},"indexRange":{"start":"259","end":"768"},"lastModified":"1711574689964039","contentLength":"136118","quality":"tiny","projectionType":"RECTANGULAR","averageBitrate":3629,"audioQuality":"AUDIO_QUALITY_MEDIUM","approxDurationMs":"300021","audioSampleRate":"48000","audioChannels":2,"loudnessDb":-9986},{"itag":599,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=599&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=audio%2Fmp4&gir=yes&clen=1155650&dur=300.141&lmt=1711574730071930&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRAIgLixB71hVrAK3u8PIQDwEkQXkYlGB7j524LnvD_XIRuQCID-1efZP5hPayR6eCnXMSS1ZVfY3ZzL_XgZgAIBGg-jX&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"audio/mp4; codecs=\"mp4a.40.5\"","bitrate":32052,"initRange":{"start":"0","end":"640"},"indexRange":{"start":"641","end":"1044"},"lastModified":"1711574730071930","contentLength":"1155650","quality":"tiny","projectionType":"RECTANGULAR","averageBitrate":30802,"audioQuality":"AUDIO_QUALITY_ULTRALOW","approxDurationMs":"300141","audioSampleRate":"22050","audioChannels":2,"loudnessDb":-9986},{"itag":600,"url":"https://rr2---sn-p5qlsn7s.googlevideo.com/videoplayback?expire=1711782347&ei=a2UHZrLCGq6U_9EPnsiKWA&ip=138.199.52.72&id=o-AJmY_akAVe1IbRpLKg6ojQspHxlwB0kE8JDUEOnamcdX&itag=600&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=T2&mm=31%2C26&mn=sn-p5qlsn7s%2Csn-ab5sznld&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=2300000&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=136118&dur=300.021&lmt=1711574696633882&mt=1711760447&fvip=2&keepalive=yes&fexp=51141541&c=ANDROID&txp=5532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIhALMSLco05z44IPHICkUc1ZEPK0Vvjhz6MAYHu2iB3KzNAiBJ721RWaQwF9_UEh6W4fYVltCKtb8TmPYKEigT-dgOMg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=ALClDIEwRQIgZ3zRpiST-vrFIi5jDuM0BJShxyIPjGCTGG1TMk1D7EMCIQC-awNnzQZHUfS3ZmyDrh-1c77QCGr5ke5JF5JkrL5nuQ%3D%3D","mimeType":"audio/webm; codecs=\"opus\"","bitrate":10800,"initRange":{"start":"0","end":"258"},"indexRange":{"start":"259","end":"768"},"lastModified":"1711574696633882","contentLength":"136118","quality":"tiny","projectionType":"RECTANGULAR","averageBitrate":3629,"audioQuality":"AUDIO_QUALITY_ULTRALOW","approxDurationMs":"300021","audioSampleRate":"48000","audioChannels":2,"loudnessDb":-9986}]},"playbackTracking":{"videostatsPlaybackUrl":{"baseUrl":"https://s.youtube.com/api/stats/playback?cl=619301790&docid=aQvGIIdgFDM&ei=a2UHZrLCGq6U_9EPnsiKWA&fexp=v1%2C23858057%2C86249%2C2114%2C19788%2C17088%2C14760%2C6588%2C32303%2C40294%2C1408%2C2089%2C13410%2C23343%2C3329%2C11485%2C3005%2C8021%2C23536%2C6421%2C7886%2C6203%2C543%2C42891%2C1740%2C8827%2C14167%2C10419%2C1222%2C23785%2C86627%2C13077%2C7310%2C8333%2C1128%2C43873%2C6998%2C7%2C5%2C355%2C10040%2C46699%2C7451%2C1224%2C18269%2C6260%2C2%2C7472%2C4315%2C9009%2C15708%2C604%2C111276%2C14628965%2C11677658%2C6145%2C2878%2C1432%2C2765%2C490%2C2280%2C944%2C4845%2C2455%2C2233%2C3296%2C366%2C3581%2C3%2C191%2C6235%2C4714%2C1872%2C3328%2C4153%2C15%2C8%2C2488%2C4482%2C3478%2C319%2C637%2C4914%2C5056%2C60%2C829%2C2108%2C148%2C848%2C1035%2C12%2C11%2C4887%2C264%2C3116%2C104%2C1510%2C7%2C19%2C3%2C7%2C1271%2C1168%2C343%2C2096%2C319%2C2050%2C11%2C1623%2C430%2C340%2C1937%2C73%2C1127%2C343%2C668%2C480%2C134%2C354%2C728%2C458%2C1578%2C663%2C1257%2C3%2C1523%2C883%2C511%2C1486%2C229%2C302%2C337%2C4141%2C467%2C564%2C374%2C1379%2C46%2C761%2C181%2C992%2C748%2C475%2C642%2C149%2C1578%2C411%2C553%2C2113%2C263%2C114%2C463%2C312%2C559%2C568%2C57%2C244%2C48%2C51%2C487%2C1707%2C1370%2C792%2C239%2C18%2C671%2C97%2C2692%2C1177%2C527%2C2014%2C7%2C623%2C2436%2C8%2C157%2C875&ns=yt&plid=AAYU1ltK3Pf_8f2h&adformat=0_6&el=adunit&len=301&of=wbAUJoLFDaeeOSJrHXH1sg&vm=CAEQABgEOjJBSHFpSlRMdF9JdU5jZmExYzlDSWN5T1VMTjV0RlhKTkt1Snp1Q1Q4NFVXUXNZSXM1d2JuQVBta0tESXFiMU5FSkwyazFxU002akJ4YWkyZHBubVdRNWlZUFo1V0JTbkZtMlc0Tkg5U1A2bWNtb0hoam0zelZJM1ZZLTlRaEd0cUZ1M3hCZXAzMjhib1ppclBsNFoxeTJzcWxzaklhVlZaQUFoAg","headers":[{"headerType":"USER_AUTH"},{"headerType":"VISITOR_ID"},{"headerType":"PLUS_PAGE_ID"}]},"videostatsDelayplayUrl":{"baseUrl":"https://s.youtube.com/api/stats/delayplay?cl=619301790&docid=aQvGIIdgFDM&ei=a2UHZrLCGq6U_9EPnsiKWA&fexp=v1%2C23858057%2C86249%2C2114%2C19788%2C17088%2C14760%2C6588%2C32303%2C40294%2C1408%2C2089%2C13410%2C23343%2C3329%2C11485%2C3005%2C8021%2C23536%2C6421%2C7886%2C6203%2C543%2C42891%2C1740%2C8827%2C14167%2C10419%2C1222%2C23785%2C86627%2C13077%2C7310%2C8333%2C1128%2C43873%2C6998%2C7%2C5%2C355%2C10040%2C46699%2C7451%2C1224%2C18269%2C6260%2C2%2C7472%2C4315%2C9009%2C15708%2C604%2C111276%2C14628965%2C11677658%2C6145%2C2878%2C1432%2C2765%2C490%2C2280%2C944%2C4845%2C2455%2C2233%2C3296%2C366%2C3581%2C3%2C191%2C6235%2C4714%2C1872%2C3328%2C4153%2C15%2C8%2C2488%2C4482%2C3478%2C319%2C637%2C4914%2C5056%2C60%2C829%2C2108%2C148%2C848%2C1035%2C12%2C11%2C4887%2C264%2C3116%2C104%2C1510%2C7%2C19%2C3%2C7%2C1271%2C1168%2C343%2C2096%2C319%2C2050%2C11%2C1623%2C430%2C340%2C1937%2C73%2C1127%2C343%2C668%2C480%2C134%2C354%2C728%2C458%2C1578%2C663%2C1257%2C3%2C1523%2C883%2C511%2C1486%2C229%2C302%2C337%2C4141%2C467%2C564%2C374%2C1379%2C46%2C761%2C181%2C992%2C748%2C475%2C642%2C149%2C1578%2C411%2C553%2C2113%2C263%2C114%2C463%2C312%2C559%2C568%2C57%2C244%2C48%2C51%2C487%2C1707%2C1370%2C792%2C239%2C18%2C671%2C97%2C2692%2C1177%2C527%2C2014%2C7%2C623%2C2436%2C8%2C157%2C875&ns=yt&plid=AAYU1ltK3Pf_8f2h&adformat=0_6&el=adunit&is_ad=1&len=301&of=wbAUJoLFDaeeOSJrHXH1sg&vm=CAEQABgEOjJBSHFpSlRMdF9JdU5jZmExYzlDSWN5T1VMTjV0RlhKTkt1Snp1Q1Q4NFVXUXNZSXM1d2JuQVBta0tESXFiMU5FSkwyazFxU002akJ4YWkyZHBubVdRNWlZUFo1V0JTbkZtMlc0Tkg5U1A2bWNtb0hoam0zelZJM1ZZLTlRaEd0cUZ1M3hCZXAzMjhib1ppclBsNFoxeTJzcWxzaklhVlZaQUFoAg","headers":[{"headerType":"USER_AUTH"},{"headerType":"VISITOR_ID"},{"headerType":"PLUS_PAGE_ID"}]},"videostatsWatchtimeUrl":{"baseUrl":"https://s.youtube.com/api/stats/watchtime?cl=619301790&docid=aQvGIIdgFDM&ei=a2UHZrLCGq6U_9EPnsiKWA&fexp=v1%2C23858057%2C86249%2C2114%2C19788%2C17088%2C14760%2C6588%2C32303%2C40294%2C1408%2C2089%2C13410%2C23343%2C3329%2C11485%2C3005%2C8021%2C23536%2C6421%2C7886%2C6203%2C543%2C42891%2C1740%2C8827%2C14167%2C10419%2C1222%2C23785%2C86627%2C13077%2C7310%2C8333%2C1128%2C43873%2C6998%2C7%2C5%2C355%2C10040%2C46699%2C7451%2C1224%2C18269%2C6260%2C2%2C7472%2C4315%2C9009%2C15708%2C604%2C111276%2C14628965%2C11677658%2C6145%2C2878%2C1432%2C2765%2C490%2C2280%2C944%2C4845%2C2455%2C2233%2C3296%2C366%2C3581%2C3%2C191%2C6235%2C4714%2C1872%2C3328%2C4153%2C15%2C8%2C2488%2C4482%2C3478%2C319%2C637%2C4914%2C5056%2C60%2C829%2C2108%2C148%2C848%2C1035%2C12%2C11%2C4887%2C264%2C3116%2C104%2C1510%2C7%2C19%2C3%2C7%2C1271%2C1168%2C343%2C2096%2C319%2C2050%2C11%2C1623%2C430%2C340%2C1937%2C73%2C1127%2C343%2C668%2C480%2C134%2C354%2C728%2C458%2C1578%2C663%2C1257%2C3%2C1523%2C883%2C511%2C1486%2C229%2C302%2C337%2C4141%2C467%2C564%2C374%2C1379%2C46%2C761%2C181%2C992%2C748%2C475%2C642%2C149%2C1578%2C411%2C553%2C2113%2C263%2C114%2C463%2C312%2C559%2C568%2C57%2C244%2C48%2C51%2C487%2C1707%2C1370%2C792%2C239%2C18%2C671%2C97%2C2692%2C1177%2C527%2C2014%2C7%2C623%2C2436%2C8%2C157%2C875&ns=yt&plid=AAYU1ltK3Pf_8f2h&adformat=0_6&el=adunit&is_ad=1&len=301&of=wbAUJoLFDaeeOSJrHXH1sg&vm=CAEQABgEOjJBSHFpSlRMdF9JdU5jZmExYzlDSWN5T1VMTjV0RlhKTkt1Snp1Q1Q4NFVXUXNZSXM1d2JuQVBta0tESXFiMU5FSkwyazFxU002akJ4YWkyZHBubVdRNWlZUFo1V0JTbkZtMlc0Tkg5U1A2bWNtb0hoam0zelZJM1ZZLTlRaEd0cUZ1M3hCZXAzMjhib1ppclBsNFoxeTJzcWxzaklhVlZaQUFoAg","headers":[{"headerType":"USER_AUTH"},{"headerType":"VISITOR_ID"},{"headerType":"PLUS_PAGE_ID"}]},"ptrackingUrl":{"baseUrl":"https://www.youtube.com/ptracking?content_v=&ei=a2UHZrLCGq6U_9EPnsiKWA&plid=AAYU1ltK3Pf_8f2h&pltype=adpromoted&ptchn=youtube_host&ptk=youtube_host&video_id=aQvGIIdgFDM","headers":[{"headerType":"USER_AUTH"},{"headerType":"VISITOR_ID"},{"headerType":"PLUS_PAGE_ID"}]},"qoeUrl":{"baseUrl":"https://s.youtube.com/api/stats/qoe?adformat=0_6&cl=619301790&docid=aQvGIIdgFDM&ei=a2UHZrLCGq6U_9EPnsiKWA&event=streamingstats&fexp=v1%2C23858057%2C86249%2C2114%2C19788%2C17088%2C14760%2C6588%2C32303%2C40294%2C1408%2C2089%2C13410%2C23343%2C3329%2C11485%2C3005%2C8021%2C23536%2C6421%2C7886%2C6203%2C543%2C42891%2C1740%2C8827%2C14167%2C10419%2C1222%2C23785%2C86627%2C13077%2C7310%2C8333%2C1128%2C43873%2C6998%2C7%2C5%2C355%2C10040%2C46699%2C7451%2C1224%2C18269%2C6260%2C2%2C7472%2C4315%2C9009%2C15708%2C604%2C111276%2C14628965%2C11677658%2C6145%2C2878%2C1432%2C2765%2C490%2C2280%2C944%2C4845%2C2455%2C2233%2C3296%2C366%2C3581%2C3%2C191%2C6235%2C4714%2C1872%2C3328%2C4153%2C15%2C8%2C2488%2C4482%2C3478%2C319%2C637%2C4914%2C5056%2C60%2C829%2C2108%2C148%2C848%2C1035%2C12%2C11%2C4887%2C264%2C3116%2C104%2C1510%2C7%2C19%2C3%2C7%2C1271%2C1168%2C343%2C2096%2C319%2C2050%2C11%2C1623%2C430%2C340%2C1937%2C73%2C1127%2C343%2C668%2C480%2C134%2C354%2C728%2C458%2C1578%2C663%2C1257%2C3%2C1523%2C883%2C511%2C1486%2C229%2C302%2C337%2C4141%2C467%2C564%2C374%2C1379%2C46%2C761%2C181%2C992%2C748%2C475%2C642%2C149%2C1578%2C411%2C553%2C2113%2C263%2C114%2C463%2C312%2C559%2C568%2C57%2C244%2C48%2C51%2C487%2C1707%2C1370%2C792%2C239%2C18%2C671%2C97%2C2692%2C1177%2C527%2C2014%2C7%2C623%2C2436%2C8%2C157%2C875&ns=yt&plid=AAYU1ltK3Pf_8f2h","headers":[{"headerType":"USER_AUTH"},{"headerType":"VISITOR_ID"},{"headerType":"PLUS_PAGE_ID"}]},"atrUrl":{"baseUrl":"https://s.youtube.com/api/stats/atr?docid=aQvGIIdgFDM&ei=a2UHZrLCGq6U_9EPnsiKWA&is_ad=1&len=301&ns=yt&plid=AAYU1ltK3Pf_8f2h&ver=2","elapsedMediaTimeSeconds":3,"headers":[{"headerType":"USER_AUTH"},{"headerType":"VISITOR_ID"},{"headerType":"PLUS_PAGE_ID"}]},"engageUrl":{"baseUrl":"https://s.youtube.com/api/stats/engage?adformat=0_6&cl=619301790&cmt=%5BVSS_CMT%5D&conn=%5BVSS_CONN%5D&cpn=%5BVSS_CPN%5D&docid=aQvGIIdgFDM&ei=a2UHZrLCGq6U_9EPnsiKWA&el=adunit&fexp=v1%2C23858057%2C86249%2C2114%2C19788%2C17088%2C14760%2C6588%2C32303%2C40294%2C1408%2C2089%2C13410%2C23343%2C3329%2C11485%2C3005%2C8021%2C23536%2C6421%2C7886%2C6203%2C543%2C42891%2C1740%2C8827%2C14167%2C10419%2C1222%2C23785%2C86627%2C13077%2C7310%2C8333%2C1128%2C43873%2C6998%2C7%2C5%2C355%2C10040%2C46699%2C7451%2C1224%2C18269%2C6260%2C2%2C7472%2C4315%2C9009%2C15708%2C604%2C111276%2C14628965%2C11677658%2C6145%2C2878%2C1432%2C2765%2C490%2C2280%2C944%2C4845%2C2455%2C2233%2C3296%2C366%2C3581%2C3%2C191%2C6235%2C4714%2C1872%2C3328%2C4153%2C15%2C8%2C2488%2C4482%2C3478%2C319%2C637%2C4914%2C5056%2C60%2C829%2C2108%2C148%2C848%2C1035%2C12%2C11%2C4887%2C264%2C3116%2C104%2C1510%2C7%2C19%2C3%2C7%2C1271%2C1168%2C343%2C2096%2C319%2C2050%2C11%2C1623%2C430%2C340%2C1937%2C73%2C1127%2C343%2C668%2C480%2C134%2C354%2C728%2C458%2C1578%2C663%2C1257%2C3%2C1523%2C883%2C511%2C1486%2C229%2C302%2C337%2C4141%2C467%2C564%2C374%2C1379%2C46%2C761%2C181%2C992%2C748%2C475%2C642%2C149%2C1578%2C411%2C553%2C2113%2C263%2C114%2C463%2C312%2C559%2C568%2C57%2C244%2C48%2C51%2C487%2C1707%2C1370%2C792%2C239%2C18%2C671%2C97%2C2692%2C1177%2C527%2C2014%2C7%2C623%2C2436%2C8%2C157%2C875&is_ad=1&lact=%5BVSS_LACT%5D&len=301&ns=yt&of=wbAUJoLFDaeeOSJrHXH1sg&plid=AAYU1ltK3Pf_8f2h&rt=%5BVSS_RT%5D&state=%5BVSS_STATE%5D&vis=%5BVSS_VIS%5D&vm=CAEQABgEOjJBSHFpSlRMdF9JdU5jZmExYzlDSWN5T1VMTjV0RlhKTkt1Snp1Q1Q4NFVXUXNZSXM1d2JuQVBta0tESXFiMU5FSkwyazFxU002akJ4YWkyZHBubVdRNWlZUFo1V0JTbkZtMlc0Tkg5U1A2bWNtb0hoam0zelZJM1ZZLTlRaEd0cUZ1M3hCZXAzMjhib1ppclBsNFoxeTJzcWxzaklhVlZaQUFoAg","headers":[{"headerType":"USER_AUTH"},{"headerType":"VISITOR_ID"}]},"videostatsScheduledFlushWalltimeSeconds":[10,20,30],"videostatsDefaultFlushIntervalSeconds":300},"videoDetails":{"videoId":"aQvGIIdgFDM","title":"Video Not Available","lengthSeconds":"300","keywords":["tips","tricks","help","tutorial","youtube","youtubehelp","support","how to"],"channelId":"UCMDQxm7cUx3yXkfeHa5zJIQ","isOwnerViewing":false,"shortDescription":"Video Not Available","isCrawlable":false,"thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/aQvGIIdgFDM/hqdefault.jpg?sqp=-oaymwEyCHgQWkhG8quKqQMmCAEVAACIQnABwAEG8AEB-AH-BIAC5gKKAgwIABABGGUgZShlMA8=&rs=AOn4CLAcNCNgR1o21wW2bPNPSXq9zrx6Hg","width":120,"height":90},{"url":"https://i.ytimg.com/vi/aQvGIIdgFDM/hqdefault.jpg?sqp=-oaymwE2CMACELQBSEbyq4qpAygIARUAAIhCGAFwAcABBvABAfgB_gSAAuYCigIMCAAQARhlIGUoZTAP&rs=AOn4CLDb0DVkt1kDweb1B48oUPyR5z4pCA","width":320,"height":180},{"url":"https://i.ytimg.com/vi/aQvGIIdgFDM/hqdefault.jpg?sqp=-oaymwEmCOADEOgC8quKqQMa8AEB-AH-BIAC5gKKAgwIABABGGUgZShlMA8=&rs=AOn4CLCK1AwhQMVrg5kj-Jdn6saENiLGKw","width":480,"height":360}]},"allowRatings":false,"viewCount":"404928","author":"YouTube Viewers","isPrivate":false,"isUnpluggedCorpus":false,"isLiveContent":false},"annotations":[{"playerAnnotationsExpandedRenderer":{"featuredChannel":{"startTimeMs":"5000","endTimeMs":"301000","watermark":{"thumbnails":[{"url":"https://i.ytimg.com/an/MDQxm7cUx3yXkfeHa5zJIQ/featured_channel.jpg?v=5d85123f","width":40,"height":40}]},"trackingParams":"CAgQ8zciEwjyo6ra5ZqFAxUuyj8EHR6kAgs="},"allowSwipeDismiss":true}}],"playerConfig":{"audioConfig":{"loudnessDb":-9986,"perceptualLoudnessDb":-10000,"enablePerFormatLoudness":true},"exoPlayerConfig":{"useExoPlayer":true,"useAdaptiveBitrate":true,"maxInitialByteRate":91136,"minDurationForQualityIncreaseMs":12364,"maxDurationForQualityDecreaseMs":3720,"minDurationToRetainAfterDiscardMs":21000,"lowWatermarkMs":15000,"highWatermarkMs":30000,"lowPoolLoad":0.8,"highPoolLoad":0.8,"sufficientBandwidthOverhead":0.9,"bufferChunkSizeKb":50,"httpConnectTimeoutMs":16000,"httpReadTimeoutMs":8000,"numAudioSegmentsPerFetch":1,"numVideoSegmentsPerFetch":2,"minDurationForPlaybackStartMs":1600,"enableExoplayerReuse":false,"useRadioTypeForInitialQualitySelection":true,"blacklistFormatOnError":false,"enableBandaidHttpDataSource":true,"httpLoadTimeoutMs":18000,"canPlayHdDrm":true,"videoBufferSegmentCount":389,"audioBufferSegmentCount":38,"useAbruptSplicing":false,"minRetryCount":10,"minChunksNeededToPreferOffline":2,"secondsToMaxAggressiveness":0,"enableSurfaceviewResizeWorkaround":true,"enableVp9IfThresholdsPass":false,"matchQualityToViewportOnUnfullscreen":false,"lowAudioQualityConnTypes":["MOBILE_CONNECTION_TYPE_CELLULAR_2G","MOBILE_CONNECTION_TYPE_CELLULAR_3G"],"useDashForLiveStreams":true,"enableLibvpxVideoTrackRenderer":false,"lowAudioQualityBandwidthThresholdBps":786432,"enableVariableSpeedPlayback":true,"preferOnesieBufferedFormat":true,"minimumBandwidthSampleBytes":16384,"useDashForOtfAndCompletedLiveStreams":true,"disableCacheAwareVideoFormatEvaluation":false,"useLiveDvrForDashLiveStreams":true,"cronetResetTimeoutOnRedirects":true,"emitVideoDecoderChangeEvents":false,"onesieVideoBufferLoadTimeoutMs":"0","onesieVideoBufferReadTimeoutMs":"0","libvpxEnableGl":false,"enableVp9EncryptedIfThresholdsPass":false,"enableOpus":true,"usePredictedBuffer":true,"maxReadAheadMediaTimeMs":120000,"useMediaTimeCappedLoadControl":true,"allowCacheOverrideToLowerQualitiesWithinRange":0,"allowDroppingUndecodedFrames":true,"minDurationForPlaybackRestartMs":5000,"serverProvidedBandwidthHeader":"","liveOnlyPegStrategy":"LIVE_ONLY_PEG_STRATEGY_SEEK_ON_REBUFFER_ESTIMATE_DURATION","enableRedirectorHostFallback":true,"enableHighlyAvailableFormatFallbackOnPcr":false,"recordTrackRendererTimingEvents":true,"minErrorsForRedirectorHostFallback":0,"nonHardwareMediaCodecNames":["OMX.ffmpeg.vp9.decoder","OMX.google.vp9.decoder","c2.android.vp9.decoder","OMX.Intel.sw_vd.vp9","OMX.MTK.VIDEO.DECODER.SW.VP9","c2.mtk.sw.vp9.decoder","OMX.google.av1.decoder","c2.android.av1.decoder","OMX.sprd.av1.decoder"],"enableVp9IfInHardware":true,"enableVp9EncryptedIfInHardware":true,"useOpusMedAsLowQualityAudio":false,"minErrorsForPcrFallback":0,"useStickyRedirectHttpDataSource":true,"onlyVideoBandwidth":true,"useRedirectorOnNetworkChange":false,"enableMaxReadaheadAbrThreshold":true,"cacheCheckDirectoryWritabilityOnce":false,"predictorType":"PREDICTOR_TYPE_NEAREST_RANK","slidingPercentile":0.25,"slidingWindowSize":12,"maxFrameDropIntervalMs":100,"ignoreLoadTimeoutForFallback":false,"serverBweMultiplier":1,"drmMaxKeyfetchDelayMs":900000,"maxResolutionForWhiteNoise":0,"whiteNoiseRenderEffectMode":"RENDER_EFFECT_MODE_UNKNOWN","enableLibvpxHdr":false,"enableCacheAwareStreamSelection":true,"useExoCronetDataSource":true,"whiteNoiseScale":0,"whiteNoiseOffset":0,"preventVideoFrameLaggingWithLibvpx":false,"enableMediaCodecHdr":true,"enableMediaCodecSwHdr":false,"liveOnlyWindowChunks":10,"bearerMinDurationToRetainAfterDiscardMs":[21000,21000,21000,21000,120000,120000,90000,120000],"forceWidevineL3":false,"useAverageBitrate":false,"useMedialibAudioTrackRendererForLive":true,"useExoPlayerV2":true,"logMediaRequestEventsToCsi":true,"onesieFixNonZeroStartTimeFormatSelection":false,"liveOnlyReadaheadStepSizeChunks":1,"liveOnlyBufferHealthHalfLifeSeconds":60,"liveOnlyMinBufferHealthRatio":0.75,"liveOnlyMinLatencyToSeekRatio":3,"manifestlessPartialChunkStrategy":"ANDROID_PARTIAL_CHUNK_STRATEGY_RETRY_RANGE_CHECK_LMT","ignoreViewportSizeWhenSticky":false,"enableLibvpxFallback":false,"disableLibvpxLoopFilter":false,"enableVpxMediaView":false,"hdrMinScreenBrightness":0,"hdrMaxScreenBrightnessThreshold":0,"onesieDataSourceAboveCacheDataSource":true,"httpNonplayerLoadTimeoutMs":72000,"numVideoSegmentsPerFetchStrategy":"NUM_SEGMENTS_PER_FETCH_STRATEGY_LIMITED_DURATION","maxVideoDurationPerFetchMs":12000,"maxVideoEstimatedLoadDurationMs":-1,"estimatedServerClockHalfLife":5,"estimatedServerClockStrictOffset":false,"minReadAheadMediaTimeMs":0,"readAheadGrowthRate":0,"useDynamicReadAhead":false,"useYtVodMediaSourceForV2":false,"enableV2Gapless":false,"useLiveHeadTimeMillis":true,"allowTrackSelectionWithUpdatedVideoItagsForExoV2":true,"maxAllowableTimeBeforeMediaTimeUpdateSec":15,"enableDynamicHdr":false,"v2PerformEarlyStreamSelection":false,"v2UsePlaybackStreamSelectionResult":false,"v2MinTimeBetweenAbrReevaluationMs":2000,"avoidReusePlaybackAcrossLoadvideos":false,"enableInfiniteNetworkLoadingRetries":true,"reportExoPlayerStateOnTransition":true,"manifestlessSequenceMethod":"MANIFESTLESS_SEQUENCE_METHOD_LIVE_HEAD","useLiveHeadWindow":true,"enableDynamicHdrInHardware":true,"ultralowAudioQualityBandwidthThresholdBps":0,"retryLiveNetNocontentWithDelay":true,"ignoreUnneededSeeksToLiveHead":true,"adaptiveLiveHeadWindow":true,"drmMetricsQoeLoggingFraction":0.01,"liveNetNocontentMaximumErrors":-1,"waitForDrmLicenseBeforeProcessingAndroidStuckBufferfull":true,"slidingPercentileScalar":0.85,"minAdaptiveVideoQuality":0,"platypusBackBufferDurationMs":30000},"playbackStartConfig":{"startTimeToleranceBeforeMs":"20000"},"adRequestConfig":{"filterTimeEventsOnDelta":10000,"useCriticalExecOnAdsPrep":true,"userCriticalExecOnAdsProcessing":true,"enableCountdownNextToThumbnailAndroid":true,"preskipScalingFactorAndroid":0.712,"preskipPaddingAndroid":6},"networkProtocolConfig":{"useQuic":true},"androidNetworkStackConfig":{"networkStack":"CRONET","androidCronetResponsePriority":{"priorityValue":"BACKGROUND_10_THREAD_PRIORITY"},"androidMetadataNetworkConfig":{"coalesceRequests":true}},"lidarSdkConfig":{"enableActiveViewReporter":true,"useMediaTime":true,"sendTosMetrics":true,"usePlayerState":false,"enableIosAppStateCheck":true,"enableImprovedSizeReportingAndroid":true,"enableIsAndroidVideoAlwaysMeasurable":true,"enableActiveViewAudioMeasurementAndroid":true},"androidMedialibConfig":{"isItag18MainProfile":true,"dashManifestVersion":5,"initialBandwidthEstimates":[{"detailedNetworkType":"DETAILED_NETWORK_TYPE_WIFI","bandwidthBps":"921853"},{"detailedNetworkType":"DETAILED_NETWORK_TYPE_LTE","bandwidthBps":"631467"}],"viewportSizeFraction":0.85,"enablePrerollPrebuffer":true,"prebufferOptimizeForViewportSize":true,"hpqViewportSizeFraction":0.58},"playerControlsConfig":{"showCachedInTimebar":true},"variableSpeedConfig":{"availablePlaybackSpeeds":[{"label":{"runs":[{"text":"0.25x"}]},"value":0.25},{"label":{"runs":[{"text":"0.5x"}]},"value":0.5},{"label":{"runs":[{"text":"0.75x"}]},"value":0.75},{"label":{"runs":[{"text":"Normal"}]},"value":1},{"label":{"runs":[{"text":"1.25x"}]},"value":1.25},{"label":{"runs":[{"text":"1.5x"}]},"value":1.5},{"label":{"runs":[{"text":"1.75x"}]},"value":1.75},{"label":{"runs":[{"text":"2x"}]},"value":2}],"androidVariableSpeedTimeoutSecs":0,"enableVariableSpeedOnOtf":true},"decodeQualityConfig":{"maximumVideoDecodeVerticalResolution":2160},"vrConfig":{"allowVr":true,"allowSubtitles":true,"showHqButton":true,"sphericalDirectionLoggingEnabled":true,"enableAndroidVr180MagicWindow":true,"enableAndroidMagicWindowEduOverlay":true,"magicWindowEduOverlayText":"Move device to explore video","magicWindowEduOverlayAnimationUrl":"https://youtube.com/img/vr/magic_window_edu_overlay_animation_v2.webp"},"qoeStatsClientConfig":{"batchedEntriesPeriodMs":"30000"},"androidPlayerStatsConfig":{"usePblForAttestationReporting":false,"usePblForHeartbeatReporting":false,"usePblForPlaybacktrackingReporting":false,"usePblForQoeReporting":true,"changeCpnOnFatalPlaybackError":true},"stickyQualitySelectionConfig":{"stickySelectionType":"DISABLE_STICKY","expirationTimeSinceLastManualVideoQualitySelectionMs":"259200000","expirationTimeSinceLastPlaybackStartMs":"18000000","stickyCeilingOverridesSimpleBitrateCap":true},"adSurveyRequestConfig":{"useGetRequests":true},"retryConfig":{"retryEligibleErrors":["fmt.decode","android.exo.fatal","scripted_player.js.fatal","android.stuck.bufferfull","player.timeout","android.audiotrack"],"retryUnderSameConditionAttempts":1,"retryWithNewSurfaceAttempts":1,"progressiveFallbackOnNonNetworkErrors":true,"l3FallbackOnDrmErrors":true,"retryAfterCacheRemoval":true,"widevineL3EnforcedFallbackOnDrmErrors":true,"exoProxyableFormatFallback":true,"maxPlayerRetriesWhenNetworkUnavailable":2,"retryWithLibvpx":true,"suppressFatalErrorAfterStop":false,"fallbackFromHfrToSfrOnFormatDecodeError":true,"fallbackToSwDecoderOnFormatDecodeError":true},"cmsPathProbeConfig":{"cmsPathProbeDelayMs":7000},"mediaCommonConfig":{"dynamicReadaheadConfig":{"maxReadAheadMediaTimeMs":160000,"minReadAheadMediaTimeMs":15000,"readAheadGrowthRateMs":300,"readAheadWatermarkMarginRatio":0,"minReadAheadWatermarkMarginMs":0,"maxReadAheadWatermarkMarginMs":0,"shouldIncorporateNetworkActiveState":false},"mediaUstreamerRequestConfig":{"enableVideoPlaybackRequest":true,"videoPlaybackUstreamerConfig":"CrQICqcGCAAlMZkqPi1mZmY_NT0Klz9YAWABaAF46AKAAQGgAQGoAQC1AfYo3D_gAQHoAQPwAQH5AQAAAAAAANA_gQIAAAAAAAAYQJACAZgC8AGgAugCuAIAyAIB2gKTARCw6gEYqEYgoJwBKNg2MJh1cIgngAH0A-ABAZgCDMACAdACAuACAegCAoADAogDiCeYAwGoAwOwAwG4AwHAAwHIAwHQAwH4AwGQBAGYBAGgBAGoBAHIBAHQBAHgBADoBAH4BAeABX2IBQGQBQGwBQG4BQHQBQHYBQHgBdAP-AXQD4AGAbgGAcAGAdgGAegGAZAHAfoC6QEtAACCQjUAAJZCQAFIAWUAAIBAaMBwqAHQhgPNAQAAgD_wAQH9AQAAgD-FAgAAgD6NAs3MzD-VAilcjz2YAgG1AgAAgD_AApAByAIB0gIRsP__________AR48RlpcXV7aAgUyMDowMOACeOgC6AL1AilcDz79AgAAAD6AAwGdAwrXIz2gAwHFAwAAoEHIAwHVAwAAekTYAwHlA2JKREDtAzLK8z6IBAGYBAHFBJqZWUDVBAAAgD_wBAHIBQHgBQGYBgGoBgG1Br03hjW9BjMzg0DABwGhCAAAAAAAAPC_qQgAAAAAAADwv4IDAJADAeADkE6wBAG4BAHKBFsKFQiA4gkQmHUYrAIlAAAAACgAMABAARDg1AMY0A8qNgoKdGJfY29zdF81MCAIKQAAAAAAAAAASAFQAV2amZk-ZQAAAD9tAAAAP3UAAAA_eMCpB5IBADABSPAu6AQB8AQB-AQBiAUBkAUBmAUBoAUBqAUBsAUB0AUB2AUB6AUB8AUBiAYBkAYBmAYBqAaAgALABgHIBgGCBwoVAACAPxhkIJBOiAcBwAcByAcAgAgBoAgBuAgBmAkBqQkAAAAAAADwv7EJAAAAAAAA8L_aCSRGOFRNZElaQjNndXUyZllrMDVYUVd5VFBieVFHQ3VPbG5DWkuYCvvbsBiiChz327AY-NuwGPnbsBj627AY-9uwGPzbsBj927AYqAr927AYsAoBwAoB0AoB2AoBgAsBiAsByAsB-AsBoAwBGAEgATIMCIYBEOSP-da2lYUDMgwI8wEQhpfSz7aVhQMyDAiMAxDs55z6tpWFAzIMCIUBEKfQo9u2lYUDMgwI8gEQg7T6x7aVhQMyDAiLAxCxqvvUtpWFAzIMCKABEOWq8Na2lYUDMgwIlgIQ88Gm9raVhQMyDAiKAxDNquSMt5WFAzIMCNUEEPCen862lYUDMgwI1gQQovHgzLaVhQMyDAiLARDqs4zTsJWFAzIMCIwBEJelss6wlYUDMgwI-QEQpdjHzLCVhQMyDAj6ARC63o3VsJWFAzIMCPsBEIfAm8uwlYUDMgwI1wQQ-r6r3rCVhQMyDAjYBBCazLLOsJWFAzoASACQy9OPDgESSwA_093iMEQCICwuhyMTPa69PjpYlvJwBXA0LKUaykeSssWMGo73SKMWAiBeEp65hKQ1_9T-kqxqqKqZ9HeC2xhi42wUrlLYgMOVZRoCZWk=","videoPlaybackPostEmptyBody":false,"isVideoPlaybackRequestIdempotent":true},"predictedReadaheadConfig":{"minReadaheadMs":5000,"maxReadaheadMs":157000},"mediaFetchRetryConfig":{"initialDelayMs":1000,"backoffFactor":1.3,"maximumDelayMs":20000,"jitterFactor":0.1},"mediaFetchMaximumServerErrors":10,"mediaFetchMaximumNetworkErrors":-1,"mediaFetchMaximumErrors":10,"serverReadaheadConfig":{"enable":true,"nextRequestPolicy":{"targetAudioReadaheadMs":120000,"targetVideoReadaheadMs":120000}},"useServerDrivenAbr":false},"playerGestureConfig":{"downAndOutLandscapeAllowed":true,"downAndOutPortraitAllowed":true},"taskCoordinatorConfig":{"prefetchCoordinatorBufferedPositionMillisRelease":5000}},"trackingParams":"CAAQu2kiEwjyo6ra5ZqFAxUuyj8EHR6kAgs=","attestation":{"playerAttestationRenderer":{"challenge":"a=6&a2=1&b=oKBCc2GGAKJ90BNJQRHPQZ88iPc&c=1711760747&d=3&e=aQvGIIdgFDM&c5a=1&c5b=yt_player_ias&hh=4NskSyfeZEC29iBSF7SC5XW9wKLNBRkAXPyaXjUMCs8"}},"videoQualityPromoSupportedRenderers":{"videoQualityPromoRenderer":{"triggerCriteria":{"connectionWhitelist":["WIFI"],"joinLatencySeconds":15,"rebufferTimeSeconds":10,"watchTimeWindowSeconds":180,"refractorySeconds":2592000},"text":{"runs":[{"text":"Experiencing interruptions? "},{"text":"Find out why","bold":true}]},"endpoint":{"clickTrackingParams":"CAQQ6kUiEwjyo6ra5ZqFAxUuyj8EHR6kAgs=","urlEndpoint":{"url":"https://www.google.com/get/videoqualityreport/m/"}},"trackingParams":"CAQQ6kUiEwjyo6ra5ZqFAxUuyj8EHR6kAgs=","closeButton":{"videoQualityPromoCloseRenderer":{"trackingParams":"CAcQ60UiEwjyo6ra5ZqFAxUuyj8EHR6kAgs="}},"snackbar":{"notificationActionRenderer":{"responseText":{"runs":[{"text":"Experiencing interruptions?"}]},"actionButton":{"buttonRenderer":{"text":{"runs":[{"text":"Find out why"}]},"navigationEndpoint":{"clickTrackingParams":"CAYQ8FsiEwjyo6ra5ZqFAxUuyj8EHR6kAgs=","urlEndpoint":{"url":"https://www.google.com/get/videoqualityreport/m/"}},"trackingParams":"CAYQ8FsiEwjyo6ra5ZqFAxUuyj8EHR6kAgs="}},"trackingParams":"CAUQuWoiEwjyo6ra5ZqFAxUuyj8EHR6kAgs="}}}},"overlay":{},"playerSettingsMenuData":{"loggingDirectives":{"trackingParams":"CAMQtc4GIhMI8qOq2uWahQMVLso_BB0epAIL","visibility":{"types":"12"},"enableDisplayloggerExperiment":true}},"adBreakHeartbeatParams":"Q0FBJTNE","frameworkUpdates":{"entityBatchUpdate":{"mutations":[{"entityKey":"Eg0KC2FRdkdJSWRnRkRNIPYBKAE%3D","type":"ENTITY_MUTATION_TYPE_REPLACE","payload":{"offlineabilityEntity":{"key":"Eg0KC2FRdkdJSWRnRkRNIPYBKAE%3D","addToOfflineButtonState":"ADD_TO_OFFLINE_BUTTON_STATE_ENABLED","commandWrapper":{"command":{"innertubeCommand":{"clickTrackingParams":"CAIQ6ewBIhMI8qOq2uWahQMVLso_BB0epAIL","ypcGetOfflineUpsellEndpoint":{"params":"ChPqqN25AQ0KC2FRdkdJSWRnRkRNIgthUXZHSUlkZ0ZETSoVCAkYAVIPCgthUXZHSUlkZ0ZETSAB"}}},"loggingDirectives":{"trackingParams":"CAIQ6ewBIhMI8qOq2uWahQMVLso_BB0epAIL","enableDisplayloggerExperiment":true}},"contentCheckOk":true,"racyCheckOk":true,"loggingDirectives":{"trackingParams":"CAEQxzciEwjyo6ra5ZqFAxUuyj8EHR6kAgs=","visibility":{"types":"4"},"enableDisplayloggerExperiment":true}}}}],"timestamp":{"seconds":"1711760747","nanos":457886713}}}}
... 19 more
Upon playing a Vimeo track, Lavaplayer downloads a track config from which it extracts request.files.progressive[0].url
. However, on some tracks the progressive
array is null, resulting in a NullPointerException. It appears that we need to add support for hls
or dash
.
Example url: https://vimeo.com/783006175
Source:
when you play a YouTube livestream, destroy the player and try to play another livestream, it won't play on v4.
It also happens when you close your bot while playing a stream.
After that, only restarting lavalink or playing another song and skipping to the livestream to start working again.
I had never used lavalink, so I went back to 3.7 and switched to erela.js and the problem won't happen, so I guess it is a v4 problem or a magmastream is messing something up.
I also noticed that if you play a livestream and close the bot it will continue to play it after closed (the bot won't disconnect or anything)
Steps to reproduce the behavior:
I expected it to play the stream, but it just sits there and won't play anything.
Client used: magmastream
Output of java -version
:
openjdk version "17.0.7" 2023-04-18
OpenJDK Runtime Environment Temurin-17.0.7+7 (build 17.0.7+7)
OpenJDK 64-Bit Server VM Temurin-17.0.7+7 (build 17.0.7+7, mixed mode, sharing)
Lavalink Logs:
2023-07-21T07:08:19.420581574Z 2023-07-21T04:08:19.420-03:00 INFO 1 --- [ XNIO-1 task-2] l.server.player.AudioLoaderRestHandler : Got request to load for identifier "https://www.youtube.com/watch?v=jfKfPfyJRdk"
2023-07-21T07:08:19.469610449Z 2023-07-21T04:08:19.469-03:00 INFO 1 --- [ader-2-thread-1] lavalink.server.player.AudioLoader : Loaded track lofi hip hop radio - beats to relax/study to
2023-07-21T07:08:19.472026676Z 2023-07-21T04:08:19.471-03:00 INFO 1 --- [ XNIO-1 task-2] l.server.io.RequestLoggingFilter : GET /v4/loadtracks?identifier=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DjfKfPfyJRdk, client=51.81.38.169
2023-07-21T07:08:19.662121940Z 2023-07-21T04:08:19.661-03:00 INFO 1 --- [ XNIO-1 task-2] l.server.io.RequestLoggingFilter : PATCH /v4/sessions/0guj86u9g6hucykf/players/1119839379947532348?noReplace=false, client=51.81.38.169, payload={"volume":100}
2023-07-21T07:08:19.665614938Z 2023-07-21T04:08:19.665-03:00 INFO 1 --- [ XNIO-1 task-4] l.server.io.RequestLoggingFilter : PATCH /v4/sessions/0guj86u9g6hucykf/players/1119839379947532348?noReplace=false, client=51.81.38.169, payload={"encodedTrack":"QAAA2QMAM2xvZmkgaGlwIGhvcCByYWRpbyDtoL3ts5ogLSBiZWF0cyB0byByZWxheC9zdHVkeSB0bwAJTG9maSBHaXJsf/////////8AC2pmS2ZQZnlKUmRrAQEAK2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9amZLZlBmeUpSZGsBAD9odHRwczovL2kueXRpbWcuY29tL3ZpL2pmS2ZQZnlKUmRrL21heHJlc2RlZmF1bHQuanBnP3Y9NjQzNTk2NjQAAAd5b3V0dWJlAAAAAAAAAAA="}
2023-07-21T07:08:20.378245951Z 2023-07-21T04:08:20.377-03:00 INFO 1 --- [ XNIO-1 task-4] l.server.io.RequestLoggingFilter : PATCH /v4/sessions/0guj86u9g6hucykf/players/1119839379947532348?noReplace=false, client=51.81.38.169, payload={"voice":{"token":"06d0ba9ba4bb1691","endpoint":"brazil1570.discord.media:443","sessionId":"6c8988081db59b100a10422d4eef731f"}}
2023-07-21T07:08:20.406897402Z 2023-07-21T04:08:20.378-03:00 ERROR 1 --- [ XNIO-1 task-4] io.undertow.request : UT005023: Exception handling request to /v4/sessions/0guj86u9g6hucykf/players/1119839379947532348
2023-07-21T07:08:20.406929262Z
2023-07-21T07:08:20.406934932Z jakarta.servlet.ServletException: Request processing failed: java.lang.NullPointerException: Cannot invoke "java.lang.Long.longValue()" because the return value of "com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeMpegStreamAudioTrack$TrackState.access$300(com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeMpegStreamAudioTrack$TrackState)" is null
2023-07-21T07:08:20.406941154Z at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1019) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.406946083Z at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:888) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.406950862Z at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614) ~[jakarta.servlet-api-6.0.0.jar!/:6.0.0]
2023-07-21T07:08:20.406955441Z at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.406960140Z at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.406965059Z at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:289) ~[spring-web-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.406969828Z at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.406974607Z at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.406979296Z at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.406984396Z at lavalink.server.io.ResponseHeaderFilter.doFilterInternal(ResponseHeaderFilter.kt:17) ~[classes!/:4.0.0-beta.1]
2023-07-21T07:08:20.406988974Z at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.406994946Z at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.406999765Z at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407004504Z at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407009212Z at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407014012Z at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407024712Z at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407029601Z at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407034270Z at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407039049Z at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407043758Z at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407050210Z at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407054999Z at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407060078Z at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407064998Z at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407070037Z at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407074876Z at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407079725Z at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407084464Z at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407089233Z at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407094243Z at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407099042Z at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407103781Z at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407108360Z at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407115924Z at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407120603Z at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407125251Z at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407130050Z at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407135451Z at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407140390Z at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407145119Z at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407149738Z at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
2023-07-21T07:08:20.407154346Z at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) ~[jboss-threads-3.5.0.Final.jar!/:3.5.0.Final]
2023-07-21T07:08:20.407158895Z at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513) ~[jboss-threads-3.5.0.Final.jar!/:3.5.0.Final]
2023-07-21T07:08:20.407163524Z at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538) ~[jboss-threads-3.5.0.Final.jar!/:3.5.0.Final]
2023-07-21T07:08:20.407168323Z at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282) ~[xnio-api-3.8.8.Final.jar!/:3.8.8.Final]
2023-07-21T07:08:20.407173031Z at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
2023-07-21T07:08:20.407177670Z Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Long.longValue()" because the return value of "com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeMpegStreamAudioTrack$TrackState.access$300(com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeMpegStreamAudioTrack$TrackState)" is null
2023-07-21T07:08:20.407183231Z at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeMpegStreamAudioTrack.getPosition(YoutubeMpegStreamAudioTrack.java:80) ~[lavaplayer-17c75f5.jar!/:na]
2023-07-21T07:08:20.407187930Z at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.getPosition(DelegatedAudioTrack.java:61) ~[lavaplayer-17c75f5.jar!/:na]
2023-07-21T07:08:20.407192538Z at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.encodeTrack(DefaultAudioPlayerManager.java:264) ~[lavaplayer-17c75f5.jar!/:na]
2023-07-21T07:08:20.407197167Z at lavalink.server.util.UtilKt.encodeTrack(util.kt:138) ~[classes!/:4.0.0-beta.1]
2023-07-21T07:08:20.407201615Z at lavalink.server.util.UtilKt.toTrack(util.kt:48) ~[classes!/:4.0.0-beta.1]
2023-07-21T07:08:20.407209049Z at lavalink.server.util.UtilKt.toPlayer(util.kt:97) ~[classes!/:4.0.0-beta.1]
2023-07-21T07:08:20.407213909Z at lavalink.server.player.PlayerRestHandler.patchPlayer(PlayerRestHandler.kt:212) ~[classes!/:4.0.0-beta.1]
2023-07-21T07:08:20.407218658Z at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
2023-07-21T07:08:20.407223186Z at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na]
2023-07-21T07:08:20.407227564Z at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207) ~[spring-web-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407232183Z at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152) ~[spring-web-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407236862Z at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407241621Z at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407246450Z at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407251219Z at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407255958Z at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407260557Z at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407265135Z at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
2023-07-21T07:08:20.407269764Z ... 46 common frames omitted
Hello,
I think it can be useful to add support for medial links uploaded on Discord's CDN.
Since the new CDN authentication system, Lavaplayer returns an empty content (even when adding valid authentication parameters):
{ loadType: 'empty', data: null }
Lavaplayer version: 2.1.1.
Since lavaplayer now maintained by lavalink team I thought that reopen this issue on this repo is a good idea.
Lavalink is a standalone audio sending node based on Lavaplayer and JDA-Audio. Bot developers can play audio using distributed lavalink nodes across different programming languages and bot frameworks.
Lavalink reports a state for each player about every five seconds, containing the current UNIX timestamp when the player update was created and a relative track position. Based on this information, the track's position can be computed. As lavaplayer now has a timescale filter, it is possible to alter the track speed and rate. The position of the track reported by lavaplayer does not respect the actual speed of the track. Calculating the position of the track on the client-side would be possible but would come with a higher error rate because of network latencies, filter jitter (the client does not know the exact time when the filter becomes active), ... (There are some times where the client has to interpolate the position of the track, which corresponds to the time difference between the current host machine time and the time of the last update, which error rate should be ignorable [e.g., errors because of different clock times due to NTP synchronization errors]).
The client state is generated in Lavalink, which you can see at the following: https://github.com/freyacodes/Lavalink/blob/85a54966218094bc06a4f1506003c55523462b04/LavalinkServer/src/main/java/lavalink/server/player/Player.java#L131
There you can see a call to lavaplayer, which requests the current track position.
When using the timescale filter, lavaplayer reports a wrong track position (it uses the position as if the timescale filter has not been applied).
I would propose that the code for calculating/tracking the track position should be fitted to report a correct track position.
All additional info can be found here: sedmelluq/lavaplayer#667
Some MP3s fail to load, their frame length is 961.
For example, the same mp3 is fine when played through browser or Elisa music player.
I can provide mp3 to reproduce.
2023-09-13 18:22:26.886 WARN 1 --- [ader-8-thread-1] c.s.d.l.c.MediaContainerDetection : Attempting to detect file with container mp3 failed.
java.lang.IndexOutOfBoundsException: Range [4, 4 + 1040) out of bounds for length 961
at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source) ~[na:na]
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromIndexSize(Unknown Source) ~[na:na]
at java.base/jdk.internal.util.Preconditions.checkFromIndexSize(Unknown Source) ~[na:na]
at java.base/java.util.Objects.checkFromIndexSize(Unknown Source) ~[na:na]
at java.base/java.io.DataInputStream.readFully(Unknown Source) ~[na:na]
at com.sedmelluq.discord.lavaplayer.container.mp3.Mp3FrameReader.fillFrameBuffer(Mp3FrameReader.java:121) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.mp3.Mp3TrackProvider.initialiseSeeker(Mp3TrackProvider.java:92) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.mp3.Mp3TrackProvider.parseHeaders(Mp3TrackProvider.java:87) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.mp3.Mp3ContainerProbe.probe(Mp3ContainerProbe.java:57) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.checkContainer(MediaContainerDetection.java:92) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.detectContainer(MediaContainerDetection.java:77) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.detectContainer(MediaContainerDetection.java:59) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.local.LocalAudioSourceManager.detectContainerForFile(LocalAudioSourceManager.java:58) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.local.LocalAudioSourceManager.loadItem(LocalAudioSourceManager.java:41) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:412) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:394) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.loadItemSync(DefaultAudioPlayerManager.java:156) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$loadItem$0(DefaultAudioPlayerManager.java:175) ~[lavaplayer-2.0.1.jar!/:na]
at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
2023-09-13 18:22:26.891 ERROR 1 --- [ader-8-thread-1] com.bots.shura.audio.AudioLoader : LavaPlayer could not parse an audio source for some reason
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Unknown file format.
at com.sedmelluq.discord.lavaplayer.source.ProbingAudioSourceManager.handleLoadResult(ProbingAudioSourceManager.java:35) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.local.LocalAudioSourceManager.loadItem(LocalAudioSourceManager.java:41) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:412) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:394) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.loadItemSync(DefaultAudioPlayerManager.java:156) ~[lavaplayer-2.0.1.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$loadItem$0(DefaultAudioPlayerManager.java:175) ~[lavaplayer-2.0.1.jar!/:na]
at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
Hello,
When trying to play any track, I keep getting NSM on ByteBuffer (see stacktrace) even after mentionning in my gradle file that the source/target compatibility is Java 8
[LocalAudioTrackExecutor/ERROR]: Error in playback of mLxI-q9Fi0s com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track. at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:45) at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:113) at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$2(DefaultAudioPlayerManager.java:330) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer; at com.sedmelluq.discord.lavaplayer.container.matroska.format.MutableMatroskaBlock.getNextFrameBuffer(MutableMatroskaBlock.java:56) at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.processFrameInBlock(MatroskaStreamingFile.java:368) at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseClusterSimpleBlock(MatroskaStreamingFile.java:332) at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseNextCluster(MatroskaStreamingFile.java:317) at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:293) at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.lambda$process$0(MatroskaAudioTrack.java:40) at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:284) at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:257) at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:39) at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25) at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:64) at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:51) at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:101)
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '8.0.0'
}
application.mainClass = "net.vadamdev.jafarbot.Main"
group 'net.vadamdev.jafarbot'
version '2.4.2'
repositories {
mavenCentral()
maven {
url 'https://jitpack.io'
}
}
dependencies {
implementation group: 'net.dv8tion', name: 'JDA', version: '5.0.0-beta.21'
implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.3.14'
implementation group: 'dev.arbjerg', name:'lavaplayer', version:'2.1.1'
implementation group: 'me.carleslc.Simple-YAML', name: 'Simple-Yaml', version: '1.8.4'
implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'
implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
implementation group: 'com.google.code.gson', name: 'gson', version: '2.10.1'
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
compileJava.options.encoding = 'UTF-8'
Lavalink 4.0.4
Ipv6 /48 rotation
I have begun noticing issues with a node that experiences temporary spans where all tracks attempting to be played, sending the following track exception event:
TrackException(message=This video is not available, severity=COMMON, cause=com.sedmelluq.discord.lavaplayer.tools.FriendlyException: This video is not available)
Looking into my logs it seems correlated to the lifespan of a visitor ID.
The frequency seems to slowly be increasing.
As stated in the title, importing this library via Maven triggers a transitive vulnerability warning due to the maven:org.json:json:20230618 library (CVE-2023-5072 7.5 Allocation of Resources Without Limits or Throttling vulnerability with High severity found).
After working for a good amount of time, my bot now stopped playing youtube links or search requests. I configured logback to debug level and got this log:
120 [lava-daemon-pool-info-loader-2-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSearchProvider - Performing a search with query in the end 11:21:17.501 [JDA Gateway-Worker 1] DEBUG net.dv8tion.jda.internal.requests.WebSocketClient - Sending voice request {"op":4,"d":{"self_deaf":false,"guild_id":947823451253641256,"channel_id":947823451253641260,"self_mute":false}} 11:21:17.914 [lava-daemon-pool-info-loader-2-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSearchProvider - Attempting to parse results from search page 11:21:17.914 [lava-daemon-pool-info-loader-2-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager - Loaded a playlist with identifier ytsearch: in the end using YoutubeAudioSourceManager. addedTrack 11:21:17.914 [lava-daemon-pool-info-loader-2-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.player.AudioPlayer - Firing an event with class TrackStartEvent 11:21:17.915 [lava-daemon-pool-playback-1-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor - Starting to play track eVTXPUF4Oz4 locally with listener com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayer@1826b9ce 11:21:17.915 [lava-daemon-pool-playback-1-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader - Loading track info with payload: {"context":{"thirdParty":{"embedUrl":"https://google.com"},"client":{"screenPixelDensity":1,"androidSdkVersion":30,"screenWidthPoints":1920,"clientName":"ANDROID","screenHeightPoints":1080,"screenDensityFloat":1,"clientScreen":"EMBED","clientVersion":"18.06.35"}},"racyCheckOk":true,"contentCheckOk":true,"videoId":"eVTXPUF4Oz4","params":"CgIQBg","playbackContext":{"contentPlaybackContext":{"signatureTimestamp":"19809"}}} 11:21:17.915 [lava-daemon-pool-playback-1-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAccessTokenTracker - YouTube visitor id was recently updated, not updating again right away. 11:21:18.099 [lava-daemon-pool-playback-1-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor - Common failure for playback of eVTXPUF4Oz4: Video returned by YouTube isn't what was requested 11:21:18.099 [lava-daemon-pool-playback-1-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.player.AudioPlayer - Firing an event with class TrackExceptionEvent 11:21:18.162 [JDA RateLimit-Elastic-Worker 3] DEBUG net.dv8tion.jda.internal.requests.Requester - Received response with following cf-rays: [86cf44b49a2e5b24-VIE] 11:21:18.999 [JDA [0 / 1] AudioWS-ReadThread (guildId: 947823451253641256)] DEBUG net.dv8tion.jda.internal.audio.AudioWebSocket - Using encryption mode xsalsa20_poly1305_lite 11:21:19.031 [JDA [0 / 1] AudioWS-ReadThread (guildId: 947823451253641256)] DEBUG net.dv8tion.jda.internal.audio.AudioWebSocket - Unknown Audio OP code. {"op":18,"d":{"user_id":"238371252014678016","flags":2}} 11:21:19.032 [JDA [0 / 1] AudioWS-ReadThread (guildId: 947823451253641256)] DEBUG net.dv8tion.jda.internal.audio.AudioWebSocket - Unknown Audio OP code. {"op":20,"d":{"user_id":"238371252014678016","platform":0}} 11:21:19.464 [JDA [0 / 1] AudioWS-ReadThread (guildId: 947823451253641256)] DEBUG net.dv8tion.jda.internal.audio.AudioWebSocket - Audio connection has finished connecting! 11:21:19.465 [JDA [0 / 1] AudioConnection Guild: 947823451253641256 Sending Thread] DEBUG com.sedmelluq.discord.lavaplayer.player.AudioPlayer - Firing an event with class TrackEndEvent 11:21:19.532 [JDA Gateway-Worker 1] DEBUG net.dv8tion.jda.internal.requests.WebSocketClient - Sending voice request {"op":4,"d":{"self_deaf":false,"guild_id":"947823451253641256","channel_id":null,"self_mute":false}} 11:21:29.286 [lava-daemon-pool-info-loader-2-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader - Loading track info with payload: {"context":{"thirdParty":{"embedUrl":"https://google.com"},"client":{"screenPixelDensity":1,"androidSdkVersion":30,"screenWidthPoints":1920,"clientName":"ANDROID","screenHeightPoints":1080,"screenDensityFloat":1,"clientScreen":"EMBED","clientVersion":"18.06.35"}},"racyCheckOk":true,"contentCheckOk":true,"videoId":"E_39Fgq9hfk","params":"CgIQBg","playbackContext":{"contentPlaybackContext":{"signatureTimestamp":"19809"}}} 11:21:29.286 [lava-daemon-pool-info-loader-2-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAccessTokenTracker - YouTube visitor id was recently updated, not updating again right away. 11:21:29.384 [lava-daemon-pool-info-loader-2-thread-1] DEBUG com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager - Common failure for loading item https://www.youtube.com/watch?v=E_39Fgq9hfk: Video returned by YouTube isn't what was requested
Currently im running it on a RaspberryPi4, but the results dont change on my windows machine.
Twitch streams will break and stop playing if the URL has any capitalized character.
For example: https://www.twitch.tv/thecoffeeelf will play just fine. But https://www.twitch.tv/TheCoffeeElf would fail to play.
Queueing a song with a large amount of silence causes read issues.
Steps to reproduce the behavior:
Queue a song like cdjzVKCZWrA, MahfSwXkD4s, or other "1 hour of silence broken by" videos
I expected Lavalink to play the whole thing.
Client used: Red-Lavalink (v3 Lavalink client)
Output of java -version
:
Temurin/Adopt Java 11, 13, or 17
Would it be possible to have spotify added as a supported format? I feel like it would be extremely good and useful for lots of people (me included)
Fetching new youtube video: Video returned by YouTube isn't what was requested
[11:55:18] [lava-daemon-pool-info-loader-2-thread-1/WARN] (YoutubeAccessTokenTracker) YouTube auth tokens can't be retrieved because email and password is not set in YoutubeAudioSourceManager, age restricted videos will throw exceptions. [11:55:19] [lava-daemon-pool-info-loader-2-thread-1/INFO] (YoutubeAccessTokenTracker) Updating YouTube visitor id (current is null).
Niconico has completely shut down the old video delivery server (DMC) and completely migrated to the new video delivery system called DMS: https://blog.nicovideo.jp/niconews/205042.html
This has resulted in a change in the API specification, which no longer allows normal playback with lavaplayer.
As a reference, yt-dlp has already added support for DMS. I am not very familiar with java, so if you don't mind, please fix it.
(I used DeepL translator.)
am getting Player Get exception [object Object] error on my bot console but in lavalink console it just disconnects from the voicechannel
ALAC is a lossless compression format using the m4a container. It is favored in the Apple ecosystem for lossless compression and is compatible with most popular music players (I do not use Apple computers, but I do store my lossless music in this format rather than FLAC for its compatibility with Apple Music).
It would be good for me if LavaPlayer could support playing this format.
I am not a Java developer and thus am not familiar with the package and testing ecosystem, but I could attempt this work at some point if the maintainers are not interested (it is niche).
YoutubeIpRotatorSetup#forSource
should be updated to replace the deprecated source manager. It would probably make more sense to move the extension to the youtube-source repo
class InternalMusic {
var playerManager: AudioPlayerManager = DefaultAudioPlayerManager()
var player: AudioPlayer = playerManager.createPlayer()
var videoid: String = ""
fun setVideoID(videoid: String) {
this.videoid = videoid
}
fun init() {
playerManager.registerSourceManager(YoutubeAudioSourceManager(true, "myemail", "mypassword"))
AudioSourceManagers.registerRemoteSources(playerManager)
}
fun play() {
playerManager.loadItem(videoid,
object : AudioLoadResultHandler {
override fun trackLoaded(track: AudioTrack) {
player.playTrack(track)
}
override fun playlistLoaded(playlist: AudioPlaylist) {
for (track in playlist.tracks) {
player.playTrack(track)
}
}
override fun noMatches() {
println("No Matches for $videoid")
}
override fun loadFailed(throwable: FriendlyException) {
println("Unable to load $videoid")
}
})
}
fun stop() { player.stopTrack() }
fun pause() { player.setPaused(true) }
fun resume() { player.setPaused(false) }
fun volume(volume: Int) { player.volume = volume }
}
i call play
function using this code:
var soundplayer = InternalMusic()
soundplayer.init()
soundplayer.setVideoID(id)
soundplayer.play()
and output is:
[13:09:00] [lava-daemon-pool-info-loader-2-thread-1/INFO] (YoutubeAccessTokenTracker) Updating YouTube access token (current is null).
[13:09:01] [lava-daemon-pool-info-loader-2-thread-1/INFO] (YoutubeAccessTokenTracker) Updating YouTube access token succeeded, new token is ..., next update will be after 69792 seconds.
[13:09:01] [lava-daemon-pool-info-loader-2-thread-1/INFO] (YoutubeAccessTokenTracker) Updating YouTube visitor id (current is null).
[13:09:02] [lava-daemon-pool-info-loader-2-thread-1/INFO] (YoutubeAccessTokenTracker) Updating YouTube visitor id succeeded, new one is ..., next update will be after 600 seconds.
no audio is played. what am I doing wrong?
Url format used:
https://www.youtube.com/live/-RsAZYlqyK4?si=3BxDfv6_LKMi5zbQ
https://www.youtube.com/live/RRb5XV993W0?si=S9wQMrsIWOouWwTR
Traceback received:
2024-01-03 14:38:40.976 INFO 1798 --- [XNIO-1 task-1] l.server.player.AudioLoaderRestHandler : Got request to load for identifier "https://www.youtube.com/live/-RsAZYlqyK4?si=3BxDfv6_LKMi5zbQ"
2024-01-03 14:38:41.181 ERROR 1798 --- [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-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.loadItem(HttpAudioSourceManager.java:81) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:428) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:410) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:208) ~[lavaplayer-1.5.0.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: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:840) ~[na:na]
Suppressed: com.sedmelluq.discord.lavaplayer.tools.exception.EnvironmentInformation:
lavaplayer.version: 1.5.0
os.arch: aarch64
os.name: Mac OS X
os.version: 13.6.3
java.vendor: Eclipse Adoptium
java.version: 17.0.9
java.runtime.version: 17.0.9+9
java.vm.version: 17.0.9+9
Granted, the "real" url for these example tracks works fine, i.e. https://www.youtube.com/watch?v=-RsAZYlqyK4
for the 1st example - I don't believe this url format that I'm reporting is being parsed correctly by lavaplayer.
I am using an older version of Lavalink, a v3 version, and haven't tested this on a v4 version yet.
I'm running into this error on my Lavalink server. I started by submitting a form post on the Lavalink Discord but was directed here as a possible bug report.
Background:
Developing a Discord bot using the Wavelink library to communicate with my Lavalink server. The bot and Lavalink server are being hosted within the same Ubuntu environment.
Sometimes when autoplay is set to enabled. Lavalink can't find related tracks to the one that was playing.
I'm not sure but I believe it has to do with the initial track, or the search term that was used to play the initial track. I also see in the logs that it fails to update my YouTube access token but there are times when autoplay still works with this error. I don't have MFA enabled on this YouTube account.
Lavalink version: 4.0.3
Wavelink version: 3.2.0
I'm happy to provide any other information.
Lavalink log file:
spring.log
application.yml file:
server: # REST and WS server
port: 2333
address: 127.0.0.1
http2:
enabled: true # Whether to enable HTTP/2 support
plugins:
# name: # Name of the plugin
# some_key: some_value # Some key-value pair for the plugin
# another_key: another_value
lavalink:
plugins:
# - dependency: "com.github.example:example-plugin:1.0.0" # required, the coordinates of your plugin
# repository: "https://maven.example.com/releases" # optional, defaults to the Lavalink releases repository by default
# snapshot: false # optional, defaults to false, used to tell Lavalink to use the snapshot repository instead of the release repository
# pluginsDir: "./plugins" # optional, defaults to "./plugins"
# defaultPluginRepository: "https://maven.lavalink.dev/releases" # optional, defaults to the Lavalink release repository
# defaultPluginSnapshotRepository: "https://maven.lavalink.dev/snapshots" # optional, defaults to the Lavalink snapshot repository
server:
password: "youshallnotpass124"
sources:
youtube: true
bandcamp: true
soundcloud: true
twitch: false
vimeo: true
http: true
local: false
filters: # All filters are enabled by default
volume: true
equalizer: true
karaoke: true
timescale: true
tremolo: true
vibrato: true
distortion: true
rotation: true
channelMix: true
lowPass: true
bufferDurationMs: 400 # The duration of the NAS buffer. Higher values fare better against longer GC pauses. Duration <= 0 to disable JDA-NAS. Minimum of 40ms, lower values may introduce pauses.
frameBufferDurationMs: 5000 # How many milliseconds of audio to keep buffered
opusEncodingQuality: 10 # Opus encoder quality. Valid values range from 0 to 10, where 10 is best quality but is the most expensive on the CPU.
resamplingQuality: LOW # Quality of resampling operations. Valid values are LOW, MEDIUM and HIGH, where HIGH uses the most CPU.
trackStuckThresholdMs: 10000 # The threshold for how long a track can be stuck. A track is stuck if does not return any audio data.
useSeekGhosting: true # Seek ghosting is the effect where whilst a seek is in progress, the audio buffer is read from until empty, or until seek is ready.
youtubePlaylistLoadLimit: 6 # Number of pages at 100 each
playerUpdateInterval: 5 # How frequently to send player updates to clients, in seconds
youtubeSearchEnabled: true
soundcloudSearchEnabled: true
gc-warnings: true
#ratelimit:
#ipBlocks: ["1.0.0.0/8", "..."] # list of ip blocks
#excludedIps: ["...", "..."] # ips which should be explicit excluded from usage by lavalink
#strategy: "RotateOnBan" # RotateOnBan | LoadBalance | NanoSwitch | RotatingNanoSwitch
#searchTriggersFail: true # Whether a search 429 should trigger marking the ip as failing
#retryLimit: -1 # -1 = use default lavaplayer value | 0 = infinity | >0 = retry will happen this numbers times
youtubeConfig: # Required for avoiding all age restrictions by YouTube, some restricted videos still can be played without.
email: "<myuser>" # Email of Google account
password: "<mypass>" # Password of Google account
#httpConfig: # Useful for blocking bad-actors from ip-grabbing your music node and attacking it, this way only the http proxy will be attacked
#proxyHost: "localhost" # Hostname of the proxy, (ip or domain)
#proxyPort: 3128 # Proxy port, 3128 is the default for squidProxy
#proxyUser: "" # Optional user for basic authentication fields, leave blank if you don't use basic auth
#proxyPassword: "" # Password for basic authentication
metrics:
prometheus:
enabled: false
endpoint: /metrics
sentry:
dsn: ""
environment: ""
# tags:
# some_key: some_value
# another_key: another_value
logging:
file:
path: ./logs/
level:
root: INFO
lavalink: DEBUG
lavalink.server.io.SocketContext: TRACE
request:
enabled: true
includeClientInfo: true
includeHeaders: false
includeQueryString: true
includePayload: true
maxPayloadLength: 10000
logback:
rollingpolicy:
max-file-size: 10GB
max-history: 30
Lavaplayer completely stopped playing music. I get no errors in console, so it's basically impossible to debug. Sorry that I can't provide more information, but it is all the information I have.
Would you please add more information in AudioTrackInfo or AudioPlayList?
AudioPlaylist: authorUrl, authorIconUri, PlaylistUrl
AudioTrackInfo: authorUrl, authorIconUri
Lavalink doesn't work with YouTube livestream formatted like : "https://www.youtube.com/live/jfKfPfyJRdk" (Load failed).
Steps to reproduce the behavior:
Music starts and works well, like if the URL was formatted like: "https://www.youtube.com/watch?v=jfKfPfyJRdk".
Client used: 4.0.0-beta.3
Output of java -version
:
Java 17 (can not send command lines on Pterodactyl panel)
Lavalink Logs:
2023-09-14T22:55:54.197+02:00 INFO 33 --- [ XNIO-1 task-11] l.server.player.AudioLoaderRestHandler : Got request to load for identifier "https://www.youtube.com/live/jfKfPfyJRdk"
2023-09-14T22:55:54.267+02:00 ERROR 33 --- [ XNIO-1 task-11] 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:35) ~[lavaplayer-2.0.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioSourceManager.loadItem(HttpAudioSourceManager.java:82) ~[lavaplayer-2.0.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:403) ~[lavaplayer-2.0.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:385) ~[lavaplayer-2.0.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.loadItemSync(DefaultAudioPlayerManager.java:150) ~[lavaplayer-2.0.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager.loadItemSync(AudioPlayerManager.java:86) ~[lavaplayer-2.0.0.jar!/:na]
at lavalink.server.player.AudioLoader.load(AudioLoader.kt:56) ~[classes!/:4.0.0-beta.3]
at lavalink.server.player.AudioLoaderRestHandler.loadTracks(AudioLoaderRestHandler.kt:56) ~[classes!/:4.0.0-beta.3]
at jdk.internal.reflect.GeneratedMethodAccessor22.invoke(Unknown Source) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207) ~[spring-web-6.0.9.jar!/:6.0.9]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152) ~[spring-web-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:527) ~[jakarta.servlet-api-6.0.0.jar!/:6.0.0]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.0.9.jar!/:6.0.9]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614) ~[jakarta.servlet-api-6.0.0.jar!/:6.0.0]
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:289) ~[spring-web-6.0.9.jar!/:6.0.9]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.9.jar!/:6.0.9]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at lavalink.server.io.ResponseHeaderFilter.doFilterInternal(ResponseHeaderFilter.kt:17) ~[classes!/:4.0.0-beta.3]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.9.jar!/:6.0.9]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.0.9.jar!/:6.0.9]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.9.jar!/:6.0.9]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101) ~[undertow-servlet-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859) ~[undertow-core-2.3.6.Final.jar!/:2.3.6.Final]
at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) ~[jboss-threads-3.5.0.Final.jar!/:3.5.0.Final]
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513) ~[jboss-threads-3.5.0.Final.jar!/:3.5.0.Final]
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538) ~[jboss-threads-3.5.0.Final.jar!/:3.5.0.Final]
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282) ~[xnio-api-3.8.8.Final.jar!/:3.8.8.Final]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
wont play youtube track
Steps to reproduce the behavior:
Play any yt video in discord bot command, then it happens:
2023-08-09 13:07:38.595 ERROR 2744 --- [ader-2-thread-1] c.s.d.l.p.DefaultAudioPlayerManager : Error in loading item https://www.youtube.com/watch?v=EYACy7jELw4
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Loading information for a YouTube track failed.
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:240) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:252) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:248) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromUrlWithVideoId(DefaultYoutubeLinkRouter.java:101) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:66) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:44) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:216) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:147) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:428) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:410) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:208) ~[lavaplayer-1.5.0.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: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.5.0
os.arch: amd64
os.name: Windows 10
os.version: 10.0
java.vendor: Oracle Corporation
java.version: 17.0.7
java.runtime.version: 17.0.7+8-LTS-jvmci-22.3-b15
java.vm.version: 17.0.7+8-LTS-jvmci-22.3-b15
Caused by: java.lang.RuntimeException: java.io.IOException: Invalid status code for youtube embed video id: 500
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.toRuntimeException(ExceptionTools.java:66) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:38) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:228) ~[lavaplayer-1.5.0.jar!/:na]
... 14 common frames omitted
Caused by: java.io.IOException: Invalid status code for youtube embed video id: 500
at com.sedmelluq.discord.lavaplayer.tools.io.HttpClientTools.assertSuccessWithContent(HttpClientTools.java:157) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.fetchScript(DefaultYoutubeTrackDetailsLoader.java:283) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadTrackInfoFromInnertube(DefaultYoutubeTrackDetailsLoader.java:202) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.load(DefaultYoutubeTrackDetailsLoader.java:48) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:36) ~[lavaplayer-1.5.0.jar!/:na]
... 15 common frames omitted
2023-08-09 13:07:38.597 ERROR 2744 --- [ader-2-thread-1] lavalink.server.player.AudioLoader : Load failed
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Loading information for a YouTube track failed.
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:44) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:240) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:252) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:248) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromUrlWithVideoId(DefaultYoutubeLinkRouter.java:101) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:66) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:44) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:216) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:147) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:428) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:410) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:208) ~[lavaplayer-1.5.0.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: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.5.0
os.arch: amd64
os.name: Windows 10
os.version: 10.0
java.vendor: Oracle Corporation
java.version: 17.0.7
java.runtime.version: 17.0.7+8-LTS-jvmci-22.3-b15
java.vm.version: 17.0.7+8-LTS-jvmci-22.3-b15
Caused by: java.lang.RuntimeException: java.io.IOException: Invalid status code for youtube embed video id: 500
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.toRuntimeException(ExceptionTools.java:66) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:38) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:228) ~[lavaplayer-1.5.0.jar!/:na]
... 14 common frames omitted
Caused by: java.io.IOException: Invalid status code for youtube embed video id: 500
at com.sedmelluq.discord.lavaplayer.tools.io.HttpClientTools.assertSuccessWithContent(HttpClientTools.java:157) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.fetchScript(DefaultYoutubeTrackDetailsLoader.java:283) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadTrackInfoFromInnertube(DefaultYoutubeTrackDetailsLoader.java:202) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.load(DefaultYoutubeTrackDetailsLoader.java:48) ~[lavaplayer-1.5.0.jar!/:na]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:36) ~[lavaplayer-1.5.0.jar!/:na]
... 15 common frames omitted
Lavalink cant play yt link.
Client used: and 3.7.8
Output of java -version
:
java version "17.0.7" 2023-04-18 LTS
Java(TM) SE Runtime Environment GraalVM EE 22.3.2 (build 17.0.7+8-LTS-jvmci-22.3-b15)
Java HotSpot(TM) 64-Bit Server VM GraalVM EE 22.3.2 (build 17.0.7+8-LTS-jvmci-22.3-b15, mixed mode, sharing)
Lavalink Logs:
spring.log
Hello- I am not sure if you can help me with this issue but I am using lavaplayer in a Minecraft mod I am making, and I am currently trying to port my mod from Fabric to Forge. It works fine in Fabric, but for some reason in Forge whenever I try to use it it fails to load a native library. I've attached my error log. All I've noticed is that it is not successfully copying the necessary native files to my system's tmp directory, I am not sure why however. I should note this log I've attached was generated when I was using an older version of LavaPlayer, specifically another fork, but this exact error still occurs with this specific updated version.
log.txt
This repository is failing to build on JitPack.
https://jitpack.io/com/github/lavalink-devs/lavaplayer/main-eb28477967-1/build.log
So this had already been fixed in 727959e-SNAPSHOT
but it appeared again, any solutions? All youtube tracks fail.
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Video returned by YouTube isn't what was requested
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.load(DefaultYoutubeTrackDetailsLoader.java:59)
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeTrackDetailsLoader.loadDetails(DefaultYoutubeTrackDetailsLoader.java:36)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:230)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:254)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:250)
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromUrlWithVideoId(DefaultYoutubeLinkRouter.java:103)
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:68)
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:46)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:218)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:149)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:412)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:394)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.loadItemSync(DefaultAudioPlayerManager.java:156)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$loadItem$0(DefaultAudioPlayerManager.java:175)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
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)
Caused by: java.lang.IllegalStateException: {"responseContext":{"serviceTrackingParams":[{"service":"GFEEDBACK","params":[{"key":"ipcc","value":"0"},{"key":"is_viewed_live","value":"False"},{"key":"is_alc_surface","value":"false"},{"key":"logged_in","value":"0"},{"key":"e","value":"23858058,23888717,23946420,23966208,23983296,23998056,24004644,24036947,24077241,24078649,24080738,24117491,24120820,24135310,24135943,24143331,24166867,24181174,24187377,24230811,24232551,24241378,24265964,24267186,24290971,24299875,24377598,2439798
[19:02:11] [lava-daemon-pool-info-loader-2-thread-1/WARN]: Failure loading public suffix list from default resource
java.io.FileNotFoundException: JAR entry mozilla/public-suffix-list.txt not found in /home/crafthost_serwery/svr98059/plugins/sigma-bot-1.0-SNAPSHOT-shaded.jar
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:143) ~[?:1.8.0_333]
at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:172) ~[?:1.8.0_333]
at java.net.URL.openStream(URL.java:1092) ~[?:1.8.0_333]
at org.apache.http.conn.util.PublicSuffixMatcherLoader.load(PublicSuffixMatcherLoader.java:61) ~[?:?]
at org.apache.http.conn.util.PublicSuffixMatcherLoader.getDefault(PublicSuffixMatcherLoader.java:89) ~[?:?]
at com.sedmelluq.discord.lavaplayer.tools.http.ExtendedHttpClientBuilder.createConnectionSocketFactory(ExtendedHttpClientBuilder.java:101) ~[?:?]
at com.sedmelluq.discord.lavaplayer.tools.http.ExtendedHttpClientBuilder.createConnectionManager(ExtendedHttpClientBuilder.java:95) ~[?:?]
at com.sedmelluq.discord.lavaplayer.tools.http.ExtendedHttpClientBuilder.build(ExtendedHttpClientBuilder.java:57) ~[?:?]
at com.sedmelluq.discord.lavaplayer.tools.io.AbstractHttpInterfaceManager.getSharedClient(AbstractHttpInterfaceManager.java:84) ~[?:?]
at com.sedmelluq.discord.lavaplayer.tools.io.ThreadLocalHttpInterfaceManager.getInterface(ThreadLocalHttpInterfaceManager.java:34) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.getHttpInterface(YoutubeAudioSourceManager.java:188) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:229) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:254) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:250) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromUrlWithVideoId(DefaultYoutubeLinkRouter.java:103) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:68) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:46) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:218) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:149) ~[?:?]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:406) ~[?:?]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:388) ~[?:?]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:183) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_333]
at com.sedmelluq.discord.lavaplayer.tools.OrderedExecutor$ChannelRunnable.executeQueue(OrderedExecutor.java:90) [sigma-bot-1.0-SNAPSHOT-shaded.jar:?]
at com.sedmelluq.discord.lavaplayer.tools.OrderedExecutor$ChannelRunnable.run(OrderedExecutor.java:79) [sigma-bot-1.0-SNAPSHOT-shaded.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_333]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_333]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_333]
[19:02:11] [lava-daemon-pool-info-loader-2-thread-1/WARN]: Failure loading public suffix list from default resource
java.io.FileNotFoundException: JAR entry mozilla/public-suffix-list.txt not found in /home/crafthost_serwery/svr98059/plugins/sigma-bot-1.0-SNAPSHOT-shaded.jar
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:143) ~[?:1.8.0_333]
at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:172) ~[?:1.8.0_333]
at java.net.URL.openStream(URL.java:1092) ~[?:1.8.0_333]
at org.apache.http.conn.util.PublicSuffixMatcherLoader.load(PublicSuffixMatcherLoader.java:61) ~[?:?]
at org.apache.http.conn.util.PublicSuffixMatcherLoader.getDefault(PublicSuffixMatcherLoader.java:89) ~[?:?]
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:949) ~[?:?]
at com.sedmelluq.discord.lavaplayer.tools.http.ExtendedHttpClientBuilder.build(ExtendedHttpClientBuilder.java:58) ~[?:?]
at com.sedmelluq.discord.lavaplayer.tools.io.AbstractHttpInterfaceManager.getSharedClient(AbstractHttpInterfaceManager.java:84) ~[?:?]
at com.sedmelluq.discord.lavaplayer.tools.io.ThreadLocalHttpInterfaceManager.getInterface(ThreadLocalHttpInterfaceManager.java:34) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.getHttpInterface(YoutubeAudioSourceManager.java:188) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadTrackWithVideoId(YoutubeAudioSourceManager.java:229) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:254) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.track(YoutubeAudioSourceManager.java:250) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromUrlWithVideoId(DefaultYoutubeLinkRouter.java:103) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.routeFromMainDomain(DefaultYoutubeLinkRouter.java:68) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:46) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:218) ~[?:?]
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:149) ~[?:?]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:406) ~[?:?]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:388) ~[?:?]
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$createItemLoader$0(DefaultAudioPlayerManager.java:183) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_333]
at com.sedmelluq.discord.lavaplayer.tools.OrderedExecutor$ChannelRunnable.executeQueue(OrderedExecutor.java:90) [sigma-bot-1.0-SNAPSHOT-shaded.jar:?]
at com.sedmelluq.discord.lavaplayer.tools.OrderedExecutor$ChannelRunnable.run(OrderedExecutor.java:79) [sigma-bot-1.0-SNAPSHOT-shaded.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_333]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_333]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_333]
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: Exception in thread "lava-daemon-pool-playback-1-thread-1"
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.container.matroska.format.MutableMatroskaBlock.getNextFrameBuffer(MutableMatroskaBlock.java:56)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.processFrameInBlock(MatroskaStreamingFile.java:368)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseClusterSimpleBlock(MatroskaStreamingFile.java:332)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseNextCluster(MatroskaStreamingFile.java:317)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:293)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.lambda$process$0(MatroskaAudioTrack.java:40)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:274)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:247)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:39)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:83)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStaticWithRetry(YoutubeAudioTrack.java:65)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:52)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:101)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:324)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[19:02:12] [lava-daemon-pool-playback-1-thread-1/WARN]: at java.lang.Thread.run(Thread.java:750)
Any one know how can I fix this?
Lavaplayer stopped working for me. I'm using version 2.1.1
.
After restarting my application and trying to play the first track I notice following logs:
[lava-daemon-pool-info-loader-2-thread-1] WARN com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAccessTokenTracker - YouTube auth tokens can't be retrieved because email and password is not set in YoutubeAudioSourceManager, age restricted videos will throw exceptions.
[lava-daemon-pool-info-loader-2-thread-1] INFO com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAccessTokenTracker - Updating YouTube visitor id (current is null).
[lava-daemon-pool-info-loader-2-thread-1] INFO com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAccessTokenTracker - Updating YouTube visitor id succeeded, new one is <redacted>, next update will be after 600 seconds.
Following this my AudioLoadResultHandler
runs the function loadFailed(FriendlyException exception)
. Unfortunately I do not log the exception. I will try to provide more info when I got time.
This might be related to #90 but not sure.
Using Discord4J with lavaplayer. My bot randomly stopped working yesterday, and I'm not sure what's wrong. Here is the error displayed:
[lava-daemon-pool-info-loader-2-thread-1] ERROR com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager - Error in loading item ytsearch:test song
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something went wrong when looking up the track
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:45)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.dispatchItemLoadFailure(DefaultAudioPlayerManager.java:205)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.loadItemSync(DefaultAudioPlayerManager.java:164)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$loadItem$0(DefaultAudioPlayerManager.java:175)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.RuntimeException: java.io.IOException: Invalid status code for search response: 400
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:59)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSearchProvider.loadSearchResult(YoutubeSearchProvider.java:71)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.search(YoutubeAudioSourceManager.java:284)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager$LoadingRoutes.search(YoutubeAudioSourceManager.java:250)
at com.sedmelluq.discord.lavaplayer.source.youtube.DefaultYoutubeLinkRouter.route(DefaultYoutubeLinkRouter.java:39)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItemOnce(YoutubeAudioSourceManager.java:218)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager.loadItem(YoutubeAudioSourceManager.java:149)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItemOnce(DefaultAudioPlayerManager.java:412)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.checkSourcesForItem(DefaultAudioPlayerManager.java:394)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.loadItemSync(DefaultAudioPlayerManager.java:156)
... 5 more
Caused by: java.io.IOException: Invalid status code for search response: 400
at com.sedmelluq.discord.lavaplayer.tools.io.HttpClientTools.assertSuccessWithContent(HttpClientTools.java:154)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSearchProvider.loadSearchResult(YoutubeSearchProvider.java:63)
... 13 more
I was using lavaplayer for my own discord bot to play youtube into my server and when I put a valid youtube link it started playing the track, after some time it suddenly stopped playing the track and in the console started spamming this message:
DEBUG com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAccessTokenTracker -- YouTube visitor id was recently updated, not updating again right away.
Sometimes when i provide a valid link it response back with this message without playing anything:
DEBUG com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor -- Common failure for playback of mvkcyB_lve0: Video returned by YouTube isn't what was requested
No exception but: "YouTube auth tokens can't be retrieved because email and password is not set in YoutubeAudioSourceManager, age restricted videos will throw exceptions." message
Hello, I have encountered the following problem with several AAC streams:
ERROR com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor - Error in playback of https://streams.example.com
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something went wrong when decoding the track.
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:45)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:292)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:247)
at com.sedmelluq.discord.lavaplayer.container.adts.AdtsAudioTrack.process(AdtsAudioTrack.java:36)
at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
at com.sedmelluq.discord.lavaplayer.source.http.HttpAudioTrack.process(HttpAudioTrack.java:54)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:101)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$2(DefaultAudioPlayerManager.java:330)
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:840)
Caused by: java.lang.IllegalStateException: Error from decoder 16388
at com.sedmelluq.discord.lavaplayer.natives.aac.AacDecoder.decode(AacDecoder.java:185)
at com.sedmelluq.discord.lavaplayer.container.adts.AdtsStreamProvider.decodeAndSend(AdtsStreamProvider.java:111)
at com.sedmelluq.discord.lavaplayer.container.adts.AdtsStreamProvider.provideFrames(AdtsStreamProvider.java:82)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:274)
... 9 more
This never happens immediately, but after about half an hour.
Hello I'm getting some problem on the latest version of lava player 2.0.0 I tried 1.5.0 with the same problem:
[20:22:25] [ERROR] [LocalAudioTrackExecutor]: Error in playback of IWrZpP24H8I
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track.
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:45)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:117)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$2(DefaultAudioPlayerManager.java:321)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
at com.sedmelluq.discord.lavaplayer.container.matroska.format.MutableMatroskaBlock.getNextFrameBuffer(MutableMatroskaBlock.java:56)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.processFrameInBlock(MatroskaStreamingFile.java:372)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseClusterSimpleBlock(MatroskaStreamingFile.java:336)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseNextCluster(MatroskaStreamingFile.java:321)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:297)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.lambda$process$0(MatroskaAudioTrack.java:40)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:276)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:250)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:39)
at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:63)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:50)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:105)
... 4 common frames omitted
Exception in thread "lava-daemon-pool-playback-1-thread-2" java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
at com.sedmelluq.discord.lavaplayer.container.matroska.format.MutableMatroskaBlock.getNextFrameBuffer(MutableMatroskaBlock.java:56)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.processFrameInBlock(MatroskaStreamingFile.java:372)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseClusterSimpleBlock(MatroskaStreamingFile.java:336)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseNextCluster(MatroskaStreamingFile.java:321)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:297)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.lambda$process$0(MatroskaAudioTrack.java:40)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:276)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:250)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:39)
at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:63)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:50)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:105)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$2(DefaultAudioPlayerManager.java:321)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[20:18:49] [WARN] [YoutubeAccessTokenTracker]: YouTube auth tokens can't be retrieved because email and password is not set in YoutubeAudioSourceManager, age restricted videos will throw exceptions.
[20:18:50] [INFO] [YoutubeAccessTokenTracker]: Updating YouTube visitor id (current is null).
[20:18:50] [INFO] [YoutubeAccessTokenTracker]: Updating YouTube visitor id succeeded, new one is CgtDU3FjVmg2MnNQcyiqr9qmBjoKIJm604ek9aXrZA%3D%3D, next update will be after 600 seconds.
[20:18:50] [ERROR] [LocalAudioTrackExecutor]: Error in playback of jWNXYYVHeJI
com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track.
at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:45)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:117)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$2(DefaultAudioPlayerManager.java:321)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
at com.sedmelluq.discord.lavaplayer.container.matroska.format.MutableMatroskaBlock.getNextFrameBuffer(MutableMatroskaBlock.java:56)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.processFrameInBlock(MatroskaStreamingFile.java:372)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseClusterSimpleBlock(MatroskaStreamingFile.java:336)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseNextCluster(MatroskaStreamingFile.java:321)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:297)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.lambda$process$0(MatroskaAudioTrack.java:40)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:276)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:250)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:39)
at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:63)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:50)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:105)
... 4 common frames omitted
Exception in thread "lava-daemon-pool-playback-1-thread-1" java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;
at com.sedmelluq.discord.lavaplayer.container.matroska.format.MutableMatroskaBlock.getNextFrameBuffer(MutableMatroskaBlock.java:56)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.processFrameInBlock(MatroskaStreamingFile.java:372)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseClusterSimpleBlock(MatroskaStreamingFile.java:336)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.parseNextCluster(MatroskaStreamingFile.java:321)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaStreamingFile.provideFrames(MatroskaStreamingFile.java:297)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.lambda$process$0(MatroskaAudioTrack.java:40)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:276)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.executeProcessingLoop(LocalAudioTrackExecutor.java:250)
at com.sedmelluq.discord.lavaplayer.container.matroska.MatroskaAudioTrack.process(MatroskaAudioTrack.java:39)
at com.sedmelluq.discord.lavaplayer.track.DelegatedAudioTrack.processDelegate(DelegatedAudioTrack.java:25)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.processStatic(YoutubeAudioTrack.java:63)
at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:50)
at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:105)
at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$2(DefaultAudioPlayerManager.java:321)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
IWrZpP24H8I
Someone have this problem?
Thanks in advice.
When playing a YouTube stream / video that has a duration of 6 hours or more, a "TrackEndEvent" with a generic "finished" event is emitted, with no errors present in the logs
I have done tests using both a stream as well as a regular video that has a duration of 10 hours, both produce the exact same outcome
Below is a list of steps I have done to reproduce this issue, demonstrating that the stream / video ends at exactly 6 hours after initially playing
HERE is a gobin containing the log of the test, I cut out most of it to be able to store it because the entire log output was too large
I believe this is because of a query parameter called "expire" present in the google video link found on line 87 in the gobin link (i redacted the host ip address from the link)
The value of this query parameter is a unix timestamp in seconds. After parsing the timestamp the time given is (Thursday, March 21, 2024 8:57:23 PM EDT) which is consistent with the log output
The "TrackStartEvent" is logged on line 84 at (2024-03-21T14:57:22.320-04:00)
The "TrackEndEvent" is logged on line 109 at (2024-03-21T20:57:27.379-04:00)
When probing a file with an OGG container, if a video stream is present (typically artwork), the file fails to be resolved with Lavaplayer throwing an exception stating "Unsupported track in OGG stream
".
Caused by: java.lang.IllegalStateException: Unsupported track in OGG stream.
at com.sedmelluq.discord.lavaplayer.container.ogg.OggTrackLoader.detectCodec(OggTrackLoader.java:60)
at com.sedmelluq.discord.lavaplayer.container.ogg.OggTrackLoader.loadTrackBlueprint(OggTrackLoader.java:31)
at com.sedmelluq.discord.lavaplayer.container.ogg.OggAudioTrack.process(OggAudioTrack.java:37)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.