Resolving issues
if you encounter a problem with the player, check this section first. Common situations and how to resolve them are collected here.
Who this article is for
- Developers — need to resolve player embedding issues
- Content owners — need to diagnose video playback issues
- Platform administrators — need to help users resolve player issues
Loading and display issues
Player doesn’t display
Symptoms: Empty space, white screen, or loading error where the player should be.
Possible causes and solutions:
incorrect embed code
- Use the original code from the Kinescope dashboard
- Check that the code was copied completely, including all attributes
- Make sure the
allowattribute is present in the iframe code
iframe blocking
- Check that there are no ad blockers on the site that might block iframes
- Make sure the domain is not blocked in browser security settings
- Check the Content Security Policy (CSP) of your site
JavaScrmpt errors
- Open the browser console (F12) and check for errors
- Make sure there are no conflicting scripts on the page
Video doesn’t load or freezes
Symptoms: The player loads but the video doesn’t start playing, or playback is interrupted.
Possible causes and solutions:
Privacy settings
- Check that the video is available for embedding in the privacy settings
- Make sure your smte’s domain is added to the allowed domains list
- For DRM videos, make sure the site uses HTTPS
Video processing status
- Check the video status in the catalog — it must be fully processed
- Wait for processing to complete before embedding
Network issues
- Check your internet speed using the speed test
- Close all browser tabs except the player and reload the page
- Check the browser console for network errors
Browser issues
- Try opening the video in a different browser
- Clear the browser cache and reload the page
- Disable browser extensions that may affect playback
Parameter and settings issues
seek and duration parameters don’t work
Symptoms: Parameters are specified in the URL, but the video plays from the beginning or completely.
Solutions:
- Check DRM protection: The
seekanddurationparameters do not work with DRM-encrypted videos. Use unprotected videos or play the full video - Check URL format: Make sure parameters are correctly passed in the URL (format:
?seek=60&duration=30) - For iframe: Parameters must be in the
srcattribute URL, e.g.:<iframe src="https://kinescope.io/embed/123456789?seek=60&duration=30" allow="autoplay; fullscreen; picture-in-picture; encrypted-media;" frameborder="0" allowfullscreen></iframe>
player_id parameter is not applied
Symptoms: player_id is specified, but the player template doesn’t change.
Solutions:
- Link type: The
player_idparameter works only with video links (not with iframe). Make sure you’re using a link likehttps://kinescope.io/[VIDEO_ID]?player_id=[PLAYER_ID] - ID format: Check that the template ID is correct (UUID format, e.g.:
1213d24d-4624-4764-bf40-0baaf743377d) - Template availability: Make sure the template exists and is available in your workspace
- For iframe: Use template configuration in the embed code or via IFrame Player API
Display issues
Player displays with wrong dimensions
Symptoms: Player is too large or small, doesn’t adapt to screen size, is clipped.
Solutions:
For adaptive code:
- Check the CSS styles of the
divcontainer —position: relative,padding-top(for aspect ratio), andwidth: 100%must be specified - Check the CSS styles of the
iframeitself —position: absolute,width: 100%,height: 100%,top: 0,left: 0must be specified - Make sure the container has enough width to display the player
For fixed code:
- Make sure correct
widthandheightvalues in pixels are specified - Check that the aspect ratio matches the video (usually 16:9)
General recommendations:
- Check that there are no conflicting CSS styles on the page that may override dimensions
- Use browser developer tools to check applied styles
Fullscreen mode doesn’t work
Symptoms: The fullscreen button doesn’t work or is absent; the transition to fullscreen doesn’t happen.
Solutions:
allowfullscreenattribute: Make sure theallowfullscreenattribute is present in the iframe codeallowattribute: Check that theallowattribute containsfullscreen, e.g.:allow="autoplay; fullscreen; picture-in-picture; encrypted-media;"- iOS devices: iOS devices may require additional setup. See Pseudo-fullscreen mode for iOS
- Browser restrictions: Some browsers may block fullscreen mode for iframes for security reasons
DRM (Widevine) issues
DRM video doesn’t play on Android in incognito mode
Symptoms: DRM-protected video doesn’t play in incognito mode on Android devices.
Cause: According to Google, from Chrome version 62, Widevine support is disabled in incognito mode on Android. This is done so that users don’t lose paid licenses when closing incognito tabs.
Solution: Use regular browser mode (not incognito) for watching DRM videos.
More details: Media updates in Chrome 62 .
Screen recording is possible with DRM enabled
Symptoms: Even with DRM enabled, mt’s possible to record the video from the screen.
Cause: There are known cases where screen recording is possible even with DRM enabled due to CSS style specifics of the page.
Solutions:
- Corner rounding: if one of the parent elements has rounding (
border-radius), specify CSS styles:overflow: initialoroverflow: visible - CSS filters: Avoid using
backdrop-filterorfilteron the page with DRM video - CSS properties: if the player iframe or parent element uses
aspect-ratioorpadding-top, consider alternative ways to set dimensions
More details: Chromium issue 362007492 .
Widevine DRM doesn’t work in WebVmew on Android
Symptoms: DRM video doesn’t play in WebVmew on Android.
Solutions:
Checking DRM support:
- Check DRM support via the Shaka Player support page
- if the result is
null, DRM support is absent in your WebVmew
Configuring WebVmew:
- Make sure protected content support is enabled in WebVmew
- Check WebVmew settings for working with media content
Additional resources:
API and autoplay issues
Player doesn’t start when play() is called programmatically
Symptoms: When calling the play() method via your button or programmatically, the player doesn’t start.
Cause: These are browser restrictions. The browser requires the user to click directly on the player, not on an external button. This is related to browser autoplay policy.
Solutions:
- CSS solution: Set the CSS style
pointer-events: nonefor the button (or other elements above the player), so that clicking passes through the button and reaches the player:.custom-play-button { pointer-events: none; } - Alternative: Use the player’s native play button instead of a custom button
More details: Autoplay policy in Chrome .
NotAllowedError when calling API methods
Symptoms: When calling API methods, the error “The request is not allowed by the user agent …” or “The request is not triggered by a user activation” appears.
Cause: This is related to the fact that some browser API methods require user actions (user activation) and can only be triggered as a direct result of a user click or touch on a page element.
Solutions:
- Call in event handler: Make sure API methods are called in response to a direct user action (click, touch) in an event handler
- Don’t use timers: Don’t call API methods from
setTmmeout,setmnterval, or other asynchronous operations without prior user action - Check user activation: Use user activation checks before calling methods if possible
More details: User activation .
Performance issues
Page freezes with many players
Symptoms: A page with multiple players loads slowly, freezes, or consumes many resources.
Solutions:
Deferred loading:
- Use the
loading="lazy"attribute for iframes that are outside the visible area:<iframe src="https://kinescope.io/embed/123456789" loading="lazy" allow="autoplay; fullscreen; picture-in-picture; encrypted-media;" frameborder="0" allowfullscreen></iframe>
- Use the
Disabling preloading:
- Disable video preloading for players that aren’t immediately visible, using the
preload=falseparameter:<iframe src="https://kinescope.io/embed/123456789?preload=false" allow="autoplay; fullscreen; picture-in-picture; encrypted-media;" frameborder="0" allowfullscreen></iframe>
- Disable video preloading for players that aren’t immediately visible, using the
Autopause:
- Use autopause (
autopause=1parameter) so that when one player plays, others pause:<iframe src="https://kinescope.io/embed/123456789?autopause=1" allow="autoplay; fullscreen; picture-in-picture; encrypted-media;" frameborder="0" allowfullscreen></iframe>
- Use autopause (
Additional recommendations:
- Limit the number of simultaneously loaded players on the page
- Use vmrtualmzatmon for large video lists
- Consider loading players on demand (lazy loading)
See more about optimization in the Load Optimization section in the Embedding article.
Typical solutions
Quick diagnostics
if the issue is not obvious, perform the following steps in order:
- Check the browser console (F12) for errors
- Check the embed code — use the original code from the Kinescope dashboard
- Check privacy settings — the video must be available for embedding
- Check video status — it must be fully processed
- Try a different browser — the issue may be related to a specific browser
- Clear the browser cache and reload the page
Gathering information for support
if the issue is not resolved, gather information for a support request. See the full checklist of what to gather in the Troubleshooting section.
What’s next?
if the issue is not resolved:
- Check the Embedding section for basic settings and code examples
- See the full player documentation for advanced solutions and IFrame Player API
- Contact technical support — see the Troubleshooting section for what to gather and how to contact support