Before you continue
- This is a bug
- Improvement / Suggestion
- This is an issue with documentation
- if YES: delete rest of template
- share a link and
- describe your issue
Before submitting a bug report, please review our troubleshooting documentation at https://developer.amazon.com/docs/kepler-tv/kepler_overview.html
Helpful commands to retrieve information
- System Information
31682400477074:~ tehiroki$ kepler platform doctor
Checking installation status at /Users/tehiroki/.kepler/kntools/sdk/0.17.4
A different location can be specified via environment variable KEPLER_SDK_PATH.
:heavy_check_mark: System: macOS 15.3.2
Architecture: aarch64
:heavy_check_mark: Rosetta not enabled
:heavy_check_mark: username and token found in knrc file
:heavy_check_mark: git found in the path
:heavy_check_mark: curl found in the path
:heavy_check_mark: Node.js binary compiled for aarch64
:heavy_check_mark: VSCode found in the path
:heavy_check_mark: XCode Command Line Tools is up to date
:heavy_check_mark: /Users/tehiroki/.kepler/kntools/sdk/0.17.4 exists; /Users/tehiroki/.kepler/kntools exists
:heavy_check_mark: licenses and legal notices found in /Users/tehiroki/.kepler/kntools/sdk/0.17.4
:heavy_check_mark: Installed system packages:
autossh 1.4g
coreutils 9.6
glib 2.82.4
gnutls 3.8.4
grep 3.11
jpeg 9f
libepoxy 1.5.10
libpng 1.6.45
libslirp 4.8.0
libssh 0.11.1
libusb 1.0.27
lzo 2.10
nettle 3.10.1
openssh 9.9p1
pixman 0.44.2
sdl2 2.30.11
snappy 1.2.1
tmux 3.5a
unzip 6.0_8
vde 2.3.3
xz 5.6.3
gnu-sed 4.9
watchman 2024.12.02.00_2
zstd 1.5.6
:heavy_check_mark: pyenv version 2.5.3 installed
:heavy_check_mark: python version 3.12.6 installed
:heavy_check_mark: pip version 24.2 installed
:heavy_check_mark: pyenv virtualenv version 1.2.4 installed
:heavy_check_mark: virtualenv 'kepler-0.17.4' created
:heavy_check_mark: Installed Python packages:
conan 2.0.17
docopt 0.6.2
flatbuffers 23.5.26
langcodes 3.3.0
psutil 7.0.0
PyYAML 6.0.1
tomli 2.0.1
wheel 0.41.3
zstandard 0.22.0
:heavy_check_mark: debugger server found
:heavy_check_mark: simulator exists at /Users/tehiroki/.kepler/kntools/sdk/0.17.4/simulator/tools/runsimulator
:heavy_check_mark: vda version 2.0.2 installed
:heavy_check_mark: Vega Packaging Tools vpt binary exists in /Users/tehiroki/.kepler/kntools/sdk/0.17.4/vegapackagingtool/bin/vpt
:heavy_check_mark: Hermes Compiler binary exists at /Users/tehiroki/.kepler/kntools/sdk/0.17.4/hermes/072/bin/hermesc
:heavy_check_mark: Corretto JDK version 11.0.20.8.1 installed
:heavy_check_mark: Kepler Performance CLI binaries exist in /Users/tehiroki/.kepler/kntools/sdk/0.17.4/kepler_perf_cli
:heavy_check_mark: Kepler Studio extensions installed in VSCode
:heavy_check_mark: environment setup file exists at /Users/tehiroki/.kepler/kntools/sdk/0.17.4/environment-setup-sdk.sh and has correct contents
:heavy_check_mark: /Users/tehiroki/.kepler/kntools/sdk/0.17.4/environment-setup-sdk.sh is sourced from /Users/tehiroki/.bash_profile
:heavy_check_mark: Telemetry Service exists at /Users/tehiroki/.kepler/kntools/sdk/0.17.4/kepler-telemetry/telemetry. Configuration file exists at /Users/tehiroki/.kepler/kntools/sdk/0.17.4/kepler-telemetry/config.json. Collection of anonymous usage data is enabled
Kepler CLI prerequisites are all correctly installed.
Bug Description
1. Summary
When playing drm content with a license of 30s, the keystatuschange event is not triggered when the key status changes.
Bug Severity
- Impacts operation of app
- Blocks current development
- Improvement suggestion
- Other
2. Steps to Reproduce
- 1/ Implement as described in the following page.
https://developer.amazon.com/docs/kepler-tv/media-player-shaka-player.html. - 2/ Create a ShakaPlayer instance and set the following content URL.
Content URL: https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd
License URL: https://proxy.uat.widevine.com/proxy?video_id=GTS_CAN_RENEW_FALSE_LICENSE_30S_PLAYBACK_30S&provider=widevine_test - 3/ Call player.load.
- 4/ Waiting for an error to occur.
The sample app that I will share with our Amazon contact has been modified from Amazon’s sample app, specifically the classics.ts file, to enable playback of the above content.
After launching the app, please search for “Empire1” in the search screen and play the content that appears in the results.
3. Observed Behavior
The keystatuschange event of the MediaKeySession does not trigger when the license expires during playback.
We are using Shaka version 4.6.18, but due to the aforementioned issue, we are unable to receive the expected Shaka EXPIRED error (6014).
In contrast, a video error event occurs in Kepler. This can be listened for using video.addEventListener(‘error’, () => {}).
As a result, instead of Shaka’s EXPIRED error (6014), a 3016 error occurs.
Additional Information:
In the Kepler Sample App provided by Amazon, we observe the expected 6014 error occurring. This is because the version of shaka-player used in the sample app is v4.3.6, in this version, after an error occurs, tryToRecoverFromError_(), is called to try to switch the variantTrack, and due to this action a 6014 error occurs. This is not the same as expecting a 6014 error to occur after the expiration of the license term.
Shaka Player v4.6.18 keystatuschange event source:
Error Message:
DRM error code:0x68, Internal decrypt failure ] debug info[ /usr/src/debug/amzn-drm-plugins/1.0-r0/git/decrypt-plugin/gstdecrypt.cpp(1645): gst_decrypt_transform (): /GstPipeline:av-player/GstBin:audiodecoder/GstAmznDecrypt:decryptor:\nmsg:Internal decrypt failure
4. Expected Behavior
When the status of all MediaKey statuses changes from ‘usable’ to ‘expired’ after the license expiration date is exceeded, a MediaKeySession keystatuschange event is expected to be responded to, notifying Shaka of the error EXPIRED(6014).
On Chrome and Edge browsers, you can get the expected EXPIRED(6014) error.
4.a Possible Root Cause & Temporary Workaround
N/A
5. Environment
Please fill out
- SDK Version:
[0.17.4] - App State:
[Foreground]
Prefilled
(no action required)
React Native Version: 0.72.0React Version: 18.2.0Platform: TVDevice Model(s): [Leave blank]
If it is a player issue, please share the following details in addition:
- Player SDK:
[Shaka] - Player SDK Version:
[4.6.18]- Audio Codecs:
[AAC] - Video Codecs:
[h.264, mp4] - Manifest Types:
[dash]
- Audio Codecs:
6. Example Code Snippet / Screenshots / Screengrabs
import { ExampleComponent } from 'custom-sdk';
<ExampleComponent config={{ key: 'value' }} />
Playback Issues
If this is a playback issue, please provide your VPKG and/or content URL, any pre-conditions (like geo-location) [Share privately with your Amazon contact] , and let us know if it’s x86 or arm7.
<!-- Describe your playback issue if applicable -->
Q: Would you like to be contacted to share your latest VPKG compiled with latest SDK:
[Y] [Share privately with your Amazon contact]
Q: VPN or Login needed to verify functionality in VPKG?
[N] [Share privately with your Amazon contact]
Q: If applicable, please provide your media/content url
If this is created dynamically, tokenized, etc please provide a way for us to access it
Content URL:
https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd
License URL:
https://proxy.uat.widevine.com/proxy?video_id=GTS_CAN_RENEW_FALSE_LICENSE_30S_PLAYBACK_30provider=widevine_test
Q: Are there any special headers required to reproduce the issue you are facing?
[N]
Additionally please provide the following if possible
Device Log: ExpiredError.txt (117.5 KB)
If you are able to test on a device or simulator
Please ssh into the device via vda shell and copy the output from cat /etc/os-release into the answer section below. Note: if you don’t have a simulator running or device attached vda shell will respond with vda: no devices/emulators found
NAME="OS"
OE_VERSION="4.0.0"
OS_MAJOR_VERSION="1"
OS_MINOR_VERSION="1"
RELEASE_ID="2"
OS_VERSION="1.1"
BRANCH_CODE="VegaMainlineTvIntegration"
BUILD_DESC="OS 1.1 (VegaMainlineTvIntegration/4320)"
BUILD_FINGERPRINT="4.0.20772.0(8ab8eb90727c0d54)/4320N:user-external/release-keys"
BUILD_VARIANT="user-external"
BUILD_TAGS="release-keys"
BUILD_DATE="Tue Mar 11 08:06:21 UTC 2025"
BUILD_TIMESTAMP="1741680381"
VERSION_NUMBER="201010432050"
Additional Context
N/A