All Projects → emilsvennesson → Script.module.inputstreamhelper

emilsvennesson / Script.module.inputstreamhelper

Licence: mit
A simple Kodi module that makes life easier for add-on developers relying on InputStream based add-ons and DRM playback.

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Script.module.inputstreamhelper

Kanzi
Alexa skill for controlling Kodi
Stars: ✭ 412 (+384.71%)
Mutual labels:  kodi
Kodi Rc6 Mce Nolirc
Files required to use most RC6 MCE remotes with Kodi and Ubuntu 17, without LIRC
Stars: ✭ 26 (-69.41%)
Mutual labels:  kodi
Skin.refocus
reFocus, a skin for Kodi
Stars: ✭ 72 (-15.29%)
Mutual labels:  kodi
Maraschino
A front-end for HTPCs
Stars: ✭ 433 (+409.41%)
Mutual labels:  kodi
Gentoo On Rpi 64bit
Bootable 64-bit Gentoo image for the Raspberry Pi4B, 3B & 3B+, with Linux 5.4, OpenRC, Xfce4, VC4/V3D, camera and h/w codec support, weekly-autobuild binhost
Stars: ✭ 831 (+877.65%)
Mutual labels:  kodi
Repository.kodibae
Kodi Bae Repository - Kodi is a registered trademark of the XBMC Foundation. We are not connected to or in any other way affiliated with Kodi - DMCA: [email protected]
Stars: ✭ 45 (-47.06%)
Mutual labels:  kodi
Javgo
JavGo是一个集合影片管理,影片刮削,视频处理,资源搜索等综合一体的全功能影音软件,支持爬取javbus,jav321,javdb,javlibrary进行刮削,支持db,bus的磁力搜索,支持获取library的影片评论。
Stars: ✭ 338 (+297.65%)
Mutual labels:  kodi
Plugin.video.netflix
Inputstream based Netflix plugin for Kodi
Stars: ✭ 1,225 (+1341.18%)
Mutual labels:  kodi
Nakamori
Nakamori is Kodi addon that use Shoko (known as Japanese Media Manager (JMM)) Server as back-end for metadata information.
Stars: ✭ 24 (-71.76%)
Mutual labels:  kodi
Freeiptv
FreeIPTV • Watch Free IPTV World Wide
Stars: ✭ 68 (-20%)
Mutual labels:  kodi
Sickgear
SickGear has proven the most reliable stable TV fork of the great Sick-Beard to fully automate TV enjoyment with innovation.
Stars: ✭ 452 (+431.76%)
Mutual labels:  kodi
Kodirpc
Kodi JSON-RPC API/v6 Wrapper in C#
Stars: ✭ 5 (-94.12%)
Mutual labels:  kodi
Playlisteditortv
IPTV m3u list Editor/Player for Windows with Kodi support
Stars: ✭ 65 (-23.53%)
Mutual labels:  kodi
Kore
Kore is a simple and easy-to-use Kodi remote.
Stars: ✭ 423 (+397.65%)
Mutual labels:  kodi
Xbmcbackup
Backup Addon for Kodi
Stars: ✭ 73 (-14.12%)
Mutual labels:  kodi
Tvlist Awesome M3u M3u8
直播源相关资源汇总 📺 💯 IPTV、M3U —— 勤洗手、戴口罩,祝愿所有人百毒不侵
Stars: ✭ 5,304 (+6140%)
Mutual labels:  kodi
Itunes smartplaylist
iTunes Smart playlist parser with Python. Convert to Kodi xsp smart playlists.
Stars: ✭ 10 (-88.24%)
Mutual labels:  kodi
Kodi Standalone Service
A systemd service to allow for standalone operation of kodi.
Stars: ✭ 83 (-2.35%)
Mutual labels:  kodi
Steamlink Launcher
Steamlink launcher for OSMC
Stars: ✭ 78 (-8.24%)
Mutual labels:  kodi
Plugin.video.netflix
InputStream based Netflix plugin for Kodi
Stars: ✭ 1,148 (+1250.59%)
Mutual labels:  kodi

GitHub release CI Codecov status License: MIT Contributors

InputStream Helper

script.module.inputstreamhelper is a simple Kodi module that makes life easier for add-on developers relying on InputStream based add-ons and DRM playback.

Features

  • Displays informative dialogs if required InputStream components are unavailable
  • Checks if HLS is supported in inputstream.adaptive
  • Automatically installs Widevine CDM on supported platforms (optional)
    • Keeps Widevine CDM up-to-date with the latest version available (Kodi 18 and higher)
    • Checks for missing depending libraries by parsing the output from ldd (Linux)

Example

# -*- coding: utf-8 -*-
"""InputStream Helper Demo"""
from __future__ import absolute_import, division, unicode_literals
import sys
import inputstreamhelper
import xbmc
import xbmcgui
import xbmcplugin


PROTOCOL = 'mpd'
DRM = 'com.widevine.alpha'
STREAM_URL = 'https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-dash-widevine.ism/.mpd'
MIME_TYPE = 'application/dash+xml'
LICENSE_URL = 'https://widevine-proxy.appspot.com/proxy'
KODI_VERSION_MAJOR = int(xbmc.getInfoLabel('System.BuildVersion').split('.')[0])


