Sign in
moqtap CLI · WebTransport Inspector

Bad networks, in the tab you are debugging

See what your MoQ player does on 3G, on a dropped link, or on a train going through a tunnel. Pick the network from DevTools and it applies to that tab's WebTransport sessions, in your own browser, with nothing else to set up.

Offline, 3G and 4G are free, with no sign-in.

Video placeholder
A MoQ player in a browser tab, switched from 4G to 3G to Offline from the Impairment menu while it plays.

Your viewers are not on your office network

A player that looks perfect on your desk meets lost packets, long round trips and links that drop out. You want to see that before your viewers do.

Throttling stops at WebTransport

Pick 3G in your browser’s throttling menu and a MoQ player keeps streaming as if nothing changed. That menu has no effect on a WebTransport connection.

The real tab, the real player

The page keeps its relay URL, its WebTransport protocols and its certificate hashes. You test the build you ship, with no change to the page or the player.

No lab to set up

No traffic shaper on the router, no second machine, no proxy settings. The CLI runs on your own machine, beside the browser.

How it works

  1. 1

    Install the moqtap CLI

    One command on macOS, Linux or Windows. Then start it for the extension:

    moqtap intercept --bridge
  2. 2

    Open DevTools

    Go to the WebTransport Inspector panel and click Impairment. The first time, check that the identity matches the one the CLI printed and allow it.

  3. 3

    Pick a condition

    Choose a network for the tab. Its WebTransport sessions move onto it at once, and you watch your player cope in the same panel.

Get the moqtap CLI has the install commands, and Impairing a Browser Tab walks through the panel step by step.

Free: offline, 3G and 4G

Free

Three conditions every player should survive, with the rates and latencies of Chrome DevTools' own 3G and Fast 4G presets.

Screenshot placeholder
The panel's Impairment menu on a tab, with Off, Offline, 3G and 4G.

Off

Sessions connect directly, with no impairment.

Offline

Every packet is dropped, on sessions already running too.

3G

400 kbit/s each way and 2 s of added round trip.

4G

8.1 Mbit/s down, 1.35 Mbit/s up and 165 ms of added round trip.

  • Only the inspected tab is impaired. Other tabs keep their own condition, or none.
  • Every WebTransport session the tab opens goes through it, workers included.
  • Each session gets its own link: five sessions on 3G each get a 3G link.
  • Switching condition moves the running sessions at once, with no reload.
  • The condition stays with the tab across reloads and navigations until the tab closes.
  • A single connection can take its own condition while the rest of the tab keeps another.

Pro: your own scenarios in the menu

Pro

Real networks rarely hold still. Write the network your viewers actually have, let it change while the player runs, and pick it from the same menu as the presets.

Networks that change on a timeline

Start on LTE, drop to 3G twenty seconds in, hit a lossy edge, then recover. The timeline starts when you pick the scenario and switches every session in the tab as it steps.

Any network you can describe

Name one of seven networks (LTE, Wi-Fi, satellite, 3G, a lossy access edge, a bufferbloated link, a clean datacentre path) or write your own loss, delay, jitter, reordering and bandwidth.

In folders you arrange

Scenarios are files in your scenarios directory. Each folder there is a submenu in the panel, so your conditions stay sorted by device, region or bug.

A label on every connection

Give a scenario a short label of up to four letters or digits, and the panel shows it beside each connection running it.

Screenshot placeholder
The Impairment menu with your scenarios in folders, and the free presets under Default.
Video placeholder
A timeline scenario running in a tab: the player's sessions step from LTE to 3G to a lossy edge and back.
mobile/train-commute.json
{
  "version": 1,
  "short_label": "TRN",
  "network": { "preset": "lte" },
  "timeline": [
    { "at": { "secs": 20, "nanos": 0 }, "network": { "preset": "three-g" } },
    { "at": { "secs": 35, "nanos": 0 }, "network": { "preset": "lossy-edge" } },
    { "at": { "secs": 50, "nanos": 0 }, "network": { "preset": "lte" } }
  ]
}
your scenarios directory
scenarios/
├── mobile/
│   ├── train-commute.json
│   └── weak-signal.json
├── satellite/
│   └── maritime.json
└── stadium-wifi.json
starting a scenario
moqtap login
moqtap scenario new --name weak-signal --preset lte
moqtap scenario list # where they are, and what each does

Save a file and it is in the menu the next time you open it. The scenario file reference has every key.

Free and Pro

Free

  • Off, Offline, 3G and 4G for any tab
  • A condition per connection
  • No account, no sign-in

Pro

  • Everything in Free
  • Your own networks in the panel's menu
  • Timelines that change the network as the player runs
  • Folders and short labels
  • Scenario files from the terminal, for any client

Team adds scenario runs in CI. Business adds per-track shaping and per-object rules in the terminal. See every plan.

Frequently asked questions

Do I need to change my page or player?
No. The extension sends the tab’s WebTransport sessions through the CLI on your machine. The page keeps its relay URL, its WebTransport protocols and its serverCertificateHashes, and the inspector shows each session under the URL the page opened.
Do the free presets need an account?
No. Off, Offline, 3G and 4G work without signing in. Your own scenarios in the menu need a Pro plan or above, signed in with moqtap login.
Which browsers does it work in?
Chrome and other Chromium browsers, and Firefox, with the WebTransport Inspector extension installed and the moqtap CLI running on the same machine.
What about a session that was already open?
A session opened before you picked a condition stays direct, and the panel marks it as not impaired. Reload the page to impair it.
Can I impair a client that is not in a browser?
Yes, from the terminal. moqtap intercept --link offline, 3g or 4g is free, and on Pro moqtap intercept -s runs a scenario file between any client and its relay.

Watch your player on a bad network today

Install the CLI, open DevTools, and put your tab on 3G. When you need the network your viewers really have, Pro puts it in the same menu.

Needs the WebTransport Inspector for Chrome or Firefox.