Available Studies¶
We support various types of studies that can be run with Surfmeter Automator.
The studies are defined by the type
of the measurement, and the specific subject
. For a background on this concept, please check out the Concepts section.
If you want to know which types of studies are available to configure, refer to the subjects
section for a complete list of subjects and the all configurable parameters.
Below you will find service-specific notes for particular types of studies and subjects, which should help you configure and understand how these services are measured by us.
Video Studies¶
Video is our main focus, as you may already know, and video websites are all kind of different. In general, the configuration of video studies is quite similar: you provide a subject
and the url
of the video you want to measure. In some cases, special parameters are required, like login credentials or, in the case of live streaming, channel names. Below you will find some examples for the most common video services; any service not listed here can be easily configured using the general parameters shown in the public config.
amazon
¶
Currently we only support playback of trailers on Amazon, so you must set the subject to amazon_trailer
and pass the link to a known trailer URL as the src
. Example:
{
"id": "STUDY_AMAZON",
"subject": "amazon_trailer",
"type": "VIDEO",
"names": {
"en_US": {
"short": "Amazon Trailer",
"long": "Amazon trailer test"
}
},
"params": {
"duration": 60,
"timeout": 30,
"video": {
"src": "https://www.amazon.com/gp/video/detail/B08Z3JZ3JL",
"contentType": "trailer"
},
"playMode": "normal"
}
}
dashjs
¶
This is the most current DASH.js reference player, and you can just pass the URL of a manifest to play as a source. Example:
{
"id": "STUDY_DASHJS",
"subject": "dashjs",
"type": "VIDEO",
"names": {
"en_US": {
"short": "DASH.js",
"long": "DASH.js test"
}
},
"params": {
"duration": 60,
"timeout": 30,
"video": {
"src": "https://dash.akamaized.net/dash264/TestCases/1a/netflix/exMPD_BIP_TC1.mpd",
"contentType": "feature"
},
"playMode": "normal"
}
}
joyn
¶
Here, we support various live channels. Note the URL format, e.g.:
{
"id": "STUDY_JOYN",
"subject": "joyn",
"type": "VIDEO",
"names": {
"en_US": {
"short": "Joyn",
"long": "Joyn test"
}
},
"params": {
"duration": 60,
"timeout": 30,
"video": {
"src": "https://www.joyn.de/play/live-tv?from=%2F&channel_id=165",
"contentType": "live"
},
"playMode": "normal"
}
}
You must obtain the correct URL from the service itself by browsing it before.
Be aware that the Joyn service currently shows rather high initial loading delay values due to the complexity of cookie setting, API calls, and rendering of the video until it starts.
netflix
¶
Note that Netflix supports three different kinds of videos:
- Feature videos
- Trailers
- Tudum trailers (Netflix's speical page at https://netflix.com/tudum)
Measuring feature videos require you to provide login credentials. Trailers and Tudum trailers do not require login credentials.
The subject
for feature videos is netflix
, for trailers it is netflix_trailer
.
You must set the correct URL, subject
and contentType
for the video you want to measure.
For feature videos, set src
to the watch
URL of the video, and contentType
to feature
.
Note that regardless of the URL, we always force the video to start from the beginning (t=0
), so you can use the same URL for multiple tests within the same profile.
For example:
{
"id": "STUDY_NETFLIX",
"subject": "netflix",
"type": "VIDEO",
"names": {
"en_US": {
"short": "Netflix",
"long": "Netflix test"
}
},
"params": {
"duration": 60,
"timeout": 30,
"video": {
"src": "https://www.netflix.com/watch/80094026?t=0",
"contentType": "feature"
},
"playMode": "normal"
},
"credentials": {
"username": "...",
"password": "..."
}
}
For trailers, set src
to the title
URL of the video, the subject
to netflix_trailer
, and contentType
to trailer
. For example:
{
"id": "STUDY_NETFLIX",
"subject": "netflix_trailer",
"type": "VIDEO",
"names": {
"en_US": {
"short": "Netflix Trailer",
"long": "Netflix trailer test"
}
},
"params": {
"duration": 60,
"timeout": 30,
"video": {
"src": "https://www.netflix.com/title/80094026",
"contentType": "trailer"
},
"playMode": "normal"
}
}
For Tudum trailers, set src
to the tudum
URL of the video, the subject to netflix_trailer
, and contentType
to trailer
. For example:
{
"id": "STUDY_NETFLIX",
"subject": "netflix_trailer",
"type": "VIDEO",
"names": {
"en_US": {
"short": "Netflix",
"long": "Netflix test"
}
},
"params": {
"duration": 60,
"timeout": 30,
"video": {
"src": "https://www.netflix.com/tudum/videos/a-killer-paradox-trailer",
"contentType": "trailer"
},
"playMode": "normal"
}
}
Netflix also does not allow 1080p playback on Linux devices by default. You can use an additional extension to force Netflix to use 1080p playback. Download the extension with the ID mdlbikciddolbenfkgggdegphnhmnfcg
and set it as an additional extension with the corresponding flag. Note that 4K playback is currently not possible due to DRM and performance restrictions.
orf
¶
For ORF we support https://on.orf.at links. The old "TVThek" is no longer supported. We support live and feature content.
Note that ORF plays ads on first fresh playback; we will not skip these ads, so the total study time may have to be adjusted.
For feature videos, set src
to the watch
URL of the video, and contentType
to feature
. For example:
For live videos, we just need the live link and a content type of live
:
servustv
¶
This currently supports live and feature videos.
To start the live stream, simply pass the home page as a URL:
To start a single feature video:
{
"id": "STUDY_SERVUSTV",
"subject": "servustv",
"type": "VIDEO",
"names": {
"en_US": {
"short": "ServusTV",
"long": "ServusTV test"
}
},
"params": {
"duration": 60,
"timeout": 30,
"video": {
"src": "https://www.servustv.com/wissen/v/aa-1h9ka1e3d2114/",
"contentType": "feature"
},
"playMode": "normal"
}
}
tiktok
¶
TikTok works best as embedded video, so you specify a video with its URL as https://www.tiktok.com/embed/v3/<ID>
where <ID>
is the video ID. Example:
{
"id": "STUDY_TIKTOK",
"subject": "tiktok",
"type": "VIDEO",
"names": {
"en_US": {
"short": "TikTok",
"long": "TikTok test"
}
},
"params": {
"duration": 60,
"timeout": 30,
"video": {
"src": "https://www.tiktok.com/embed/v3/12345",
"contentType": "feature"
},
"playMode": "normal"
}
}
instagram
¶
Instagram works by simply specifying the URL of the video you want to measure.
{
"id": "STUDY_INSTAGRAM",
"subject": "instagram",
"type": "VIDEO",
"names": {
"en_US": {
"short": "Instagram",
"long": "Instagram test"
}
},
"params": {
"duration": 15,
"timeout": 30,
"video": {
"src": "https://www.instagram.com/reel/DBRLN_ROZab/",
"contentType": "feature"
},
"playMode": "normal"
}
}
zattoo
¶
Here, you must pass the channel name to play the live stream, and additionally a login URL as src
:
{
"id": "STUDY_ZATTOO",
"subject": "zattoo",
"type": "VIDEO",
"names": {
"en_US": {
"short": "Zattoo",
"long": "Zattoo test"
}
},
"params": {
"duration": 60,
"timeout": 30,
"video": {
"src": "https://zattoo.com/login",
"contentType": "live",
"channelTitle": "das_erste_de"
},
"playMode": "normal"
}
}
Known channel titles are:
daserste
das_erste_de
zdf
rtl_deutschland
pro7_deutschland
Web Studies¶
Web studies are used to measure the performance of web page load times. There are two types of web studies: website and lighthouse. The first run in the browser directly, the latter use the Lighthouse command line tool.
Website¶
The website study loads one or more URLs in the browser and measures the performance of the page load via various metrics (see the web statistics).
To use the website study, set the subject
to website
and pass one or more URLs as the urls
array:
{
"id": "STUDY_WEBSITE",
"subject": "website",
"type": "WEB",
"names": {
"en_US": {
"short": "Website",
"long": "Website test"
}
},
"params": {
"urls": ["https://example.com", "https://example.org"]
}
}
Lighthouse¶
The lighthouse study runs the Lighthouse command line tool on one or more URLs and measures the performance of the page load via various metrics (see the web statistics). If you don't have it installed, you can install it with npm install -g lighthouse
.
To use the lighthouse study, set the subject
to lighthouse
and pass one or more URLs as the urls
array:
{
"id": "STUDY_LIGHTHOUSE",
"subject": "lighthouse",
"type": "WEB",
"names": {
"en_US": {
"short": "Lighthouse",
"long": "Lighthouse test"
}
},
"params": {
"urls": ["https://example.com", "https://example.org"]
},
"native": {
"enabled": true
}
}
Note that the native
section is required for the Lighthouse study to work.
Speedtest Studies¶
Speedtest studies are used to measure the performance of the internet connection. In this section we group web-based speedtest studies, i.e. those that rely on a browser to run the speedtest. Note that for higher-bandwidth tests, you should use the network studies instead, where we offer CLI-based speedtest tools that are more accurate when connection speeds approach the Gigabit range.
Fast.com¶
This study uses the Fast.com website to run the speedtest. To use it, set the subject
to fastcom
.
{
"id": "STUDY_FASTCOM",
"subject": "fastcom",
"type": "SPEEDTEST",
"names": {
"en_US": {
"short": "Fast.com",
"long": "Fast.com test"
}
}
}
You can additionally configure some parameters, please check our public config for more details.
Nperf¶
This study uses the Nperf website to run the speedtest. To use it, set the subject
to nperf
.
{
"id": "STUDY_NPERF",
"subject": "nperf",
"type": "SPEEDTEST",
"names": {
"en_US": {
"short": "Nperf",
"long": "Nperf test"
}
}
}
Network Studies¶
Network studies are used to measure the performance of the internet connection and troubleshoot network issues. In this section we group CLI-based network studies, i.e. those that rely on a CLI tool to run the network measurement.
Note that the native
section is required for the network studies to work.
DNS¶
The DNS study runs the dig
CLI tool to measure the performance of the DNS resolution. To use it, set the subject
to dns
and pass one or more hosts as the host
array:
{
"id": "STUDY_DNS",
"subject": "dns",
"type": "NETWORK",
"names": {
"en_US": {
"short": "DNS",
"long": "DNS test"
}
},
"params": {
"host": ["example.com", "example.org"]
},
"native": {
"enabled": true
}
}
Please check our public config for more details on the available parameters.
Ookla Speedtest¶
The Ookla Speedtest study runs the speedtest
CLI tool to measure the performance of the internet connection. It requires the ookla-speedtest
CLI tool to be installed.
To use it, set the subject
to ooklaspeedtest
:
{
"id": "STUDY_OOKLA_SPEEDTEST",
"subject": "ooklaspeedtest",
"type": "NETWORK",
"names": {
"en_US": {
"short": "Ookla Speedtest",
"long": "Ookla Speedtest test"
}
},
"native": {
"enabled": true
}
}
ICMP Ping¶
The ICMP Ping study runs the ping
CLI tool to measure the performance of individual ICMP pings. To use it, set the subject
to icmpping
and pass one or more hosts as the host
array:
{
"id": "STUDY_ICMPPING",
"subject": "icmpping",
"type": "NETWORK",
"names": {
"en_US": {
"short": "ICMP Ping",
"long": "ICMP Ping test"
}
},
"params": {
"host": ["example.com", "example.org"]
},
"native": {
"enabled": true
}
}
Please check our public config for more details on the available parameters.
Traceroute¶
The Traceroute study runs the traceroute
CLI tool to measure a whole traceroute to a given host. To use it, set the subject
to traceroute
and pass the host as the host
parameter:
{
"id": "STUDY_TRACEROUTE",
"subject": "traceroute",
"type": "NETWORK",
"names": {
"en_US": {
"short": "Traceroute",
"long": "Traceroute test"
}
},
"params": {
"host": "example.com"
},
"native": {
"enabled": true
}
}
Please check our public config for more details on the available parameters.
Conferencing Studies¶
Google Meet¶
To launch a Google Meet conferencing measurement, you need to first set up a Google Meet conferencing URL by heading to https://meet.google.com/, creating a new meeting, and then joining it.
In the host controls section, set the meeting to "Open", so that anyone can join it. Then copy its URL and replace it in the below configuration (where it is marked with XXX-XXX-XXX
).
Configure the study as follows:
{
"id": "STUDY_GOOGLEMEET",
"subject": "googlemeet",
"type": "CONFERENCING",
"names": {
"en_US": {
"short": "Google Meet",
"long": "Conferencing test for \"Google Meet\""
}
},
"params": {
"duration": 30,
"url": "https://meet.google.com/XXX-XXX-XXX",
"mode": "join"
}
}
Please check our public config for more details on the available parameters.
Microsoft Teams¶
First, set up a Microsoft Teams conferencing URL by heading to https://teams.microsoft.com/. Ensure that the native application is not running, and continue with Teams on the web (at least for personal accounts, this is required to launch the admin interface). Then, in the left sidebar, click on the "Meet" icon. In the main window. Create a meeting that everyone can join (i.e., everyone can bypass the lobby). Copy the meeting link and replace it in the below configuration (where it is marked with 1234567890?p=XYZ
) – we assume that this link includes a password, so you need to replace the XYZ
part with the actual password. Normally this should be copy-pasteable from the browser automatically.
Configure the study as follows:
{
"id": "STUDY_MICROSOFTTEAMS",
"subject": "microsoftteams",
"type": "CONFERENCING",
"names": {
"en_US": {
"short": "Microsoft Teams",
"long": "Conferencing test for \"Microsoft Teams\""
}
},
"params": {
"duration": 30,
"url": "https://teams.live.com/meet/1234567890?p=XYZ",
"mode": "join"
}
}
Please check our public config for more details on the available parameters.