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

Cannot play Netflix stream with IA binary addon on FireTV #1200

Closed
1 of 7 tasks
quietvoid opened this issue Mar 25, 2023 · 5 comments
Closed
1 of 7 tasks

Cannot play Netflix stream with IA binary addon on FireTV #1200

quietvoid opened this issue Mar 25, 2023 · 5 comments

Comments

@quietvoid
Copy link

quietvoid commented Mar 25, 2023

Bug report

Describe the bug

Here is a clear and concise description of what the problem is:

There seems to be a problem with IA not being able to find a decrypter when Kodi 21 is built with IA as a binary addon.
When I try playing a Netflix stream through the Netflix addon, I get an error that the video can't be played.

Expected Behavior

Here is a clear and concise description of what was expected to happen:

The video should play.

Actual Behavior

There's an error and playback fails.

The log contains these:

2023-03-24 20:15:57.996 T:2980 info : AddOnLog: inputstream.adaptive: [Repr. chooser] Resolution set: 1920x1080, max allowed: 3840x2160, Adjust refresh rate: 0
2023-03-24 20:15:57.996 T:2980 debug : AddOnLog: inputstream.adaptive: Searching for decrypters in: /data/user/0/org.xbmc.kodi/cache/apk/assets/addons/inputstream.adaptive/
2023-03-24 20:15:57.997 T:2980 debug : AddOnLog: inputstream.adaptive: Searching for decrypters in: /data/user/0/org.xbmc.kodi/cache/lib/inputstream.adaptive/
2023-03-24 20:15:57.997 T:2790 debug : void CXBMCApp::OnPlayBackStarted()
2023-03-24 20:15:57.997 T:2980 error : GetDirectory - Error getting /data/user/0/org.xbmc.kodi/cache/lib/inputstream.adaptive/
2023-03-24 20:15:57.997 T:2980 debug : AddOnLog: inputstream.adaptive: Searching for decrypters in: /data/user/0/org.xbmc.kodi/cache/apk/assets/addons/inputstream.adaptive/
...
2023-03-24 20:16:00.105 T:2980 debug : AddOnLog: inputstream.adaptive: Entering encryption section
2023-03-24 20:16:00.105 T:2980 error : AddOnLog: inputstream.adaptive: No decrypter found for encrypted stream
2023-03-24 20:16:00.105 T:2980 debug : AddOnLog: inputstream.adaptive: CSession::~CSession()

Possible Fix

Installing IA 20.3.5-Nexus through the Kodi repository works if Kodi wasn't built with the binary addon.
For some reason it only does not work with the binary addon built-in.

To Reproduce

Steps to reproduce the behavior:

  1. Follow Kodi build instructions for Android
  2. At the step to build binary addons (after depends), build the IA binary addon with:
    make -j$NUM_THREADS -C tools/depends/target/binary-addons ADDONS="inputstream.adaptive"
  3. Build the rest of Kodi
  4. Install the built APK on the device
  5. Install the Netflix addon through repository, do the setup
  6. Try playing a Netflix video through the addon

Debuglog

The debuglog can be found here: https://paste.kodi.tv/azavadonad.kodi

Additional context or screenshots (if appropriate)

Here is some additional context or explanation that might help:

I looked quickly and it seems that none of the searched directories are readable when I try accessing them through adb shell.

Some more context but it has no additional info over the debug log: https://forum.kodi.tv/showthread.php?tid=371557&pid=3146334#pid3146334

Your Environment

Used Operating system:

  • Android

  • iOS

  • tvOS

  • Linux

  • OSX

  • Windows

  • Windows UWP

  • Operating system version/name: FireOS 7, FireTV Stick 4K Max

  • Kodi version: 21 nightly, commit xbmc/xbmc@6a8b23c

  • inputstream.adaptive version: 21.0.3-Omega as a binary addon

note: Once the issue is made we require you to update it with new information should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.

@quietvoid
Copy link
Author

quietvoid commented Mar 29, 2023

I've seen some users suggest to install the addon from Jenkins' runs: https://jenkins.kodi.tv/blue/organizations/jenkins/xbmc%2Finputstream.adaptive/detail/Omega/21/artifacts
But I don't understand why that's necessary.

I haven't tried it either.

@glennguy
Copy link
Contributor

The built-in path was removed from being searched in 2021 when we stopped packaging inputstream.adaptive with Kodi. This was needed to allow proper updating of the add-on - code used to look like this:

std::vector<std::string> searchPaths(2);
#ifdef ANDROID
searchPaths[0] = getenv("KODI_ANDROID_LIBS")
? getenv("KODI_ANDROID_LIBS")
: kodi::vfs::TranslateSpecialProtocol("special://xbmcbinaddons/");
#else
searchPaths[0] =
kodi::vfs::TranslateSpecialProtocol("special://xbmcbinaddons/inputstream.adaptive/");
#endif
searchPaths[1] = kodi::GetAddonInfo("path");

and is now like this:

std::array<std::string, 3> searchPaths =
{
kodi::vfs::TranslateSpecialProtocol("special://xbmcbinaddons/inputstream.adaptive/"),
kodi::vfs::TranslateSpecialProtocol("special://xbmcaltbinaddons/inputstream.adaptive/"),
kodi::addon::GetAddonInfo("path"),
};

Installing from zip as has been suggested to you will place the decrypter library in one of the paths that are currently searched. In the future we plan to make the decrypter library part of the main library - no searching needed.

For now though it could be added back to allow for your case or alternatively you can build IA separately and install from zip.

@quietvoid
Copy link
Author

quietvoid commented Mar 29, 2023

Thanks. I tried installing the latest Omega release on a regular Kodi build and it works fine.

Unfortunately I couldn't figure out how to package the binary addon myself, so I have to rely on the CI.
There doesn't seem to be clear instructions on building for target platforms, and looking at the CI log didn't really help me.

It's mostly only an issue because the Kodi repository doesn't include nightly versions, and I wasn't aware the CI was packaging them.

@CastagnaIT
Copy link
Collaborator

CastagnaIT commented Mar 31, 2023

another alternative to build yourself ISA
is to add my github action CI builder, by forking Omega_CI branch from
https://github.com/CastagnaIT/inputstream.adaptive/tree/Omega_CI
to your github

after that in your github repo, go to Actions page,
and on CI manual artifacts buildings section, click to Run workflow button, you can select platform/architecture
write the branch to be builded and other options

immagine

ofc you need to keep in sync your repo branches to be builded
or you can hack my github action CI to point official repository

my action CI builder is not perfect but can save headaches to avoid setting up an ad hoc os to build ISA for each other system

(basically you keep Omega_CI as default branch and no need to update it, then select to build one of the other branches)

@quietvoid
Copy link
Author

Thank you, it is really useful.

Reading the workflow, it just seems I was doing some things wrong.
I couldn't get the package-* target to work but I'll try copying some parts and see if I can do it in my environment too.

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