def run(addon_url):
    """Run InputStream Helper Demo"""

    # Play video
    if addon_url.endswith('/play'):
        is_helper = inputstreamhelper.Helper(PROTOCOL, drm=DRM)
        if is_helper.check_inputstream():
            play_item = xbmcgui.ListItem(path=STREAM_URL)
            play_item.setContentLookup(False)
            play_item.setMimeType(MIME_TYPE)

            if KODI_VERSION_MAJOR >= 19:
                play_item.setProperty('inputstream', is_helper.inputstream_addon)
            else:
                play_item.setProperty('inputstreamaddon', is_helper.inputstream_addon)

            play_item.setProperty('inputstream.adaptive.manifest_type', PROTOCOL)
            play_item.setProperty('inputstream.adaptive.license_type', DRM)
            play_item.setProperty('inputstream.adaptive.license_key', LICENSE_URL + '||R{SSM}|')
            xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, play_item)

    # Setup menu item
    else:
        xbmcplugin.setContent(int(sys.argv[1]), 'videos')
        list_item = xbmcgui.ListItem(label='InputStream Helper Demo')
        list_item.setInfo('video', {})
        list_item.setProperty('IsPlayable', 'true')
        url = addon_url + '/play'
        xbmcplugin.addDirectoryItem(int(sys.argv[1]), url, list_item)
        xbmcplugin.endOfDirectory(int(sys.argv[1]))

if __name__ == '__main__':
    run(sys.argv[0])

The Helper class takes two arguments: protocol (the media streaming protocol) and the optional argument 'drm'.

It is recommended to not add your InputStream add-on as a dependency in addon.xml. It can cause confusion with users not being able to install your add-on because the InputStream add-on is disabled. InputStream Helper addresses issues such as these and helps the user to install/enable required InputStream components.

Accepted protocol arguments:

  • mpd -- MPEG-DASH
  • ism -- Microsoft Smooth Streaming
  • hls -- HTTP Live Streaming from Apple
  • rtmp -- Real-Time Messaging Protocol

Accepted drm arguments:

  • widevine
  • com.widevine.alpha

Support

Please report any issues or bug reports on the GitHub Issues page.

License

This module is licensed under the The MIT License. Please see the LICENSE.txt file for details.

Releases

v0.5.2 (2020-12-13)

v0.5.1 (2020-10-02)

  • Fix incorrect ARM HWIDs: PHASER and PHASER360 (@dagwieers)
  • Added Hebrew translations (@haggaie)
  • Updated Dutch, Japanese and Korean translations (@michaelarnauts, @Thunderbird2086)

v0.5.0 (2020-06-25)

v0.4.7 (2020-05-03)

  • Fix hardlink on Windows (@BarmonHammer)
  • Fix support for unicode chars in paths (@mediaminister)
  • Show remaining time during Widevine installation on ARM devices (@horstle)

v0.4.6 (2020-04-29)

v0.4.5 (2020-04-07)

  • Added Spanish and Romanian translations (@roliverosc, @tmihai20)
  • Added support for Kodi 19 Matrix "pre-release" builds (@mediaminister)
  • Fix Widevine backups when using an external drive (@horstle)
  • Various fixes for Widevine installation on ARM devices (@horstle)

v0.4.4 (2020-03-01)

v0.4.3 (2019-09-25)

v0.4.2 (2019-09-03)

v0.4.1 (2019-09-01)

v0.4.0 (2019-09-01)

v0.3.5 (2019-08-15)

v0.3.4 (2019-03-23)

  • python2_3 compability (@mediaminister, @Rechi)
  • Option to disable inputstreamhelper in settings.xml
  • calculate disk space on the tmp folder (@dawez)
  • Support for Unicode paths in Windows (@WallyCZ)
  • Italian translation (@pinoelefante)
  • Dutch translation (@dnicolaas)
  • Greek translation (@Twilight0)
  • Russian translation (@vlmaksime)

v0.3.3 (2018-02-21)

  • Load loop if it's a kernel module (@mkreisl)
  • Fix legacy Widevine CDM update detection
  • inputstream_addon is now a public variable
  • Notify user that ARM64 needs 32-bit userspace
  • Improve logging
  • Cosmetics

v0.3.2 (2018-01-30)

  • Fix OSMC arm architecture detection
  • Fix ldd permissions error

v0.3.1 (2018-01-29)

  • check_inputstream() return fix

v0.3.0 (2018-01-29)

  • Bug fix: module left xbmcaddon class in memory
  • Keep Widevine CDM up-to-date with the latest version available (Kodi 18 and higher)
  • Check for missing depending libraries by parsing the output from ldd
  • Use older Widevine binaries on Kodi Krypton (fixes nss/nspr dependency issues)

v0.2.4 (2018.01.01)

  • Fix ARM download on systems with sudo (OSMC etc)
  • Actually bump version in addon.xml, unlike v0.2.3...

v0.2.3 (2017-12-30)

  • Make sure Kodi and Widevine CDM binary architecture matches
  • Minor wording changes/fixes

v0.2.2 (2017-12-05)

v0.2.1 (2017-10-15)

  • Update German translation (@asciidisco)
  • Improve root permissions acquisition

v0.2.0 (2017-09-29)

  • Automatic Widevine CDM download on ARM devices
  • Display Widevine EULA during installation procedure
  • German translation (thanks to asciidisco)
  • New, smaller and less ugly generic icon
  • Better exception handling
  • Code cleanup

v0.1.0 (2017-09-13)

  • Initial release
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].