Documentation Index

Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt

Use this file to discover all available pages before exploring further.

TV SDK overview

Prev Next

Available in Classic and VPC

The Video Player Enhancement TV SDK is a React Native video player SDK for Android TV, Apple TV (tvOS), and Fire TV.

TV-specific component

@sgrsoft/vpe-reactnative-tv-sdk is a TV-specific video player SDK built on react-native-tvos. It provides the same API as the Web SDK (vpe-react-sdk), allowing you to build a consistent development experience across platforms.

Key features

The TV SDK provides the following main features:

  • Native playback for HLS/DASH/MP4 (ExoPlayer/AVPlayer)
  • DRM support (Widevine + FairPlay)
  • IMA ads (Google Interactive Media Ads)
  • Playlist (automatic playback of the next item)
  • Subtitles (VTT/SMI with automatic EUC-KR decoding)
  • Declarative layout customization
  • Live streaming with Low Latency HLS (LL-HLS)
  • Multilingual (ko/en/ja)
  • Resume playback (onExit + initialPosition)
  • D-pad/remote control navigation
  • Interface capture prevention

Differences from the web SDK

The main differences between the web SDK and the TV SDK are as follows:

Item Web SDK TV SDK
Platform Browser (React/Next.js) Android TV / tvOS / Fire TV
Streaming engine Based on browser MSE Native engine (ExoPlayer/AVPlayer)
Full screen requestFullscreen() Always Full screen (no-op)
PiP requestPictureInPicture() Not supported (no-op)
Volume Slider UI System volume (MuteBtn = mute toggle)
Input Mouse/keyboard Remote control D-pad
Ads IMA IMA
TV-specific props - onBack, onExit, initialPosition

Language support

The SDK detects the device language settings to support Korean (ko), English (en), and Japanese (ja).

Version compatibility

The following table shows the version compatibility for the TV SDK.

Item Minimum Recommended
react-native-tvos 0.83.1-1 0.84.0-0
React 19.x 19.2.x
Node.js 22.11+ 22.x LTS
tvOS 15.1+ 16.0+
Android API 24 (7.0) 28+
TypeScript 5.0+ 5.8.x

Quick start

You can quickly configure the player with the following sample code.

import React, { useRef } from 'react';
import { View, StyleSheet } from 'react-native';
import { VpePlayer } from '@sgrsoft/vpe-reactnative-tv-sdk';
import type { PlayerHandle } from '@sgrsoft/vpe-reactnative-tv-sdk';

export default function PlayerScreen() {
    const playerRef = useRef<PlayerHandle>(null);

    return (
        <View style={styles.container}>
            <VpePlayer
                ref={playerRef}
                accessKey="YOUR_ACCESS_KEY"
                options={{
                    playlist: [{
                        file: 'https://example.com/video.m3u8',
                        description: { title: 'Video title' },
                    }],
                    autostart: true,
                }}
                onBack={() => {
                    // Handle back action
                }}
                onEvent={(event) => {
                    if (event.type === 'ready') {
                        console.log('Player ready');
                    }
                }}
            />
        </View>
    );
}

const styles = StyleSheet.create({
    container: { flex: 1, backgroundColor: '#000' },
});