Skip to content
New issue

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

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

Already on GitHub? # to your account

[script.module.inputstreamhelper] 0.1.0 #598

Closed
wants to merge 1 commit into from
Closed

[script.module.inputstreamhelper] 0.1.0 #598

wants to merge 1 commit into from

Conversation

emilsvennesson
Copy link

Description

A simple Kodi module that makes life easier for add-on developers relying on InputStream based add-ons and DRM playback. This idea spawned from the discussion in https://forum.kodi.tv/showthread.php?tid=321165.

Checklist:

  • My code follows the add-on rules and piracy stance of this project.
  • I have read the CONTRIBUTING document
  • Each add-on submission should be a single commit with using the following style: [script.foo.bar] v1.0.0

Additional information :

  • Submitting your add-on to this specific branch makes it available to any Kodi version equal or higher than the branch name with the applicable Kodi dependencies limits.
  • add-on development wiki page.
  • Kodi pydocs provide information about the Python API
  • PEP8 codingstyle which is considered best practise but not mandatory.
  • This add-on repository has automated code guideline check which could help you improve your coding. You can find the results of these check at Codacy. You can create your own account as well to continuously monitor your python coding before submitting to repo.
  • Development questions can be asked in the add-on development section on the Kodi forum.

@matthuisman
Copy link

matthuisman commented Sep 13, 2017

I see no reason why you can't use:
http://odroidxu.leeharris.me.uk/xu3/chromium-widevine-1.4.8.823-2-armv7h.pkg.tar.xz
as a widevine source for arm?

Raspberry Pi is a huge device for KODI and needs to work.
Also, need to test every platform with confirmation it works.

And, add some credit to @glennguy.
He has done all the heavy lifting.

Writing code is the easy part of programming

@emilsvennesson
Copy link
Author

@matthuisman Because, and I have told you this multiple times now, we cannot rely on third party hosts who are violating the Widevine license by hosting the binary like that. I understand that ARM-based devices are popular, but violating the license in order to support it is not how things should be done. I'm pretty sure Team Kodi agrees with me on that. The seemingly only legitimate way to obtain the binary is by extracting it from a Chrome OS image and I am looking at whether this would be possible to do in a
sane way in Python (without relying on external programs/libs)

I didn't look at @glennguy's code until now. There are definitely some similarities, but that's kind of inevitable when writing Kodi Python code. There are only so many ways you can do things. :-) I'll happily add him as an author if that's what he wants. My hope is for this module to be a collaborate effort seeing as there is a lot of developers who can benefit from it.

One last thing: it would have been nice if you had left your original post before editing it. I originally started responding to that one before realizing that you had done a 180 and completely changed it.

@matthuisman
Copy link

You had commented about his code in the forum - so obviously you had looked at it.

Has a team member explicitly advised you that you can't use that third-party download?
You do know that your a third-party right?

Have you even googled that url?
It is WIDELY used for a multitude of different things.
Even the getwidevine.sh script uses it.

Oh, and how is 'https://hg.mozilla.org' not third-party?
Last time I checked - Mozilla isn't Google.

In the forum, they said - they can allow this add-on as long as it's made by a third-party (non team member) and no closed source binary is in the code. (but OK to download it).

If this doesn't work for most devices - then it's going to cause more issues than it solves.

GlennGuy and I have many users who use our existing widevine add-ons and that is how we have found all the edge cases - that you some how found in 24 hours yourself by testing every device I assume?

@matthuisman
Copy link

" This idea spawned from the discussion"
"My hope is for this module to be a collaborate effort seeing as there is a lot of developers who can benefit from it."

No sh*t. That's why it already exists!

You haven't had an idea!
You've read a forum post explaining exactly what it is and how it is done.
Copied some existing code into a class.
Made it work on 30% less devices.
Pretended you've came up with it yourself.

@emilsvennesson
Copy link
Author

@matthuisman I can see that you're having an extremely hard time differentiating between 'third party hosts who are violating the Widevine license' and licensed third party hosts (Mozilla). It doesn't make it any more legitimate just because it's 'widely' used.

Never did I claim that I came up with the idea myself -- that's why I linked to the forum thread in the initial pull request. I liked your idea so I implemented it. I am not going to bother answering to the 'copied some existing code into a class' because that's quite clearly not the case.

Could we let this be reviewed now without polluting this pull request with more nonsense that doesn't belong here? I'd be interested in what Team Kodi has to say about the ARM binary situation. I'll happily continue our discussion in the forum thread you created.

@matthuisman
Copy link

Have you seen Mozilla's license?
Or just assume they have one?
If your assuming, why not assume leeharris has one?

Have you attempted to look for another source that you are happy with?

But if your happy providing all the support for users with ARM devices on the forum - then go for it.
It should keep you nice and busy.

@matthuisman
Copy link

Did you try using the module in an addon with an existing config.py file in it's lib directory (pretty common).

@asciidisco
Copy link

@matthuisman @emilsvennesson That discussion seems a bit heated up & I guess we´re all interested in getting this plugin in the main repo.

But I´d actually chimed in to provide some more detailed information about the license stuff & answer some questions.

1.) Mozilla is a licensed partner, that was announced by the Widevine License Team itself.
You can get a list of all official Integrators here.
Note that Mozilla is not on the list because they have some kind of special deal, but afaik they are the only ones missing from the list.

2.) You get a license file from every official widevine download (actually, there´s only one official way to download it, which is from Google directly, even the Mozilla URLs just redirect to)

"Google Inc. and its affiliates ("Google") own all legal right, title and
interest in and to the content decryption module software ("Software") and
related documentation, including any intellectual property rights in the
Software. You may not use, modify, sell, or otherwise distribute the Software
without a separate license agreement with Google.  The Software is not open
source software.

Interesting part for the Addon developer(s) here: ...otherwise distribute the Software without a separate license agreement...

Interesting part for the users: ...You may not use ... the Software without a separate license agreement..
This is why I think that the License needs to be displayed to the user, so that the user has a chance to opt out of this & not to violate the license.

3.) There are no ARM builds for Widevine provided by Google as a standalone download. The only way to get ARM builds (also 32-bit only, a 64-bit version for ARM is yet to be seen) is as part of an ChromeOS Recovery build. It must be ChromeOS (not Chromium) as ChromiumOS doesn't provide Widevine for ARM.

TL:DR; In order to to comply with the license, there are only 2 valid sources to obtain the Widevine lib, for non ARM systems, it´s the Google CDN (which the URLs included in the Mozilla source file link to) and ChromeOS builds for ARM systems.

@emilsvennesson
Copy link
Author

@asciidisco Thanks a lot for this information. I have started working on implementing the extraction from the Chrome OS image file after our discussion in emilsvennesson/script.module.inputstreamhelper#1.

I will close this PR until a solution for the ARM situation that me and @asciidisco are comfortable with is implemented.

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

Successfully merging this pull request may close these issues.

3 participants