MediaLab SpeedTest for Emby — guide

Install the plugin, activate the license, then measure the speed of each TV, phone or browser and read the verdict.

Installation

You need Emby Server 4.10.1 or newer.

  1. Sign in to your MediaLab Works account, open Licenses and download the plugin DLL (available on an active subscription, a lifetime license within its update window, or during the free 30-day trial).
  2. Copy the DLL into the Emby plugins folder and restart Emby Server:
    • Linux (package): /var/lib/emby/plugins/
    • Docker: the plugins folder inside your Emby config volume
    • Windows: %AppData%\Emby-Server\programdata\plugins\
  3. Open MediaLab SpeedTest in the Emby dashboard menu and activate the license (see below).

License

Open MediaLab SpeedTest in the Emby dashboard menu and click License. Paste your license key and activate it, or enter your e-mail to start the free 30-day trial or buy a license. The plugin contacts the license server, binds the key to this Emby server and shows the license as Active.

The license is checked once a day (and at every Emby start). Without internet the plugin keeps working for 7 days after the last successful check; after that it is stopped until it can check again.

Without a valid license the page shows the license panel only: the measurement endpoints and the test buttons stop, and MediaLab TV falls back to its internal measurement. Nothing is deleted and the settings are kept.

Configuration

The page has the test, the speed per device and the recent measurements; the settings are at the bottom:

  • On / off: turning the plugin off stops the measurement endpoints (MediaLab TV then uses its internal measurement).
  • Measurements per minute, per user: the anti-abuse limit. A device rarely needs more than a few measurements; keep it low.
  • Maximum size per measurement: between 1 and 64 MiB. A larger size gives a more stable result on fast lines; on a slow or mobile connection a small size is enough.
  • History: how many recent measurements are kept in memory.

Save after changing a value. Measurements are kept in memory only, so the list starts empty after every Emby restart, whatever the history setting.

Measuring

  1. Open the plugin page on the device you want to test — the TV browser, the phone or the computer — while signed in with the account that uses that device. The page measures the path of that device; opening it on the server measures the server itself.
  2. Press Start (download first, then upload, then latency). Leave the page open until it finishes; the buttons are disabled while a measurement runs.
  3. Read the result:
    • download — what matters for playing a film; about 25 Mbps is enough for a 4K stream with a high bitrate, 10–15 Mbps for 1080p;
    • upload — what matters when the device sends data (rarely for playback);
    • latency — what matters for a smooth start and for seeking; above 100 ms usually means a VPN, a long-distance route or a busy Wi-Fi.
  4. The verdict is shown next to the result: slow (under 3 Mbps), medium (3–12), good (12–40), excellent (over 40). The speed per device card keeps the last result and the median of the last five for that device.

Run the test again when the picture stalls, to see whether the problem is on that device's path at that moment.

With MediaLab TV

MediaLab TV checks whether MediaLab SpeedTest is installed and licensed:

  • if it is, the TV app measures the network at start and during playback, chooses AUTO quality from the real speed and shows the result on the Check network screen;
  • if it is not (missing, unlicensed, or the server has no internet for the license check and the 7-day window has passed), the TV app switches to its internal measurement, without errors and without asking the viewer anything.

Endpoints (for administrators)

All endpoints need a signed-in Emby user; there is no public endpoint.

  • HEAD or GET …/MediaLabSpeedTest/ping — checks that the plugin answers.
  • GET …/MediaLabSpeedTest/download?mb=N — sends N MiB of data for the download measurement (N is capped by the maximum size setting).
  • POST …/MediaLabSpeedTest/upload — receives the upload measurement data.

On Emby the prefix is /emby, so a full address looks like https://your-server/emby/MediaLabSpeedTest/ping.

Troubleshooting

  • The page says the license is not active: enter the key again from License, or check in your account that the license covers this server and has not expired. The plugin needs to reach medialab.works at least once every 7 days.
  • The test fails immediately: make sure you are signed in (the endpoints refuse anonymous requests) and that the plugin is turned on in the settings.
  • The numbers are much lower than the server's line: test from another device on the same Wi-Fi, then from a device on cable. If only one device is slow, the problem is its Wi-Fi or its route, not the server.
  • The TV app ignores it: check that the license covers speedtest (or the bundle) and that the server could check the license in the last 7 days.

Download requires a license or the free 30-day trial.