add-ons / plugin.video.vtm.go

Kodi add-on to watch video-on-demand content and live streams from VTM GO.
https://github.com/add-ons/plugin.video.vtm.go/wiki
GNU General Public License v3.0
75 stars 26 forks source link

Playback of video on demand streams isn't working #241

Closed michaelarnauts closed 3 years ago

michaelarnauts commented 3 years ago

Issue description

Describe the bug The playback of video on demand streams isn't working anymore due to a change at VTM that Inputstream Adaptive isn't handling correctly. You can see in the log that it is trying to download a segment at https://dcs-vod.apis.anvato.net/vod/p/session/https://dcs-jite.cdn.anvato.net/prod/v97/media/4D7ACFAA6F654F40999164950F4ABE37/4200000/fmp4-init-video.mp4.

There is an open PR at Inputstream Adaptive to fix this at https://github.com/peak3d/inputstream.adaptive/pull/566 (Leia) and https://github.com/peak3d/inputstream.adaptive/pull/565 (Matrix).

Workaround

There is a workaround for this issue by installing this zip that uses an embedded proxy to modify the MPEG DASH Manifest so Inputstream Adaptive works.

Builds with workaround:

Platform Kodi 18 Kodi 19
Windows x64 Tested
Linux x64 Tested
Android Tested

Compiled Inputstream Adaptive with correct Fix

You can also try installing a compiled version of Inputstream Adaptive with this fix:

Platform Kodi 18 (Leia) Kodi 19 (Matrix)
Windows x64 Download Download
Linux x64 Download Download
Raspberry Pi 3+4 Download Download
Android arm7 Download Download
Android arm8 Download Download
OSMC (Vero4K+) Download .deb
OSMC (RPI 3+4) Download .deb

Note: For OSMC, you'll need to install the debian package with sudo dpkg -i vero3-mediacenter-osmc.deb.

Note: For Matrix, you need a build later then 23th November.

Thanks to @mediaminister and @peno64 for the builds!

michaelarnauts commented 3 years ago

I've opened an upstream PR at https://github.com/peak3d/inputstream.adaptive/pull/565

dagwieers commented 3 years ago

Once this gets approved we will have to assemble all stakeholders to get a new release tested and released. This may take some time to get fixed, temporary builds could be made available for various platforms. But an official release of inputstream.adaptive for Leia may take days, if not weeks :-/

michaelarnauts commented 3 years ago

One possible workaround (I think the Netflix addon is doing this), is to proxy the manifest, and modify it so it works with what inputstream adaptive understands. I would rather not do this, but if a new release of inputstream adaptive is not possible in Leia, this might be our only solution to fix this in Leia.

michaelarnauts commented 3 years ago

I've added compiled versions for linux and windows of the updated inputstream to the issue above. Thanks to @mediaminister for the compile.

peterdekker commented 3 years ago

Thanks! Can I just install the updated Inputstream Adaptive package zip via the normal visual package installation in Kodi? Or do I have to follow extra steps, like removing an old version?

abanink commented 3 years ago

installed inputstream.adaptive_baseurl_kodi18_leia_linux_x64.zip from zip file (have to allow it in kodi) I had to restart kodi before it worked again.

Thanks a bunch Michael

davidbe commented 3 years ago

Can a arm-version be compiled (for Raspberry Pi 3 :-) )? Or is it easy enough to do it by myself?

timtilburgs commented 3 years ago

Is there a version for raspberry pi available?

mediaminister commented 3 years ago

