HLS Stream Testing

Prev Next

Catchpoint currently offers a streaming solution where we embed a video player, JW Player, in the Chrome browser to playback streams. This solution is effective for gathering stream quality metrics, but it is not cost-effective at scale. As a result, it is only offered for Enterprise nodes.

We also offer a solution to test HLS streams which are available for nodes on any network type. Since HLS uses HTTP, the solution uses the API test which makes HTTP requests and uses the Catchpoint scripting engine. This allows dynamic testing to open manifest files, extracting and requesting playlists of various qualities in a looping fashion, and inspecting transport streams to verify content quality, and various other use-cases, such as ensuring video slates "playback will resume shortly" screens are not present for extended periods of time. In addition to the streaming-specific metrics, the solution provides network metrics such as DNS, Connect, SSL, Wait (time to the first byte), Load (time from first to the last byte), and Availability.

Here is an example API script where we open a manifest, grab a playlist URL, open the playlist every 5 seconds making sure that the transport streams don't have a specific string in them.

// Step - 1
open("http://example.com/video.m3u8")     
var url = ${extract(resp-content,regexp://[\w/\-\.\?=&%]+))};

// Step - 2
openWhile("http:${var(url)}", "${var(loopCounter, le(5))}")    
var ts = ${extract(resp-content,regexp:http://([\w/\-\.\?=&%]+))}; 
assertNotHtmlSource("d959b7cb7e464571b9417e54494e4f46")   
pause("5000")     
var loopCounter = ${var(loopCounter,add(1))};