InputStream Helper 项目教程
1. 项目的目录结构及介绍
InputStream Helper 是一个用于 Kodi 的模块,旨在简化依赖 InputStream 和 DRM 播放的插件开发。以下是项目的目录结构及其介绍:
script.module.inputstreamhelper/
├── github/workflows/
├── lib/
│ └── resources/
│ └── tests/
├── .gitattributes
├── .gitignore
├── .pylintrc
├── LICENSE.txt
├── Makefile
├── README.md
├── addon.xml
├── codecov.yml
├── default.py
├── requirements.txt
├── setup.py
└── tox.ini
- github/workflows/: 包含 GitHub Actions 的工作流配置文件。
- lib/resources/tests/: 包含项目的测试文件。
- .gitattributes: 用于设置 Git 属性。
- .gitignore: 用于指定 Git 忽略的文件和目录。
- .pylintrc: Pylint 的配置文件。
- LICENSE.txt: 项目的许可证文件。
- Makefile: 用于构建和管理的 Makefile。
- README.md: 项目的说明文档。
- addon.xml: Kodi 插件的配置文件。
- codecov.yml: Codecov 的配置文件。
- default.py: 项目的启动文件。
- requirements.txt: 项目的依赖文件。
- setup.py: 用于安装项目的脚本。
- tox.ini: Tox 的配置文件。
2. 项目的启动文件介绍
项目的启动文件是 default.py
。这个文件负责初始化和运行 InputStream Helper 模块。以下是 default.py
的部分代码示例:
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):
"""Run InputStream Helper Demo"""
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)
3. 项目的配置文件介绍
项目的配置文件主要包括 addon.xml
和 default.py
。
addon.xml
addon.xml
是 Kodi 插件的配置文件,定义了插件的元数据和依赖项。以下是 addon.xml
的部分内容示例:
<addon id="script.module.inputstreamhelper"
name="InputStream Helper"
version="0.6.1"
provider-name="emilsvennesson">
<requires>
<import addon="xbmc.python" version="2.25.0"/>
</requires>
<extension point="xbmc.python.module" library="lib/"/>
<extension point="xbmc.addon.metadata">
<platform>all</