You can build InputStream Adaptive for your Raspberry Pi with Raspbian OS on RPi hardware. (based on @peno64's instructions from https://github.com/add-ons/plugin.video.vtm.go/issues/101#issuecomment-541317533)

Installing the dependencies:

sudo apt install autoconf bison build-essential curl default-jdk gawk git gperf libcurl4-openssl-dev zlib1g-dev cmake zip

cd folder # folder where you want to build everything

git clone https://github.com/raspberrypi/tools --depth=1
git clone https://github.com/raspberrypi/firmware --depth=1

Getting Kodi and InputStream Adaptive sources:

For Kodi 18 Leia:

git clone -b Leia https://github.com/xbmc/xbmc.git
git clone -b leia-base-url-in-adaptionset https://github.com/michaelarnauts/inputstream.adaptive.git

For Kodi 19 Matrix:

git clone -b master https://github.com/xbmc/xbmc.git
git clone -b matrix-base-url-in-adaptionset https://github.com/michaelarnauts/inputstream.adaptive.git

Building InputStream Adaptive

cd inputstream.adaptive && mkdir build && cd build
cmake -DADDONS_TO_BUILD=inputstream.adaptive -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/cmake/addons
make
cd ../../xbmc/addons/
zip -r /tmp/inputstream.adaptive.zip inputstream.adaptive

This will create inputstream.adaptive.zip in the /tmp folder Just install the zip package in Kodi. In Kodi 18 you need to restart Kodi to load the freshly installed InputStream Adaptive library.

peno64 commented 3 years ago

I am compiling this now. Can take some time however...

peno64 commented 3 years ago

For Leia (don't use it for Matrix!), the version is now available at following location: http://users.telenet.be/peno/kodi/addons/inputstream.adaptive

Install this zip via the kodi addon installer from zip and restart the pi I tested VTM go and it works fine with it.

For Matrix it doesn't work at this moment. kodi just crashes... I am recompiling everything again from scratch to see if it then works...

michaelarnauts commented 3 years ago

@peno64 thanks! I'll add your zip it to the issue post later. I think you need a pretty recent Kodi Matrix for things to work. After 23 November according to mediaminister.

peno64 commented 3 years ago

@michaelarnauts Unfortunately it doesn't work for Matrix. When I install this compiled version (your version does compile succesfully against matrix) and play something that uses inputstream.adaptive (not only vtm go), kodi just crashes and restarts. I am a bit afraid that the matrix code is still evolving too much and that your branch of inputstream.adaptipe for matrix is already too old...

I am trying now to compile the standard inputstream.adaptive if that works.

And I am using the latest Matrix build from today...

peno64 commented 3 years ago

hm, also the standard recompiled inputstream.adaptive (master) crashes on matrix...

mediaminister commented 3 years ago

You need a Kodi Matrix nightly build from 23 November or later for this to work! https://github.com/xbmc/xbmc/pull/18809#issuecomment-731713820

peno64 commented 3 years ago

I am using the latest from https://test.libreelec.tv/ (LibreELEC-RPi4.arm-9.80-nightly-20201204-387f119.tar) This is the crash log: https://paste.kodi.tv/zufawodado.kodi

mediaminister commented 3 years ago

Okay, the crash happens because LibreELEC uses the Kodi 19.0b1-Matrix package in their nightly builds and this beta package was released before this issue was fixed on 23 November.

To fix the crash on LibreELEC, you need a build that uses a newer Kodi package.

You need at least https://github.com/xbmc/xbmc/archive/34fe42353f0b1f6c638954dae66e9af3ba73d332.tar.gz

I guess this can be fixed by updating PKG_VERSION and PKG_SHA256 in https://github.com/LibreELEC/LibreELEC.tv/blob/master/packages/mediacenter/kodi/package.mk and compiling LibreELEC yourself.

peno64 commented 3 years ago

Well... I think we will gonna wait until libreelec updates its package... At least we know the reason now.

peterdekker commented 3 years ago

For Leia (don't use it for Matrix!), the version is now available at following location: http://users.telenet.be/peno/kodi/addons/inputstream.adaptive

Install this zip via the kodi addon installer from zip and restart the pi I tested VTM go and it works fine with it.

For Matrix it doesn't work at this moment. kodi just crashes... I am recompiling everything again from scratch to see if it then works...

I can confirm that this fix works for Kodi Leia on Raspbery Pi 3 (LibreElec). Thanks!

pl0ng commented 3 years ago

Tried the Leia Linux x64 build on OSMC Vero4K. Installs fine, but streams don't play and throw errors.

michaelarnauts commented 3 years ago

Tried the Leia Linux x64 build on OSMC Vero4K. Installs fine, but streams don't play and throw errors.

OSMC uses a different build-process. I'll try building a package later today.

timtilburgs commented 3 years ago

For Leia (don't use it for Matrix!), the version is now available at following location: http://users.telenet.be/peno/kodi/addons/inputstream.adaptive Install this zip via the kodi addon installer from zip and restart the pi I tested VTM go and it works fine with it. For Matrix it doesn't work at this moment. kodi just crashes... I am recompiling everything again from scratch to see if it then works...

I can confirm that this fix works for Kodi Leia on Raspbery Pi 3 (LibreElec). Thanks!

It 's also working fine on rpi4

frankdpGH commented 3 years ago

Hi, What about Android? Have actually Leia and Inputstream Adaptive 2.4.6 on Android TV (ARM7) and TV Box 5ARM8). VOD stopped working.

pl0ng commented 3 years ago

Tried the Leia Linux x64 build on OSMC Vero4K. Installs fine, but streams don't play and throw errors.

OSMC uses a different build-process. I'll try building a package later today.

Thanks in advance

peno64 commented 3 years ago

Under http://users.telenet.be/peno/kodi/addons/inputstream.adaptive there is now also an android version of the new inputstream.adaptive which fixes the vtm go problem

pl0ng commented 3 years ago

@michaelarnauts , please don't take this in a negative/pushy way, but if you could build the osmc package, I'd really appreciate it. Also, keeps the gf from nagging. Thanks :-)

frankdpGH commented 3 years ago

Under http://users.telenet.be/peno/kodi/addons/inputstream.adaptive there is now also an android version of the new inputstream.adaptive which fixes the vtm go problem

Under http://users.telenet.be/peno/kodi/addons/inputstream.adaptive there is now also an android version of the new inputstream.adaptive which fixes the vtm go problem

Thanks ! Working perfect on android ARM8. On ARM7 : "Invalid structure".

peno64 commented 3 years ago

@frankdpGH arm7 is 32 bit, arm8 is 64 bit. So it doesn't surprise me at all that you get this kind of error.

peno64 commented 3 years ago

@frankdpGH Under http://users.telenet.be/peno/kodi/addons/inputstream.adaptive/tobetested there is an armv7 android version but since I do not have such a system, it is untested and to be used at your own risk if it work. The worst that can happen is that it does not work and that you have to revert to the standard inputstream.adaptive version again I guess but no guarantees.

peno64 commented 3 years ago

@frankdpGH Now since you already tried the armv8 version on your armv7 system, it can get only better with this version I guess. It wasn't working anyway anymore because of that...

frankdpGH commented 3 years ago

@frankdpGH Now since you already tried the armv8 version on your armv7 system, it can get only better with this version I guess. It wasn't working anyway anymore because of that... @peno64 Thanks a lot! Just tested the v7 and it's working. Just had once a missed sound sync when jumping forward but this is not abnormal. Thank you all for providing this!!

michaelarnauts commented 3 years ago

Okay. That leaves just osmc, but I tried compiling yesterday (and you have to build a full osmc-mediacenter package, including Kodi and all binary add-ons), that takes a while in my laptop) but I got some compilation errors. This will take some time...

ghluhi commented 3 years ago

@frankdpGH arm7 is 32 bit, arm8 is 64 bit. So it doesn't surprise me at all that you get this kind of error.

I have tried installing the arm7 32bit version on a Sony KD43XE8099 and get the same "Invalid structure" error. However, when checking the contents of the .zip file, it seems the zip file structure is corrupt. Something wrong seems to have happened while packing the data. BTW, thanks to all people working hard to fix this!

peno64 commented 3 years ago

@ghluhi , @frankdpGH , @michaelarnauts

You are right, the uploaded file inputstream.adaptive-android-armv7-Leia-2.4.6 was truncated... I uploaded and downloaded it again and now it is ok.

peno64 commented 3 years ago

inputstream.adaptive-android-armv7-Leia-2.4.6.zip

This is the correct file for armv7

ghluhi commented 3 years ago

inputstream.adaptive-android-armv7-Leia-2.4.6.zip

This is the correct file for armv7

This version installs correctly. I tested it briefly using VTM.GO. Playing works but still has some issues:

However this is a big step forward from not being able to see anything. Thank you for that!

These issues have been a regular problem for me, although previously I did not lose sound, but I had issues with positioning and subtitles beyond commercial breaks. Following the discussons online, I understand these can only be solved completely in the Kodi Matrix versions. Did I understand this correctly?

FredericMa commented 3 years ago
  • playing works untils it hits a commercial break; then it just jumps back to the start of the VOD but plays again with no more sound

I experienced the same problem. Although I didn't had any sound issues after FFing.

lovecrafthowardphillips commented 3 years ago

inputstream.adaptive-android-armv7-Leia-2.4.6.zip This is the correct file for armv7

This version installs correctly. I tested it briefly using VTM.GO. Playing works but still has some issues:

  • playing works untils it hits a commercial break; then it just jumps back to the start of the VOD but plays again with no more sound
  • FFing beyond the commerical break also loses sound
  • when playing (normal speed) beyond a commercial break (after first FFing into the commercial break), stopping and then restarting the VOD from that point in time, again no more sound

However this is a big step forward from not being able to see anything. Thank you for that!

These issues have been a regular problem for me, although previously I did not lose sound, but I had issues with positioning and subtitles beyond commercial breaks. Following the discussons online, I understand these can only be solved completely in the Kodi Matrix versions. Did I understand this correctly?

Experiencing the same issues using Kodi 18.9 on Android 9.

keiem commented 3 years ago

We have the problem after this fix that the speed of the stream is not constant, it speeds up and slows down the whole time.

I installed the rpi version on my khadas Vim. i assume the rpi version is linux-arm and the linux-x64 package is for 64 bit amd en intel processors?

EDIT: Seems it's a problem with some episodes on VTM. The kids just watched another episode and it's OK in this one.

peno64 commented 3 years ago

I played all episodes from Ninjago for my kid and I have no problem at all.

lovecrafthowardphillips commented 3 years ago

I played all episodes from Ninjago for my kid and I have no problem at all.

I would assume there are no commercial breaks in those Ninjago episodes? If so that would explain why you didn't experience any problems.

peno64 commented 3 years ago

@lovecrafthowardphillips

Yes there are. Which is strange because I thought that this is not allowed in childerens programs, but in every episode of 11 minutes there is a commercial break.

keiem commented 3 years ago

If I remeber correctly it was Sara, episode 126. When I played it on my PC with chrome, it had the same behaviour.

michaelarnauts commented 3 years ago

Update: Added link to IA for Matrix on RPI 3/4.

michaelarnauts commented 3 years ago

Also, the Matrix-patch has been merged in IA, the Leia-patch is still open. You can follow the progress here: https://github.com/peak3d/inputstream.adaptive/pull/566

pl0ng commented 3 years ago

@michaelarnauts , do you possibly have a planning/eta on the osmc fix? Thanks

michaelarnauts commented 3 years ago

I'm sorry, I can't give an ETA since I don't have a solution yet to be able to build.

You could try the following, it might work...

Also, backup the original file in case it doesn't work so you can rollback.

No guarantees, I actually think it won't work, but since the architecture matches, it might just work.

michaelarnauts commented 3 years ago

@pl0ng I think I've managed to make a build for OSMC for the Vero4K+. Can you test if it works?

You can download the .deb file at https://github.com/michaelarnauts/inputstream.adaptive/raw/20201218-vero4k-osmc/vero3-mediacenter-osmc.deb

Copy it to your device, and install with with sudo dpkg -i vero3-mediacenter-osmc.deb, and restart your device.

pl0ng commented 3 years ago

@michaelarnauts , appreciate your work! However, my system throws the same inputstream adaptive error as before (Leia, Vero4K)

michaelarnauts commented 3 years ago

@michaelarnauts , appreciate your work! However, my system throws the same inputstream adaptive error as before (Leia, Vero4K)

Hmm, you are sure the Debian package was installed correctly? Can you verify the date of the installed files? Did you also make sure you have rebooted before trying?