MediaLab SpeedTest for Jellyfin — guide
Install the plugin, activate the license, then measure the speed of each TV, phone or browser and read the verdict.
Installation
You need Jellyfin Server 12.2 or newer, or medialab Server, and a MediaLab Works account with a license that covers the plugin (an active subscription, a lifetime license within its update window, the Jellyfin bundle or the free 30-day trial).
From your plugin repository (recommended). Jellyfin then installs and updates the plugin by itself.
- In your MediaLab Works account open Licenses → Jellyfin plugin repository and click Create address. Copy it: it is private (it contains a token), so do not share it; you can regenerate or revoke it at any time.
- In Jellyfin open Dashboard → Plugins → Repositories, click +, give it a name (for example MediaLab Works), paste the address and save.
- In Dashboard → Plugins → Catalog find MediaLab SpeedTest by MediaLab, click Install, then restart Jellyfin.
The repository lists only the plugins your licenses cover, and only the versions they allow. Its download links are signed and expire after a few hours, so Jellyfin always reads a fresh list.
Manually, from a zip file.
- In Account → Licenses download
jf-speedtest_x.y.z.zip(the SHA-256 of the file is shown next to the button). - Extract it into a new folder
MediaLab SpeedTest by MediaLab_x.y.z.0inside the Jellyfin plugins folder:- Linux (package):
/var/lib/jellyfin/plugins/ - Docker (official image):
/config/plugins/in the config volume - Windows:
%ProgramData%\Jellyfin\Server\plugins\
- Linux (package):
- Restart Jellyfin.
License
Open MediaLab SpeedTest in the Jellyfin 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 Jellyfin server and shows the license as Active.
The license is checked once a day (and at every Jellyfin 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 Jellyfin restart, whatever the history setting.
Measuring
- 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.
- Press Start (download first, then upload, then latency). Leave the page open until it finishes; the buttons are disabled while a measurement runs.
- 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.
- 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 Jellyfin user; there is no public endpoint.
HEADorGET…/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 Jellyfin the endpoints are directly under the server address, so a full address looks like https://your-server/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.worksat 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.