PallyCon DRM 테스트

PallyCon DRM 연동을 TV SDK에서 빠르게 검증할 수 있는 테스트 엔드포인트를 제공합니다. 별도의 DRM 라이선스 발급 없이 Widevine(Android TV)과 FairPlay(tvOS)를 즉시 테스트할 수 있습니다.

주의: 테스트 엔드포인트는 PallyCon DEMO 환경을 사용하며, 프로덕션 용도로 사용할 수 없습니다. DRM은 반드시 실기기에서 테스트해야 합니다 (에뮬레이터/시뮬레이터 미지원).

테스트 엔드포인트

아래 API를 호출하면 Widevine, FairPlay, PlayReady DRM이 설정된 플레이어 옵션 JSON을 응답합니다.

GET https://vpe-api.sgrsoft.com/api/drmTestPallycon

응답 예시

{
    "playlist": [
        {
            "drm": {
                "com.apple.fps": {
                    "src": "https://contents.pallycon.com/bunny/hls/master.m3u8",
                    "certificateUri": "https://license-global.pallycon.com/ri/fpsKeyManager.do?siteId=DEMO",
                    "licenseUri": "https://license-global.pallycon.com/ri/licenseManager.do",
                    "licenseRequestHeader": { ... }
                },
                "com.widevine.alpha": {
                    "src": "https://contents.pallycon.com/bunny/stream.mpd",
                    "licenseUri": "https://license-global.pallycon.com/ri/licenseManager.do",
                    "licenseRequestHeader": { ... }
                }
            },
            "description": {
                "title": "Pallycon 테스트 영상",
                "created_at": "2024.07.13"
            }
        }
    ],
    "autostart": true
}

플레이어 연동

엔드포인트에서 받은 응답을 그대로 플레이어 옵션으로 전달하면 DRM 재생이 시작됩니다. TV 플랫폼에 따라 Widevine(Android TV, Fire TV) 또는 FairPlay(Apple TV)가 자동 선택됩니다.

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

const DRM_API = 'https://vpe-api.sgrsoft.com/api/drmTestPallycon';

export default function PallyconDrmTest() {
    const [options, setOptions] = useState<any>(null);

    useEffect(() => {
        fetch(DRM_API)
            .then((res) => res.json())
            .then((data) => setOptions(data));
    }, []);

    if (!options) {
        return <View style={styles.container} />;
    }

    return (
        <View style={styles.container}>
            <VpePlayer
                accessKey="YOUR_ACCESS_KEY"
                options={options}
                onBack={() => { /* navigation.goBack() */ }}
            />
        </View>
    );
}

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

정적 옵션으로 직접 설정

API 호출 없이 DRM 옵션을 코드에 직접 작성할 수도 있습니다.

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

export default function PallyconStaticDrm() {
    return (
        <View style={styles.container}>
            <VpePlayer
                accessKey="YOUR_ACCESS_KEY"
                options={{
                    playlist: [
                        {
                            drm: {
                                'com.apple.fps': {
                                    src: 'https://contents.pallycon.com/bunny/hls/master.m3u8',
                                    certificateUri: 'https://license-global.pallycon.com/ri/fpsKeyManager.do?siteId=DEMO',
                                    licenseUri: 'https://license-global.pallycon.com/ri/licenseManager.do',
                                    licenseRequestHeader: {
                                        'Content-type': 'application/x-www-form-urlencoded',
                                        'pallycon-customdata-v2': '{FairPlay Token}',
                                    },
                                },
                                'com.widevine.alpha': {
                                    src: 'https://contents.pallycon.com/bunny/stream.mpd',
                                    licenseUri: 'https://license-global.pallycon.com/ri/licenseManager.do',
                                    licenseRequestHeader: {
                                        'pallycon-customdata-v2': '{Widevine Token}',
                                    },
                                },
                            },
                            description: {
                                title: 'Pallycon 테스트 영상',
                                created_at: '2024.07.13',
                            },
                        },
                    ],
                    autostart: true,
                }}
                onBack={() => { /* navigation.goBack() */ }}
            />
        </View>
    );
}

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

DRM 유형별 TV 플랫폼 지원

DRM프로토콜지원 플랫폼
com.widevine.alphaDASHAndroid TV, Fire TV
com.apple.fpsHLSApple TV (tvOS)
TV SDK