HLS Validation Guide
Complete guide to HLS validation with Apple MediaStreamValidator for compliance and quality assurance
Overview
HTTP Live Streaming (HLS) validation ensures your streams meet Apple’s technical specifications and work reliably across all Apple devices. Probe.dev provides Apple’s official MediaStreamValidator tool as a service, eliminating the need for local tool installation while providing comprehensive validation reports.
MediaStreamValidator is essential for App Store submissions, streaming service quality assurance, and debugging playback issues across iOS, macOS, and tvOS devices.
Why HLS Validation Matters
App Store Requirements
Mandatory for iOS Apps
Apple requires HLS compliance for video streaming apps
Rejection Prevention
Avoid App Store rejections due to streaming issues
Playback Quality
Universal Compatibility
Ensure streams work across all Apple devices
Error Prevention
Catch issues before they reach end users
Specification Compliance
RFC 8216 Standards
Validate against official HLS specifications
Future-Proofing
Ensure compatibility with upcoming iOS versions
Debugging Support
Detailed Error Reports
Identify specific compliance violations
Root Cause Analysis
Pinpoint encoding or packaging issues
Getting Started
Basic HLS Validation
Validate an HLS playlist for Apple compliance:
Quick Playlist-Only Check
For faster validation during development:
Use parse_playlist_only=true
for rapid iteration during development. Switch to full validation before production deployment.
Comprehensive Validation
Full Stream Analysis
For production-ready validation including segment analysis:
Parameter Configuration
Parameter | Purpose | Recommended Values |
---|---|---|
parse_playlist_only | Skip segment download/analysis | true for development, false for production |
enable_cli_output | Include raw MediaStreamValidator output | true for debugging |
timeout | Maximum analysis time (milliseconds) | 650000 (10+ minutes for large streams) |
inject_json | Enhanced JSON formatting | true for easier parsing |
Apple HLS Compliance Requirements
Essential Compliance Checks
MediaStreamValidator verifies these critical requirements:
Common Validation Errors
Critical Issues
Bitrate Declaration Mismatch
Error: BANDWIDTH attribute doesn't match measured bitrate
Cause: Playlist declares different bitrate than actual stream
Solution:
Segment Duration Violations
Error: Segment duration exceeds target duration
Cause: Individual segments longer than #EXT-X-TARGETDURATION
Solution:
Missing Audio-Only Variant
Error: No audio-only variant found
Cause: Required 64 kbps audio stream missing from master playlist
Solution:
Warning-Level Issues
Warnings:
- Inefficient bitrate ladder gaps
- Missing I-frame playlists
- Suboptimal segment counts
Impact: Playback experience degradation
Warnings:
- Inefficient bitrate ladder gaps
- Missing I-frame playlists
- Suboptimal segment counts
Impact: Playback experience degradation
Warnings:
- Missing closed caption tracks
- Incomplete language tagging
- Audio description tracks absent
Impact: App Store review concerns
Warnings:
- Large segment file sizes
- Excessive variant count
- Inefficient codec settings
Impact: Startup time and buffering issues
Integration Workflows
CI/CD Pipeline Integration
GitHub Actions Example
Jenkins Pipeline
Pre-Publish Validation Script
App Store Submission Workflow
Pre-Submission Checklist
Documentation for App Review
Include MediaStreamValidator reports in your App Store submission:
Performance Optimization
Validation Speed Tips
- Development Phase: Use
parse_playlist_only=true
- Staging Phase: Full validation with reasonable timeout
- Production Phase: Validate representative samples
- CI/CD: Parallel validation of multiple streams
Recommended Timeouts
Stream Type | Recommended Timeout | Reasoning |
---|---|---|
Short clips (< 5 min) | 2-3 minutes | Quick analysis |
Standard content (5-60 min) | 5-8 minutes | Thorough checking |
Long-form content (> 1 hour) | 10-15 minutes | Complete validation |
Live streams | 3-5 minutes | Sample-based analysis |
Troubleshooting
Common Issues and Solutions
Debugging with CLI Output
Enable detailed output for troubleshooting:
Best Practices
Development Workflow
- Validate frequently during encoding
- Use playlist-only validation for quick checks
- Automate validation in build pipelines
- Keep validation reports for debugging
Production Deployment
- Full validation before CDN upload
- Validate after CDN propagation
- Monitor validation results over time
- Document compliance for App Store
Performance
- Cache validation results for unchanged content
- Validate samples of long-form content
- Use appropriate timeouts for content length
- Parallel validation for multiple streams
Quality Assurance
- Validate across all bitrate variants
- Test accessibility features
- Verify closed caption compliance
- Check audio-only variant functionality
Next Steps
Streaming Analysis
Learn about comprehensive streaming format analysis
Report Types
Understand all available analysis tools
Sample Library
Test validation with sample HLS streams
API Reference
Complete MediaStreamValidator API documentation
Need help with HLS validation or App Store submission? Contact our support team at support@probe.dev for personalized assistance with your streaming workflows.