Documentation

Getting Started

Installation

To start using DRMInsight Pro, include the following script in your HTML:

<script src="https://cdn.drminsight.io/pro/latest/drminsight.min.js"></script>

Initialization

Initialize the analyzer with your configuration:

const analyzer = new DRMInsight({ targetElement: '#video-element', debugMode: true, captureLicense: true, metadataAnalysis: true });

Step-by-Step Guide

1. Getting Started

Follow these simple steps to begin analyzing DRM-protected content:

  1. Enter the video URL in the "Manifest URL" field
  2. Provide your license server URL (optional)
  3. Click "Start DRM Analysis" button
  4. Wait for the analysis to complete

2. Understanding the Results

After analysis, you'll see several important metrics:

License Validity

Shows how long the DRM license remains valid

Security Level

Indicates the encryption strength (L1 is strongest)

Content Keys

Number of encryption keys used

DRM System

Shows which DRM technology is being used

3. Troubleshooting Help

If you see errors, check these common issues: internet connection, correct video URL, and browser DRM support (Chrome/Firefox/Edge work best).

Troubleshooting

No EME Events Detected

Ensure the video element has the proper DRM attributes and the page has the necessary permissions.

License Parsing Errors

Check if the license server response is properly formatted and the CORS policies allow access.

Performance Issues

Disable debug mode if analyzing high-throughput applications.

Video Tutorials

How to Use DRMInsight Pro

Getting Started Tutorial

Getting Started Guide

Learn how to run your first DRM analysis in under 3 minutes

Understanding Results

Understanding Results

Learn what all the metrics mean and how to interpret them

Frequently Asked Questions

Q: Why isn't my content playing?

A: Check that your browser supports DRM (Chrome is recommended) and your manifest URL is correct.

Q: What does "L3 Security Level" mean?

A: This indicates software-based DRM protection - L1 is hardware-based and more secure.

Q: Can I use this on mobile devices?

A: DRM testing works best on desktop browsers - mobile DRM support varies by device.

// Initialize analyzer with advanced options const analyzer = new DRMInsight({ targetElement: '#video-element', drmConfig: { widevine: { licenseCustomData: 'custom=value' }, playready: { headers: { 'X-Custom-Header': 'value' } }, fairplay: { certificateUrl: 'https://your-server/fairplay.cer', contentId: 'skd://your-content-id' } }, metrics: { bitrate: true, buffer: true, droppedFrames: true } }); // Advanced event listeners analyzer .on('manifestParsed', (manifest) => { console.log('Manifest parsed:', manifest); }) .on('trackChanged', (track) => { console.log('Active track changed:', track); }) .on('bitrateChanged', (bitrate) => { console.log('Bitrate changed:', bitrate); }) .on('licenseParsed', (metadata) => { console.log('Full license metadata:', metadata); }); // Start analysis analyzer.start();

Advanced Configuration

// Professional configuration with all features const analyzer = new DRMInsight({ targetElement: '#video-element', debugMode: true, polyfill: { enable: true, // Cross-browser compatibility force: false // Force polyfill even when native available }, metrics: { enable: true, interval: 1000, // ms track: ['bitrate', 'buffer', 'droppedFrames'] }, manifestAnalysis: { preParse: true, showTracks: true }, drmConfig: { authHeaders: { 'Authorization': 'Bearer token' }, widevine: { parseFull: true // Full protobuf parsing }, playready: { parseFull: true // Full XML parsing }, fairplay: { certificateUrl: 'https://your-server/fairplay.cer', prepareContentId: (contentId) => { return `skd://${contentId}`; } } }, hooks: { beforeRequest: (request) => { // Modify requests before sending return request; }, beforeLicenseRequest: (request) => { // Modify license requests return request; } } });