Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Video with fragments break after 11~ seconds #104

Open
SethFalco opened this issue Oct 20, 2024 · 19 comments
Open

Video with fragments break after 11~ seconds #104

SethFalco opened this issue Oct 20, 2024 · 19 comments

Comments

@SethFalco
Copy link
Contributor

SethFalco commented Oct 20, 2024

I'm running with a fresh self-hosted instance of Invidious. It's working fine on my browser, unless I enable DASH which screws things up for some reason with network errors.

However, videos work on browser, they don't work in Kodi for some reason. 🤔

Do you have any thoughts on if this might be related to the Kodi add-on, or to Invidious itself? I'm unsure as it works in browser which suggests Invidious should be fine, but can't find obvious problem with the add-on.

The issue appears to ultimately be that we're getting a 403 to *.googlevideo.com. I can investigate this further if you're not sure either.

Environments

This issue occurs on both:

  • Debian (Linux), 13th Gen Intel (x86), Kodi installed via Flatpak, Kodi v21.1.0
  • LibreELEC (Linux), aarm64 (ROCKPro64), Kodi v20.3.0

Screenshots

Here, you can see that Invidious is working fine in my browser:

browser.webm

Here, you can see that Invidious doesn't work well on Kodi. When the video stops loading, it's playing a very loud/painful sound. (I think it's the last audio segment repeating rapidly?)

kodi.webm

Logs

Here are some logs if it helps. It's clear the issue is regarding video fragments, especially as this issue does not occur on videos that are 30 seconds long. (Presumably, they are not fragmented.)

2024-10-20 18:50:21.601 T:95       info <general>: [plugin.video.invidious] <service.instance.session> request: GET https://invidious.falco.fun/api/v1/videos/uBQMVE1v-G4?hl=en-US&region=US
2024-10-20 18:50:22.686 T:7        info <general>: VideoPlayer::OpenFile: plugin://plugin.video.invidious/?action=play&videoId=uBQMVE1v-G4
2024-10-20 18:50:22.696 T:684379    info <general>: Creating InputStream
2024-10-20 18:50:22.696 T:684379 warning <general>: AddOnLog: inputstream.adaptive: Warning "inputstream.adaptive.manifest_type" property is deprecated and will be removed next Kodi version, the manifest type is now automatically detected.
                                                   If you are using a proxy remember to add the appropriate "content-type" header to the HTTP manifest response
                                                   See Wiki page "How to provide custom manifest/license" to learn more about it.
2024-10-20 18:50:22.696 T:684379    info <general>: AddOnLog: inputstream.adaptive: [Repr. chooser] Resolution set: 1112x591, max allowed: 1112x591, Adjust refresh rate: 0
2024-10-20 18:50:23.344 T:684379    info <general>: AddOnLog: inputstream.adaptive: Manifest successfully parsed (Periods: 1, Streams in first period: 3, Type: VOD)
2024-10-20 18:50:23.344 T:684379    info <general>: Creating Demuxer
2024-10-20 18:50:23.345 T:684379    info <general>: Opening stream: 1001 source: 256
2024-10-20 18:50:23.424 T:684379    info <general>: Creating video codec with codec id: 226
2024-10-20 18:50:23.424 T:684379    info <general>: CDVDVideoCodecFFmpeg::Open() Using codec: Alliance for Open Media AV1
2024-10-20 18:50:23.424 T:684379    info <general>: Creating video thread
2024-10-20 18:50:23.424 T:684383    info <general>: running thread: video_thread
2024-10-20 18:50:23.424 T:684379    info <general>: Opening stream: 1002 source: 256
2024-10-20 18:50:23.668 T:684379    info <general>: Finding audio codec for: 86018
2024-10-20 18:50:23.669 T:684379    info <general>: CDVDAudioCodecFFmpeg::Open() Successful opened audio decoder aac
2024-10-20 18:50:23.669 T:684379    info <general>: OpenStream: Allowing max Out-Of-Sync Value of 50 ms
2024-10-20 18:50:23.669 T:684379    info <general>: Creating audio thread
2024-10-20 18:50:23.669 T:684385    info <general>: running thread: CVideoPlayerAudio::Process()
2024-10-20 18:50:23.782 T:684438    info <general>: COutput::OnStartup: Output Thread created
2024-10-20 18:50:23.787 T:684385    info <general>: Creating audio stream (codec id: 86018, channels: 2, sample rate: 44100, no pass-through)
2024-10-20 18:50:23.827 T:21       info <general>: CActiveAESink::OpenSink - initialize sink
2024-10-20 18:50:23.828 T:7        info <general>: GL: Selecting YUV 2 RGB shader
2024-10-20 18:50:23.828 T:7        info <general>: GL: Using GL_ARB_pixel_buffer_object
2024-10-20 18:50:23.828 T:7        info <general>: Using GL_TEXTURE_2D
2024-10-20 18:50:24.071 T:684384   error <general>: AddOnLog: inputstream.adaptive: [AS-34] Download failed, HTTP error 403: https://rr1---sn-1xopouxgoxu-aigl.googlevideo.com/videoplayback?expire=1729468222&ei=3kIVZ4ybK-u2mLAPvvu36AM&ip=82.69.21.99&id=o-AMrpfGEsgtL8UtozQeXXmov4T2jeo2MfwWBt6t8f-Wba&itag=140&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1729446622%2C&mh=H1&mm=31%2C29&mn=sn-1xopouxgoxu-aigl%2Csn-aigl6nzl&ms=au%2Crdu&mv=m&mvi=1&pl=19&rms=au%2Cau&initcwndbps=1685000&bui=AXLXGFRkmzwSElihSJJveLZe_j2JnMuZDeSgZ-rkq2xOyPyaEoQXwbyPLiXLpZrZ2agwr2qGl5ThR6LS&spc=54MbxVqijPkmQVxC0PMwaNYUDkyLv0PEYu1fd9IKWEKDI5xz6xarnpwHV_mC&vprv=1&svpuc=1&mime=audio%2Fmp4&ns=eBq5NAMiyPUUU09DfszSupwQ&rqh=1&gir=yes&clen=16845635&ratebypass=yes&dur=1040.834&lmt=1729144600388879&mt=1729446074&fvip=2&keepalive=yes&fexp=51312688%2C51326931&c=WEB&sefc=1&txp=5532434&n=sMjGkqJYHbMAnw&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRQIhAJbhxJqn3JTSlIxrJsfRqE-dKGnNH1gPQd9f-qDVV30FAiBa7vFkDBpSGMFxCPwMd3PVTghUJoviJqweYj_uEet33w%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=ACJ0pHgwRgIhAJ2dsCOD8aIufZPcBk72x81XdRhY04DvOJR0RFx_GPHSAiEAgmJIKVIakp0Szx7kjmPXJK5E-zfrMsXMm_2ifFT32qI%3D&pot=KrIIC0VCSDpFcnJvcjpScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdOkVycm9yOiBScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdCiAgICBhdCBuZXcgRGkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6Nzk0OjQ2KQogICAgYXQgZy5ZaS48YW5vbnltb3VzPiAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo5NTA6MTQ3KQogICAgYXQgZWkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6NzM4OjIwOCkKICAgIGF0IGcuay5kaXNwYXRjaEV2ZW50IChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc4ODA6Mzg2KQogICAgYXQgZGdhIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjgyNTozNCkKICAgIGF0IGZnYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo4MjY6MzgzKQogICAgYXQgZy5rLmtjYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo3OTIxOjIwKQogICAgYXQgZy5rLlUwIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc5MjA6NzAp&host=rr1---sn-1xopouxgoxu-aigl.googlevideo.com
2024-10-20 18:50:24.092 T:21       info <general>: CAESinkALSA::Initialize - Attempting to open device "default"
2024-10-20 18:50:24.098 T:21       info <general>: CAESinkALSA::Initialize - Opened device "default"
2024-10-20 18:50:24.239 T:684383    info <general>: CDVDVideoCodecFFmpeg::CDropControl: calculated diff time: 33366
2024-10-20 18:50:24.571 T:684384 warning <general>: AddOnLog: inputstream.adaptive: [AS-34] Segment download failed, attempt 2...
2024-10-20 18:50:24.586 T:684384   error <general>: AddOnLog: inputstream.adaptive: [AS-34] Download failed, HTTP error 403: https://rr1---sn-1xopouxgoxu-aigl.googlevideo.com/videoplayback?expire=1729468222&ei=3kIVZ4ybK-u2mLAPvvu36AM&ip=82.69.21.99&id=o-AMrpfGEsgtL8UtozQeXXmov4T2jeo2MfwWBt6t8f-Wba&itag=140&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1729446622%2C&mh=H1&mm=31%2C29&mn=sn-1xopouxgoxu-aigl%2Csn-aigl6nzl&ms=au%2Crdu&mv=m&mvi=1&pl=19&rms=au%2Cau&initcwndbps=1685000&bui=AXLXGFRkmzwSElihSJJveLZe_j2JnMuZDeSgZ-rkq2xOyPyaEoQXwbyPLiXLpZrZ2agwr2qGl5ThR6LS&spc=54MbxVqijPkmQVxC0PMwaNYUDkyLv0PEYu1fd9IKWEKDI5xz6xarnpwHV_mC&vprv=1&svpuc=1&mime=audio%2Fmp4&ns=eBq5NAMiyPUUU09DfszSupwQ&rqh=1&gir=yes&clen=16845635&ratebypass=yes&dur=1040.834&lmt=1729144600388879&mt=1729446074&fvip=2&keepalive=yes&fexp=51312688%2C51326931&c=WEB&sefc=1&txp=5532434&n=sMjGkqJYHbMAnw&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRQIhAJbhxJqn3JTSlIxrJsfRqE-dKGnNH1gPQd9f-qDVV30FAiBa7vFkDBpSGMFxCPwMd3PVTghUJoviJqweYj_uEet33w%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=ACJ0pHgwRgIhAJ2dsCOD8aIufZPcBk72x81XdRhY04DvOJR0RFx_GPHSAiEAgmJIKVIakp0Szx7kjmPXJK5E-zfrMsXMm_2ifFT32qI%3D&pot=KrIIC0VCSDpFcnJvcjpScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdOkVycm9yOiBScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdCiAgICBhdCBuZXcgRGkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6Nzk0OjQ2KQogICAgYXQgZy5ZaS48YW5vbnltb3VzPiAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo5NTA6MTQ3KQogICAgYXQgZWkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6NzM4OjIwOCkKICAgIGF0IGcuay5kaXNwYXRjaEV2ZW50IChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc4ODA6Mzg2KQogICAgYXQgZGdhIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjgyNTozNCkKICAgIGF0IGZnYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo4MjY6MzgzKQogICAgYXQgZy5rLmtjYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo3OTIxOjIwKQogICAgYXQgZy5rLlUwIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc5MjA6NzAp&host=rr1---sn-1xopouxgoxu-aigl.googlevideo.com
2024-10-20 18:50:25.087 T:684384 warning <general>: AddOnLog: inputstream.adaptive: [AS-34] Segment download failed, attempt 3...
2024-10-20 18:50:25.127 T:684384   error <general>: AddOnLog: inputstream.adaptive: [AS-34] Download failed, HTTP error 403: https://rr1---sn-1xopouxgoxu-aigl.googlevideo.com/videoplayback?expire=1729468222&ei=3kIVZ4ybK-u2mLAPvvu36AM&ip=82.69.21.99&id=o-AMrpfGEsgtL8UtozQeXXmov4T2jeo2MfwWBt6t8f-Wba&itag=140&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1729446622%2C&mh=H1&mm=31%2C29&mn=sn-1xopouxgoxu-aigl%2Csn-aigl6nzl&ms=au%2Crdu&mv=m&mvi=1&pl=19&rms=au%2Cau&initcwndbps=1685000&bui=AXLXGFRkmzwSElihSJJveLZe_j2JnMuZDeSgZ-rkq2xOyPyaEoQXwbyPLiXLpZrZ2agwr2qGl5ThR6LS&spc=54MbxVqijPkmQVxC0PMwaNYUDkyLv0PEYu1fd9IKWEKDI5xz6xarnpwHV_mC&vprv=1&svpuc=1&mime=audio%2Fmp4&ns=eBq5NAMiyPUUU09DfszSupwQ&rqh=1&gir=yes&clen=16845635&ratebypass=yes&dur=1040.834&lmt=1729144600388879&mt=1729446074&fvip=2&keepalive=yes&fexp=51312688%2C51326931&c=WEB&sefc=1&txp=5532434&n=sMjGkqJYHbMAnw&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRQIhAJbhxJqn3JTSlIxrJsfRqE-dKGnNH1gPQd9f-qDVV30FAiBa7vFkDBpSGMFxCPwMd3PVTghUJoviJqweYj_uEet33w%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=ACJ0pHgwRgIhAJ2dsCOD8aIufZPcBk72x81XdRhY04DvOJR0RFx_GPHSAiEAgmJIKVIakp0Szx7kjmPXJK5E-zfrMsXMm_2ifFT32qI%3D&pot=KrIIC0VCSDpFcnJvcjpScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdOkVycm9yOiBScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdCiAgICBhdCBuZXcgRGkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6Nzk0OjQ2KQogICAgYXQgZy5ZaS48YW5vbnltb3VzPiAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo5NTA6MTQ3KQogICAgYXQgZWkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6NzM4OjIwOCkKICAgIGF0IGcuay5kaXNwYXRjaEV2ZW50IChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc4ODA6Mzg2KQogICAgYXQgZGdhIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjgyNTozNCkKICAgIGF0IGZnYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo4MjY6MzgzKQogICAgYXQgZy5rLmtjYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo3OTIxOjIwKQogICAgYXQgZy5rLlUwIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc5MjA6NzAp&host=rr1---sn-1xopouxgoxu-aigl.googlevideo.com
2024-10-20 18:50:25.627 T:684384 warning <general>: AddOnLog: inputstream.adaptive: [AS-34] Segment download failed, attempt 4...
2024-10-20 18:50:25.670 T:684384   error <general>: AddOnLog: inputstream.adaptive: [AS-34] Download failed, HTTP error 403: https://rr1---sn-1xopouxgoxu-aigl.googlevideo.com/videoplayback?expire=1729468222&ei=3kIVZ4ybK-u2mLAPvvu36AM&ip=82.69.21.99&id=o-AMrpfGEsgtL8UtozQeXXmov4T2jeo2MfwWBt6t8f-Wba&itag=140&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1729446622%2C&mh=H1&mm=31%2C29&mn=sn-1xopouxgoxu-aigl%2Csn-aigl6nzl&ms=au%2Crdu&mv=m&mvi=1&pl=19&rms=au%2Cau&initcwndbps=1685000&bui=AXLXGFRkmzwSElihSJJveLZe_j2JnMuZDeSgZ-rkq2xOyPyaEoQXwbyPLiXLpZrZ2agwr2qGl5ThR6LS&spc=54MbxVqijPkmQVxC0PMwaNYUDkyLv0PEYu1fd9IKWEKDI5xz6xarnpwHV_mC&vprv=1&svpuc=1&mime=audio%2Fmp4&ns=eBq5NAMiyPUUU09DfszSupwQ&rqh=1&gir=yes&clen=16845635&ratebypass=yes&dur=1040.834&lmt=1729144600388879&mt=1729446074&fvip=2&keepalive=yes&fexp=51312688%2C51326931&c=WEB&sefc=1&txp=5532434&n=sMjGkqJYHbMAnw&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRQIhAJbhxJqn3JTSlIxrJsfRqE-dKGnNH1gPQd9f-qDVV30FAiBa7vFkDBpSGMFxCPwMd3PVTghUJoviJqweYj_uEet33w%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=ACJ0pHgwRgIhAJ2dsCOD8aIufZPcBk72x81XdRhY04DvOJR0RFx_GPHSAiEAgmJIKVIakp0Szx7kjmPXJK5E-zfrMsXMm_2ifFT32qI%3D&pot=KrIIC0VCSDpFcnJvcjpScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdOkVycm9yOiBScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdCiAgICBhdCBuZXcgRGkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6Nzk0OjQ2KQogICAgYXQgZy5ZaS48YW5vbnltb3VzPiAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo5NTA6MTQ3KQogICAgYXQgZWkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6NzM4OjIwOCkKICAgIGF0IGcuay5kaXNwYXRjaEV2ZW50IChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc4ODA6Mzg2KQogICAgYXQgZGdhIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjgyNTozNCkKICAgIGF0IGZnYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo4MjY6MzgzKQogICAgYXQgZy5rLmtjYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo3OTIxOjIwKQogICAgYXQgZy5rLlUwIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc5MjA6NzAp&host=rr1---sn-1xopouxgoxu-aigl.googlevideo.com
2024-10-20 18:50:26.170 T:684384 warning <general>: AddOnLog: inputstream.adaptive: [AS-34] Segment download failed, attempt 5...
2024-10-20 18:50:26.234 T:684384   error <general>: AddOnLog: inputstream.adaptive: [AS-34] Download failed, HTTP error 403: https://rr1---sn-1xopouxgoxu-aigl.googlevideo.com/videoplayback?expire=1729468222&ei=3kIVZ4ybK-u2mLAPvvu36AM&ip=82.69.21.99&id=o-AMrpfGEsgtL8UtozQeXXmov4T2jeo2MfwWBt6t8f-Wba&itag=140&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1729446622%2C&mh=H1&mm=31%2C29&mn=sn-1xopouxgoxu-aigl%2Csn-aigl6nzl&ms=au%2Crdu&mv=m&mvi=1&pl=19&rms=au%2Cau&initcwndbps=1685000&bui=AXLXGFRkmzwSElihSJJveLZe_j2JnMuZDeSgZ-rkq2xOyPyaEoQXwbyPLiXLpZrZ2agwr2qGl5ThR6LS&spc=54MbxVqijPkmQVxC0PMwaNYUDkyLv0PEYu1fd9IKWEKDI5xz6xarnpwHV_mC&vprv=1&svpuc=1&mime=audio%2Fmp4&ns=eBq5NAMiyPUUU09DfszSupwQ&rqh=1&gir=yes&clen=16845635&ratebypass=yes&dur=1040.834&lmt=1729144600388879&mt=1729446074&fvip=2&keepalive=yes&fexp=51312688%2C51326931&c=WEB&sefc=1&txp=5532434&n=sMjGkqJYHbMAnw&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRQIhAJbhxJqn3JTSlIxrJsfRqE-dKGnNH1gPQd9f-qDVV30FAiBa7vFkDBpSGMFxCPwMd3PVTghUJoviJqweYj_uEet33w%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=ACJ0pHgwRgIhAJ2dsCOD8aIufZPcBk72x81XdRhY04DvOJR0RFx_GPHSAiEAgmJIKVIakp0Szx7kjmPXJK5E-zfrMsXMm_2ifFT32qI%3D&pot=KrIIC0VCSDpFcnJvcjpScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdOkVycm9yOiBScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdCiAgICBhdCBuZXcgRGkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6Nzk0OjQ2KQogICAgYXQgZy5ZaS48YW5vbnltb3VzPiAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo5NTA6MTQ3KQogICAgYXQgZWkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6NzM4OjIwOCkKICAgIGF0IGcuay5kaXNwYXRjaEV2ZW50IChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc4ODA6Mzg2KQogICAgYXQgZGdhIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjgyNTozNCkKICAgIGF0IGZnYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo4MjY6MzgzKQogICAgYXQgZy5rLmtjYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo3OTIxOjIwKQogICAgYXQgZy5rLlUwIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc5MjA6NzAp&host=rr1---sn-1xopouxgoxu-aigl.googlevideo.com
2024-10-20 18:50:26.734 T:684384 warning <general>: AddOnLog: inputstream.adaptive: [AS-34] Segment download failed, attempt 6...
2024-10-20 18:50:26.781 T:684384   error <general>: AddOnLog: inputstream.adaptive: [AS-34] Download failed, HTTP error 403: https://rr1---sn-1xopouxgoxu-aigl.googlevideo.com/videoplayback?expire=1729468222&ei=3kIVZ4ybK-u2mLAPvvu36AM&ip=82.69.21.99&id=o-AMrpfGEsgtL8UtozQeXXmov4T2jeo2MfwWBt6t8f-Wba&itag=140&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1729446622%2C&mh=H1&mm=31%2C29&mn=sn-1xopouxgoxu-aigl%2Csn-aigl6nzl&ms=au%2Crdu&mv=m&mvi=1&pl=19&rms=au%2Cau&initcwndbps=1685000&bui=AXLXGFRkmzwSElihSJJveLZe_j2JnMuZDeSgZ-rkq2xOyPyaEoQXwbyPLiXLpZrZ2agwr2qGl5ThR6LS&spc=54MbxVqijPkmQVxC0PMwaNYUDkyLv0PEYu1fd9IKWEKDI5xz6xarnpwHV_mC&vprv=1&svpuc=1&mime=audio%2Fmp4&ns=eBq5NAMiyPUUU09DfszSupwQ&rqh=1&gir=yes&clen=16845635&ratebypass=yes&dur=1040.834&lmt=1729144600388879&mt=1729446074&fvip=2&keepalive=yes&fexp=51312688%2C51326931&c=WEB&sefc=1&txp=5532434&n=sMjGkqJYHbMAnw&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRQIhAJbhxJqn3JTSlIxrJsfRqE-dKGnNH1gPQd9f-qDVV30FAiBa7vFkDBpSGMFxCPwMd3PVTghUJoviJqweYj_uEet33w%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=ACJ0pHgwRgIhAJ2dsCOD8aIufZPcBk72x81XdRhY04DvOJR0RFx_GPHSAiEAgmJIKVIakp0Szx7kjmPXJK5E-zfrMsXMm_2ifFT32qI%3D&pot=KrIIC0VCSDpFcnJvcjpScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdOkVycm9yOiBScGMgZmFpbGVkIGR1ZSB0byB4aHIgZXJyb3IuIHVyaTogaHR0cHM6Ly9qbm4tcGEuZ29vZ2xlYXBpcy5jb20vJHJwYy9nb29nbGUuaW50ZXJuYWwud2FhLnYxLldhYS9DcmVhdGUsIGVycm9yIGNvZGU6IDYsIGVycm9yOiAgWzBdCiAgICBhdCBuZXcgRGkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6Nzk0OjQ2KQogICAgYXQgZy5ZaS48YW5vbnltb3VzPiAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo5NTA6MTQ3KQogICAgYXQgZWkgKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3MvcGxheWVyL2IwNTU3Y2UzL3BsYXllcl9pYXMudmZsc2V0L2VuX1VTL2Jhc2UuanM6NzM4OjIwOCkKICAgIGF0IGcuay5kaXNwYXRjaEV2ZW50IChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc4ODA6Mzg2KQogICAgYXQgZGdhIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjgyNTozNCkKICAgIGF0IGZnYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo4MjY6MzgzKQogICAgYXQgZy5rLmtjYSAoaHR0cHM6Ly93d3cueW91dHViZS5jb20vcy9wbGF5ZXIvYjA1NTdjZTMvcGxheWVyX2lhcy52ZmxzZXQvZW5fVVMvYmFzZS5qczo3OTIxOjIwKQogICAgYXQgZy5rLlUwIChodHRwczovL3d3dy55b3V0dWJlLmNvbS9zL3BsYXllci9iMDU1N2NlMy9wbGF5ZXJfaWFzLnZmbHNldC9lbl9VUy9iYXNlLmpzOjc5MjA6NzAp&host=rr1---sn-1xopouxgoxu-aigl.googlevideo.com
2024-10-20 18:50:29.150 T:7        info <general>: GL: Selecting YUV 2 RGB shader
2024-10-20 18:50:29.150 T:7        info <general>: GL: Using GL_ARB_pixel_buffer_object
2024-10-20 18:50:29.150 T:7        info <general>: Using GL_TEXTURE_2D
2024-10-20 18:50:35.687 T:20    warning <general>: ActiveAE - large audio sync error: -1022.682648
2024-10-20 18:50:35.687 T:20    warning <general>: ActiveAE - large audio sync error: -1092.682660
2024-10-20 18:50:35.687 T:20    warning <general>: ActiveAE - large audio sync error: -1138.682650
2024-10-20 18:50:35.773 T:20    warning <general>: ActiveAE - large audio sync error: -1236.109999
2024-10-20 18:50:35.857 T:20    warning <general>: ActiveAE - large audio sync error: -1282.539506

I'll come back to you on any other reviews/comments you've left on my other PRs as soon as I have Invidious working on Kodi again!

@lekma
Copy link
Owner

lekma commented Oct 27, 2024

is that kodi 21/22? because i'm still on 20...

@SethFalco
Copy link
Contributor Author

I've amended my original message to include version numbers for both devices that I can reproduce the issue on.

Happens on both v20 and v21, though. I haven't tested on v22!

@lekma
Copy link
Owner

lekma commented Oct 27, 2024

so i just tried the ltt vid it works with no problem here.

can you humor me and try starting kodi (the 20 one) with KODI_AE_SINK=ALSA kodi and setup kodi system audio setting to the correct output (just to remove some variables because i see you're affected with the bane of my existence for the last week of free time, namely "ActiveAE - large audio sync error") also make sure you're not trying to play anything but an h264/aac stream.

it is consistent that it doesn't work with dash on browser and not on kodi either because the plugin uses dash manifests to play the video, this points maybe to a configuration problem with your instance...

in fact i wasn't aware that there was any other way to play the vids from invidious than dash

@lekma
Copy link
Owner

lekma commented Oct 27, 2024

what you can also try to see if it really is a instance problem is trying to play it from yt (context menu) because the the source for the dash manifest is different...

@czardien
Copy link

czardien commented Jan 13, 2025

Hi! Yep, I'm pretty sure I'm suffering from the same issue. I am:

  • Running Archlinux on an Intel NUC
  • Using pipewire
  • Running a local instance of Invidious on the same computer (version 2024.11.10-5d2dd40b), which works nicely
  • Happily running Kodi version: Kodi Media Center 21.1 (21.1.0) Git:20250110-nogitfound for the past few weeks
  • Keeping the plugin.video.invidious configuration to defaults; not touching anything but the instance URL

I've got some logs attached. Like @SethFalco, I see a whole bunch of 403, but what really jumps out to me are the ActiveAE - large audio sync error errors. There are a flurry of them, and tailing my logs they appear at around 11 seconds and coincide perfectly with my videos pretty much freezing and doing that not-so-nice sound as @SethFalco described.

I installed a whole bunch of encoder packages from Archlinux because I didn't know any better; nothing helped:

kodi-addon-audioencoder-flac 1:20.2.0-10
kodi-addon-audioencoder-lame 1:20.3.0-10
kodi-addon-audioencoder-vorbis 1:20.2.0-10
kodi-addon-audioencoder-wav 1:20.2.0-10
kodi-addon-imagedecoder-heif 20.1.0-12
kodi-addon-imagedecoder-raw 20.1.0-11
kodi-addon-inputstream-adaptive 21.5.7-1
kodi-addon-inputstream-rtmp 21.1.0-2

I have tried changing the Audio output to my expected HDMI sink but it didn't make a difference. I searched online for these "large audio sync error" messages, but without luck so far.

Am a little clueless. Any chance you've had better luck with this?

Thank you for the project by the way 🙏

@czardien
Copy link

Oh, attaching the logs is better.

kodi.log

@lekma
Copy link
Owner

lekma commented Jan 14, 2025

I'm experiencing the same since a couple of days... investigating

@lekma
Copy link
Owner

lekma commented Jan 14, 2025

there are 2 things:

  • "large audio sync error": try to start kodi with env var KODI_AE_SINK=ALSA (pulseaudio/pipewire support was always wonky for me) it gave me the best result on kodi 20. I ever hardly see these messages (only when skipping a lot).
  • 403 errors: these seem to have been introduced (recently?) by upstream (i mean yt not iv). Others yt extractors seem to have solve this in their most recent releases. (you could confirm that by updating script.module.yt-dlp to 2025.01.12-1 and try to play the same vid (maybe after a reboot) from the context menu Play from YT)

Now, the sad truth is, given the lack of public instance supporting the json api, i cannot test anything anymore, it seems to me that this addon is going the way of the dodo...

@czardien
Copy link

Hey @lekma , thanks for looking into this. The extinction of the dodo was a sad event indeed. I don't have access to my Kodi being at work now, so I'll try your first suggestion later and let you know if that improves it.

Now, the sad truth is, given the lack of public instance supporting the json api, i cannot test anything anymore, it seems to me that this addon is going the way of the dodo...

What's jumping out to me is how my local Invidious instance is stable and working, and pretty much up-to-date as well. This kinda tells me that upstream is fine, so I'm not sure I understand why this addon should be doomed!

I could potentially provide a public instance for you to have a play/test with? If you let me know your favourite DM contact we can have a chat on this.

@lekma
Copy link
Owner

lekma commented Jan 14, 2025

What's jumping out to me is how my local Invidious instance is stable and working, and pretty much up-to-date as well. This kinda tells me that upstream is fine, so I'm not sure I understand why this addon should be doomed!

i think the problem is iv is prioritizing their html interface over their json api, and again i can't test anything anymore because no public instances available (I'm open to transfer the repo to someone who has a private instance and can do the work)

I could potentially provide a public instance for you to have a play/test with? If you let me know your favourite DM contact we can have a chat on this.

lekma at duck dot com

@SethFalco
Copy link
Contributor Author

SethFalco commented Jan 14, 2025

@lekma I had actually emailed you via the email address attached to your git authorship already. Do you have access to that one, or shall I pester you via the email you sent above instead?

(i.e. I had done git log and grabbed your email out of your commit history before, but that's a different email.)

@lekma
Copy link
Owner

lekma commented Jan 14, 2025

I just saw that, responding right now

@czardien
Copy link

Hey @lekma, I know you folks are mailing with @SethFalco but I just mailed you with a public instance URL in case that's helpful (maybe check your junk folder)

@lekma
Copy link
Owner

lekma commented Jan 14, 2025

do you guys run inv_sig_helper?

@czardien
Copy link

czardien commented Jan 14, 2025 via email

@czardien
Copy link

try to start kodi with env var KODI_AE_SINK=ALSA

So I tried that without success I'm afraid. Kodi seems to be picking up Alsa correctly from the logs. I also tried changing audio outputs to the expected output instead of the default one but that didn't help.

Note that I'm using pipewire-alsa, which, according to the Archwiki page, will route all applications using the ALSA API through PipeWire.

Also, I got a warning that KODI_AE_SINK was deprecated, so as recommended I ran Kodi like so: kodi --audio-backend alsa; with the same results.

Attached some logs. Hope that helps 🙏

kodi.log

@czardien
Copy link

kodi --audio-backend alsa

Scratch that; even though that's the command I found in kodi --help I just noticed it was actually not picking up Alsa; when KODI_AE_SINK=ALSA kodi more clearly did.

@lekma
Copy link
Owner

lekma commented Jan 15, 2025

@czardien: i may have been unclear, the "large audio sync error" errors you're seeing after the http 403 errors are due to those.
I wouldn't waste too much time on the audio errors if I were you, not until the http errors can be fixed (sorry if i was confusing).

@czardien
Copy link

Hey @lekma, gotcha thank you! I haven't had time to dive deeper into this but I'll probably do some more digging in my Invidious setup next and see what knobs I can tweak.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants