InputStream Helper 使用教程
1、项目介绍
InputStream Helper 是一个简单的 Kodi 模块,旨在简化依赖于 InputStream 和 DRM 播放的插件开发。它能够检查并安装必要的 InputStream 组件,如 Widevine CDM,并确保其更新到最新版本。此外,它还能检查系统是否支持 HLS 等流媒体协议,并自动安装缺失的依赖库。
2、项目快速启动
安装
首先,确保你已经安装了 Kodi 和 Git。然后,通过以下命令克隆项目仓库:
git clone https://github.com/emilsvennesson/script.module.inputstreamhelper.git
进入项目目录并安装依赖:
cd script.module.inputstreamhelper
pip install -r requirements.txt
使用示例
以下是一个简单的使用示例,演示如何使用 InputStream Helper 播放视频:
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/k8s/features/stable/video/tears-of-steel/tears-of-steel-dash-widevine.ism/manifest.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):
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.license_type', 'com.widevine.alpha')
play_item.setProperty('inputstream.adaptive.license_key', LICENSE_URL)
xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, listitem=play_item)
if __name__ == '__main__':
run(sys.argv[0])
3、应用案例和最佳实践
应用案例
InputStream Helper 广泛应用于需要 DRM 保护的视频流播放,如 Netflix、Amazon Prime Video 等流媒体服务的 Kodi 插件开发。
最佳实践
- 定期更新:确保 InputStream Helper 和 Widevine CDM 保持最新版本,以获得最佳性能和兼容性。
- 错误处理:在代码中添加错误处理逻辑,以便在 InputStream 组件缺失或安装失败时提供用户友好的提示。
4、典型生态项目
- Kodi:InputStream Helper 主要用于 Kodi 平台,Kodi 是一个开源的媒体中心软件,支持多种流媒体协议和 DRM 播放。
- Widevine CDM:InputStream Helper 能够自动安装和更新 Widevine CDM,这是 Google 开发的 DRM 解决方案,广泛用于流媒体服务。
通过以上内容,您可以快速了解并开始使用 InputStream Helper 项目。希望这篇教程对您有所帮助!