Skip to content

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:

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:

{
    "id": "STUDY_ORF",
    "subject": "orf",
    "type": "VIDEO",
    "names": {
        "en_US": {
            "short": "ORF",
            "long": "ORF test"
        }
    },
    "params": {
        "duration": 60,
        "timeout": 30,
        "video": {
            "src": "https://on.orf.at/video/14209121",
            "contentType": "feature"
        },
        "playMode": "normal"
    }
}

For live videos, we just need the live link and a content type of live:

{
    "id": "STUDY_ORF_LIVE",
    "subject": "orf",
    "type": "VIDEO",
    "names": {
        "en_US": {
            "short": "ORF: Livestream",
            "long": "ORF: Livestream"
        }
    },
    "params": {
    "duration": 30,
    "timeout": 30,
    "video": {
        "src": "https://on.orf.at/live?channel=orf1",
        "contentType": "live"
    },
    "playMode": "normal"
    }
}

servustv

This currently supports live and feature videos.

To start the live stream, simply pass the home page as a URL:

{
    "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",
            "contentType": "live"
        },
        "playMode": "normal"
    }
}

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.