{"id":46109,"date":"2026-09-18T12:17:35","date_gmt":"2026-09-18T11:17:35","guid":{"rendered":"https:\/\/product.sport.video\/?page_id=46109"},"modified":"2026-09-18T12:17:40","modified_gmt":"2026-09-18T11:17:40","slug":"teste-de-velocidade-de-transmissao-ao-vivo","status":"publish","type":"page","link":"https:\/\/product.sport.video\/pt-pt\/teste-de-velocidade-de-transmissao-ao-vivo\/","title":{"rendered":"Teste de velocidade de transmiss\u00e3o ao vivo"},"content":{"rendered":"\n<div class=\"wp-block-uagb-container uagb-block-d14eaa97 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<style data-wp-block-html=\"css\">\n.lst-widget{--lst-ink:#291b22;--lst-muted:#6b5b63;--lst-accent:rgb(203, 16, 75);--lst-accent-hover:rgb(169, 13, 62);--lst-accent-soft:#fff0f5;box-sizing:border-box;max-width:900px;margin:28px auto;padding:clamp(22px,5vw,44px);border:1px solid #eadfe3;border-radius:24px;background:#fcf9fa;color:var(--lst-ink);font:16px\/1.55 system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;text-align:left;color-scheme:light}\n.lst-widget *{box-sizing:border-box}\n.lst-widget [hidden]{display:none!important}\n.lst-widget .lst-eyebrow{display:flex;align-items:center;gap:9px;margin:0 0 12px;color:var(--lst-accent);font-size:12px;font-weight:750;letter-spacing:.14em;text-transform:uppercase}\n.lst-widget .lst-dot{width:8px;height:8px;border-radius:50%;background:var(--lst-accent)}\n.lst-widget h2{margin:0 0 12px!important;color:var(--lst-ink);font-family:inherit;font-size:clamp(27px,4.5vw,40px);font-weight:750;line-height:1.13;letter-spacing:-.045em;text-transform:none}\n.lst-widget p{margin:0 0 16px}\n.lst-widget .lst-intro{max-width:650px;color:var(--lst-muted)}\n.lst-widget .lst-stats{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;margin:28px 0 20px}\n.lst-widget .lst-stat{padding:22px 24px;border:1px solid #eadfe3;border-radius:16px;background:#fff;min-width:0}\n.lst-widget .lst-stat-budget{background:rgba(203,16,75,.08);border-color:rgba(203,16,75,.18)}\n.lst-widget .lst-stat-budget .lst-label,.lst-widget .lst-stat-budget .lst-value{color:var(--lst-accent)}\n.lst-widget .lst-label{display:block;margin-bottom:6px;font-size:13px;font-weight:600}\n.lst-widget .lst-value{font-size:clamp(32px,5vw,48px);font-weight:700;line-height:1.2;letter-spacing:-.04em;font-variant-numeric:tabular-nums}\n.lst-widget .lst-unit{margin-left:6px;font-size:14px;font-weight:500}\n.lst-widget .lst-stat small{display:block;margin-top:8px;font-size:12px;color:var(--lst-muted)}\n.lst-widget .lst-actions{display:flex;align-items:stretch;gap:12px;margin-top:24px}\n.lst-widget button{appearance:none;border:1px solid var(--lst-accent);border-radius:10px;padding:13px 22px;background:var(--lst-accent);color:#fff;font:700 15px\/1.4 system-ui,sans-serif;letter-spacing:normal;text-transform:none;cursor:pointer;box-shadow:none;min-height:48px}\n.lst-widget button[data-lst=\"start\"]{display:block;flex:1 1 0;min-width:0;width:100%;min-height:62px;padding:17px 24px;border-radius:12px;font-size:19px;font-weight:750;text-align:center;box-shadow:0 6px 18px rgba(203,16,75,.18)}\n.lst-widget button:hover:not(:disabled){background:var(--lst-accent-hover);color:#fff}\n.lst-widget button:disabled{opacity:.6;cursor:wait}\n.lst-widget .lst-cancel{flex:0 0 auto;white-space:nowrap;background:#fff;color:var(--lst-ink);border-color:#cdbac2}\n.lst-widget button:focus-visible,.lst-widget a:focus-visible,.lst-widget .lst-table-wrap:focus-visible{outline:3px solid var(--lst-accent);outline-offset:4px}\n.lst-widget a{color:var(--lst-accent);text-decoration:underline;text-underline-offset:3px}\n.lst-widget .lst-progress{display:block;width:100%;height:7px;margin:20px 0 12px;accent-color:var(--lst-accent);border:0;border-radius:8px;overflow:hidden;background:#f3dbe3}\n.lst-widget .lst-progress::-webkit-progress-bar{background:#f3dbe3;border-radius:8px}\n.lst-widget .lst-progress::-webkit-progress-value{background:var(--lst-accent);border-radius:8px}\n.lst-widget .lst-progress::-moz-progress-bar{background:var(--lst-accent)}\n.lst-widget .lst-status{min-height:25px;margin:16px 0 20px;color:var(--lst-muted);font-size:14px}\n.lst-widget .lst-status[data-error=\"true\"]{color:#9e3434}\n.lst-widget .lst-summary{margin:0 0 20px;padding:16px 18px;border-left:3px solid var(--lst-accent);border-radius:0 10px 10px 0;background:var(--lst-accent-soft);font-size:15px}\n.lst-widget .lst-table-wrap{overflow-x:auto;border:1px solid #eadfe3;border-radius:14px;background:#fff}\n.lst-widget table{width:100%;margin:0;border:0;border-collapse:collapse;font-size:14px;background:transparent}\n.lst-widget caption{text-align:left;padding:18px 20px 12px;font-size:17px;font-weight:700;color:var(--lst-ink)}\n.lst-widget th,.lst-widget td{padding:15px 18px;border:0;border-bottom:1px solid #f0e6ea;text-align:left;vertical-align:middle;background:transparent;color:var(--lst-ink)}\n.lst-widget thead th{font-size:11px;letter-spacing:.035em;text-transform:uppercase;color:var(--lst-muted);font-weight:650;background:#faf5f7}\n.lst-widget tbody th{font-size:14px;font-weight:700;white-space:nowrap}\n.lst-widget tbody th small{display:block;font-size:11px;font-weight:400;color:var(--lst-muted)}\n.lst-widget tr:last-child td,.lst-widget tr:last-child th{border-bottom:0}\n.lst-widget .lst-badge{display:inline-block;padding:5px 9px;border-radius:6px;background:#f2edef;color:#685a60;font-size:12px;font-weight:650;white-space:nowrap}\n.lst-widget .lst-badge[data-state=\"suitable\"]{background:#e2f4e9;color:#16603f}\n.lst-widget .lst-badge[data-state=\"borderline\"]{background:#fff1d6;color:#815206}\n.lst-widget .lst-badge[data-state=\"slow\"]{background:#fbe9e6;color:#963e33}\n.lst-widget .lst-note{margin:18px 0 0;color:var(--lst-muted);font-size:12px}\n@media(max-width:540px){.lst-widget{padding:22px 16px;border-radius:18px}.lst-widget .lst-stats{gap:10px}.lst-widget .lst-stat{padding:16px 12px}.lst-widget .lst-unit{display:block;margin-left:0}.lst-widget th,.lst-widget td{padding:12px 10px}.lst-widget table{min-width:465px}.lst-widget .lst-value{font-size:32px}}\n.lst-widget .lst-tier th {\n  padding: 12px 18px 8px;\n  background: transparent;\n  color: var(--lst-muted);\n  font-size: 13px;\n  font-weight: 500;\n  letter-spacing: normal;\n  text-transform: none;\n  border-top: 1px solid #eadfe3;\n  border-bottom: 1px solid #eadfe3;\n}\n.lst-widget tbody:first-of-type .lst-tier th{border-top:0}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(function () {\n  'use strict';\n\n  \/\/ EDIT TRANSLATIONS HERE. All interface text, including errors and ARIA labels.\n  const translations = {\n    \"en\": {\n      \"widgetLabel\": \"Upload speed test for live sports streaming\",\n      \"eyebrow\": \"Before you go live\",\n      \"title\": \"Find the quality your connection can handle.\",\n      \"intro\": \"Check your upload speed and see which streaming quality you can go live in. Test on the same phone and network you'll be streaming from at the venue.\",\n      \"start\": \"Test my connection\",\n      \"cancel\": \"Cancel\",\n      \"progressLabel\": \"Test progress\",\n      \"ready\": \"Ready when you are. Close any apps uploading in the background first.\",\n      \"budgetLabel\": \"Available for streaming\",\n      \"budgetNote\": \"{usable}% of your slowest reading\",\n      \"uploadLabel\": \"Measured upload\",\n      \"waiting\": \"Waiting for your test\",\n      \"tableRegion\": \"Streaming qualities; swipe sideways on small screens\",\n      \"tableCaption\": \"Streaming qualities\",\n      \"modeColumn\": \"Quality\",\n      \"resultColumn\": \"Your result\",\n      \"videoColumn\": \"Video bitrate\",\n      \"neededColumn\": \"Upload needed*\",\n      \"footnote\": \"*Includes {spare}% headroom so the stream holds up when the connection dips.\",\n      \"modeHd30\": \"HD @ 30\",\n      \"modeHd60\": \"HD @ 60\",\n      \"modeFullHd30\": \"Full HD @ 30\",\n      \"modeFullHd60\": \"Full HD @ 60\",\n      \"resolution\": \"{width} \u00d7 {height} \u00b7 {fps} fps\",\n      \"notTested\": \"Not tested\",\n      \"suitable\": \"Good to go\",\n      \"borderline\": \"Tight\",\n      \"slow\": \"Too slow\",\n      \"busy\": \"Another test is already running. Wait for it to finish.\",\n      \"keepVisible\": \"Keep this page open while the test runs.\",\n      \"testing\": \"Testing\u2026\",\n      \"inProgress\": \"Test running\",\n      \"warmup\": \"Getting the connection ready\u2026 Keep this page open.\",\n      \"measuring\": \"Measuring {current} of {count}\u2026\",\n      \"averageNote\": \"Average of {count} measurements\",\n      \"bestPreset\": \"Best quality for your connection: {mode}.\",\n      \"noPreset\": \"Your connection isn't fast enough even for the lowest quality. Try another network or move closer to the router.\",\n      \"varied\": \"Your speed jumped around a lot. Run the test again before you pick a quality.\",\n      \"shortTest\": \"The test was short, so it can't tell you whether the connection will hold for a full match.\",\n      \"complete\": \"Done. Readings: {min}\u2013{max} Mbps. Data used: {size} MB.\",\n      \"noResult\": \"No result\",\n      \"cancelled\": \"Test cancelled. No recommendation was calculated.\",\n      \"hidden\": \"The test stopped because you left this page. Stay on the page and try again.\",\n      \"limit\": \"The test took longer than {seconds} seconds. Check your connection and try again.\",\n      \"failed\": \"The test didn't finish. Please try again.\",\n      \"again\": \"Test again\",\n      \"unsupported\": \"This browser can't run the test. Open the page in an up-to-date browser over HTTPS.\",\n      \"httpError\": \"The test server returned HTTP {status}. Please try again later.\",\n      \"timingError\": \"The measurement wasn't valid. Please try again.\",\n      \"timeout\": \"An upload timed out. Your connection may be very slow, or the test service may be down. Please try again.\",\n      \"networkError\": \"Couldn't reach the test service. Check your connection \u2014 an ad blocker, your network's rules, or the service itself may be blocking it.\",\n      \"tierBetting\": \"Betting\",\n      \"tierNormal\": \"Standard\",\n      \"tierPremium\": \"Premium\",\n      \"modeSd30\": \"SD @ 30\",\n      \"unitMbps\": \"Mbps\",\n      \"emptyValue\": \"\u2014\"\n    },\n    \"sk\": {\n      \"widgetLabel\": \"Test r\u00fdchlosti uploadu pre \u017eiv\u00e9 \u0161portov\u00e9 prenosy\",\n      \"eyebrow\": \"Pred vysielan\u00edm na\u017eivo\",\n      \"title\": \"N\u00e1jdite kvalitu, ktor\u00fa va\u0161e pripojenie utiahne.\",\n      \"intro\": \"Otestujte r\u00fdchlos\u0165 uploadu a zistite, v akej kvalite m\u00f4\u017eete vysiela\u0165. Testujte z toho ist\u00e9ho telef\u00f3nu a siete, z ktor\u00fdch budete vysiela\u0165 priamo na mieste.\",\n      \"start\": \"Otestova\u0165 pripojenie\",\n      \"cancel\": \"Zru\u0161i\u0165\",\n      \"progressLabel\": \"Priebeh testu\",\n      \"ready\": \"M\u00f4\u017eete za\u010da\u0165. Najprv zatvorte aplik\u00e1cie, ktor\u00e9 na pozad\u00ed odosielaj\u00fa d\u00e1ta.\",\n      \"budgetLabel\": \"K dispoz\u00edcii na vysielanie\",\n      \"budgetNote\": \"{usable} % z najpomal\u0161ieho merania\",\n      \"uploadLabel\": \"Nameran\u00fd upload\",\n      \"waiting\": \"\u010cak\u00e1 sa na test\",\n      \"tableRegion\": \"Kvality vysielania; na mal\u00fdch obrazovk\u00e1ch pos\u00favajte do strany\",\n      \"tableCaption\": \"Kvality vysielania\",\n      \"modeColumn\": \"Kvalita\",\n      \"resultColumn\": \"V\u00e1\u0161 v\u00fdsledok\",\n      \"videoColumn\": \"D\u00e1tov\u00fd tok videa\",\n      \"neededColumn\": \"Potrebn\u00fd upload*\",\n      \"footnote\": \"*Zah\u0155\u0148a {spare} % rezervu, aby stream vydr\u017eal aj v\u00fdkyvy pripojenia.\",\n      \"modeHd30\": \"HD @ 30\",\n      \"modeHd60\": \"HD @ 60\",\n      \"modeFullHd30\": \"Full HD @ 30\",\n      \"modeFullHd60\": \"Full HD @ 60\",\n      \"resolution\": \"{width} \u00d7 {height} \u00b7 {fps} fps\",\n      \"notTested\": \"Netestovan\u00e9\",\n      \"suitable\": \"Zvl\u00e1dne to\",\n      \"borderline\": \"Tesn\u00e9\",\n      \"slow\": \"Nesta\u010d\u00ed\",\n      \"busy\": \"U\u017e prebieha in\u00fd test. Po\u010dkajte, k\u00fdm skon\u010d\u00ed.\",\n      \"keepVisible\": \"Po\u010das testu nechajte t\u00fato str\u00e1nku otvoren\u00fa.\",\n      \"testing\": \"Testuje sa\u2026\",\n      \"inProgress\": \"Prebieha test\",\n      \"warmup\": \"Pripravuje sa pripojenie\u2026 Nechajte str\u00e1nku otvoren\u00fa.\",\n      \"measuring\": \"Meranie {current} z {count}\u2026\",\n      \"averageNote\": \"Priemer z {count} meran\u00ed\",\n      \"bestPreset\": \"Najvy\u0161\u0161ia kvalita pre va\u0161e pripojenie: {mode}.\",\n      \"noPreset\": \"Pripojenie nesta\u010d\u00ed ani na najni\u017e\u0161iu kvalitu. Sk\u00faste in\u00fa sie\u0165 alebo sa pribl\u00ed\u017ete k routeru.\",\n      \"varied\": \"R\u00fdchlos\u0165 v\u00fdrazne kol\u00edsala. Pred v\u00fdberom kvality test zopakujte.\",\n      \"shortTest\": \"Test bol kr\u00e1tky, tak\u017ee nepovie, \u010di pripojenie vydr\u017e\u00ed cel\u00fd z\u00e1pas.\",\n      \"complete\": \"Hotovo. Merania: {min}\u2013{max} Mbps. Prenesen\u00e9 d\u00e1ta: {size} MB.\",\n      \"noResult\": \"Bez v\u00fdsledku\",\n      \"cancelled\": \"Test zru\u0161en\u00fd. Odpor\u00fa\u010danie sa nevypo\u010d\u00edtalo.\",\n      \"hidden\": \"Test sa zastavil, preto\u017ee ste opustili str\u00e1nku. Zosta\u0148te na nej a sk\u00faste to znova.\",\n      \"limit\": \"Test trval dlh\u0161ie ako {seconds} sek\u00fand. Skontrolujte pripojenie a sk\u00faste to znova.\",\n      \"failed\": \"Test sa nedokon\u010dil. Sk\u00faste to znova.\",\n      \"again\": \"Testova\u0165 znova\",\n      \"unsupported\": \"Tento prehliada\u010d test nepodporuje. Otvorte str\u00e1nku v aktu\u00e1lnom prehliada\u010di cez HTTPS.\",\n      \"httpError\": \"Testovac\u00ed server vr\u00e1til HTTP {status}. Sk\u00faste to nesk\u00f4r.\",\n      \"timingError\": \"Meranie nebolo platn\u00e9. Sk\u00faste to znova.\",\n      \"timeout\": \"Vypr\u0161al \u010dasov\u00fd limit odosielania. Pripojenie m\u00f4\u017ee by\u0165 ve\u013emi pomal\u00e9 alebo je testovacia slu\u017eba nedostupn\u00e1. Sk\u00faste to znova.\",\n      \"networkError\": \"Testovacia slu\u017eba je nedostupn\u00e1. Skontrolujte pripojenie \u2013 pr\u00edstup m\u00f4\u017ee blokova\u0165 blokova\u010d rekl\u00e1m, pravidl\u00e1 siete alebo samotn\u00e1 slu\u017eba.\",\n      \"tierBetting\": \"St\u00e1vkovanie\",\n      \"tierNormal\": \"\u0160tandard\",\n      \"tierPremium\": \"Premium\",\n      \"modeSd30\": \"SD @ 30\",\n      \"unitMbps\": \"Mbps\",\n      \"emptyValue\": \"\u2014\"\n    },\n    \"cs\": {\n      \"widgetLabel\": \"Test rychlosti uploadu pro \u017eiv\u00e9 sportovn\u00ed p\u0159enosy\",\n      \"eyebrow\": \"P\u0159ed \u017eiv\u00fdm p\u0159enosem\",\n      \"title\": \"Najd\u011bte kvalitu, kterou va\u0161e p\u0159ipojen\u00ed ut\u00e1hne.\",\n      \"intro\": \"Otestujte rychlost uploadu a zjist\u011bte, v jak\u00e9 kvalit\u011b m\u016f\u017eete vys\u00edlat. Testujte ze stejn\u00e9ho telefonu a s\u00edt\u011b, ze kter\u00fdch budete vys\u00edlat p\u0159\u00edmo na m\u00edst\u011b.\",\n      \"start\": \"Otestovat p\u0159ipojen\u00ed\",\n      \"cancel\": \"Zru\u0161it\",\n      \"progressLabel\": \"Pr\u016fb\u011bh testu\",\n      \"ready\": \"M\u016f\u017eete za\u010d\u00edt. Nejd\u0159\u00edv zav\u0159ete aplikace, kter\u00e9 na pozad\u00ed odes\u00edlaj\u00ed data.\",\n      \"budgetLabel\": \"K dispozici pro p\u0159enos\",\n      \"budgetNote\": \"{usable} % z nejpomalej\u0161\u00edho m\u011b\u0159en\u00ed\",\n      \"uploadLabel\": \"Nam\u011b\u0159en\u00fd upload\",\n      \"waiting\": \"\u010cek\u00e1 se na test\",\n      \"tableRegion\": \"Kvality p\u0159enosu; na mal\u00fdch obrazovk\u00e1ch posouvejte do strany\",\n      \"tableCaption\": \"Kvality p\u0159enosu\",\n      \"modeColumn\": \"Kvalita\",\n      \"resultColumn\": \"V\u00e1\u0161 v\u00fdsledek\",\n      \"videoColumn\": \"Datov\u00fd tok videa\",\n      \"neededColumn\": \"Pot\u0159ebn\u00fd upload*\",\n      \"footnote\": \"*Zahrnuje {spare} % rezervu, aby p\u0159enos vydr\u017eel i v\u00fdkyvy p\u0159ipojen\u00ed.\",\n      \"modeHd30\": \"HD @ 30\",\n      \"modeHd60\": \"HD @ 60\",\n      \"modeFullHd30\": \"Full HD @ 30\",\n      \"modeFullHd60\": \"Full HD @ 60\",\n      \"resolution\": \"{width} \u00d7 {height} \u00b7 {fps} fps\",\n      \"notTested\": \"Netestov\u00e1no\",\n      \"suitable\": \"Zvl\u00e1dne to\",\n      \"borderline\": \"T\u011bsn\u00e9\",\n      \"slow\": \"Nesta\u010d\u00ed\",\n      \"busy\": \"U\u017e prob\u00edh\u00e1 jin\u00fd test. Po\u010dkejte, a\u017e skon\u010d\u00ed.\",\n      \"keepVisible\": \"B\u011bhem testu nechte tuto str\u00e1nku otev\u0159enou.\",\n      \"testing\": \"Testov\u00e1n\u00ed\u2026\",\n      \"inProgress\": \"Prob\u00edh\u00e1 test\",\n      \"warmup\": \"P\u0159ipravuje se p\u0159ipojen\u00ed\u2026 Nechte str\u00e1nku otev\u0159enou.\",\n      \"measuring\": \"M\u011b\u0159en\u00ed {current} z {count}\u2026\",\n      \"averageNote\": \"Pr\u016fm\u011br z {count} m\u011b\u0159en\u00ed\",\n      \"bestPreset\": \"Nejvy\u0161\u0161\u00ed kvalita pro va\u0161e p\u0159ipojen\u00ed: {mode}.\",\n      \"noPreset\": \"P\u0159ipojen\u00ed nesta\u010d\u00ed ani na nejni\u017e\u0161\u00ed kvalitu. Zkuste jinou s\u00ed\u0165 nebo se p\u0159ibli\u017ete k routeru.\",\n      \"varied\": \"Rychlost v\u00fdrazn\u011b kol\u00edsala. P\u0159ed v\u00fdb\u011brem kvality test zopakujte.\",\n      \"shortTest\": \"Test byl kr\u00e1tk\u00fd, tak\u017ee ne\u0159ekne, jestli p\u0159ipojen\u00ed vydr\u017e\u00ed cel\u00fd z\u00e1pas.\",\n      \"complete\": \"Hotovo. M\u011b\u0159en\u00ed: {min}\u2013{max} Mbps. P\u0159enesen\u00e1 data: {size} MB.\",\n      \"noResult\": \"Bez v\u00fdsledku\",\n      \"cancelled\": \"Test zru\u0161en. Doporu\u010den\u00ed se nevypo\u010d\u00edtalo.\",\n      \"hidden\": \"Test se zastavil, proto\u017ee jste opustili str\u00e1nku. Z\u016fsta\u0148te na n\u00ed a zkuste to znovu.\",\n      \"limit\": \"Test trval d\u00e9le ne\u017e {seconds} sekund. Zkontrolujte p\u0159ipojen\u00ed a zkuste to znovu.\",\n      \"failed\": \"Test se nedokon\u010dil. Zkuste to znovu.\",\n      \"again\": \"Testovat znovu\",\n      \"unsupported\": \"Tento prohl\u00ed\u017ee\u010d test nepodporuje. Otev\u0159ete str\u00e1nku v aktu\u00e1ln\u00edm prohl\u00ed\u017ee\u010di p\u0159es HTTPS.\",\n      \"httpError\": \"Testovac\u00ed server vr\u00e1til HTTP {status}. Zkuste to pozd\u011bji.\",\n      \"timingError\": \"M\u011b\u0159en\u00ed nebylo platn\u00e9. Zkuste to znovu.\",\n      \"timeout\": \"Vypr\u0161el \u010dasov\u00fd limit odes\u00edl\u00e1n\u00ed. P\u0159ipojen\u00ed m\u016f\u017ee b\u00fdt velmi pomal\u00e9 nebo je testovac\u00ed slu\u017eba nedostupn\u00e1. Zkuste to znovu.\",\n      \"networkError\": \"Testovac\u00ed slu\u017eba je nedostupn\u00e1. Zkontrolujte p\u0159ipojen\u00ed \u2013 p\u0159\u00edstup m\u016f\u017ee blokovat blokova\u010d reklam, pravidla s\u00edt\u011b nebo samotn\u00e1 slu\u017eba.\",\n      \"tierBetting\": \"S\u00e1zen\u00ed\",\n      \"tierNormal\": \"Standard\",\n      \"tierPremium\": \"Premium\",\n      \"modeSd30\": \"SD @ 30\",\n      \"unitMbps\": \"Mbps\",\n      \"emptyValue\": \"\u2014\"\n    },\n    \"de\": {\n      \"widgetLabel\": \"Upload-Speedtest f\u00fcr Sport-Livestreams\",\n      \"eyebrow\": \"Vor dem Livestream\",\n      \"title\": \"Finde die Qualit\u00e4t, die deine Verbindung schafft.\",\n      \"intro\": \"Teste deinen Upload und sieh, in welcher Qualit\u00e4t du live gehen kannst. Teste mit dem Handy und dem Netz, mit denen du sp\u00e4ter vor Ort streamst.\",\n      \"start\": \"Verbindung testen\",\n      \"cancel\": \"Abbrechen\",\n      \"progressLabel\": \"Testfortschritt\",\n      \"ready\": \"Kann losgehen. Schlie\u00dfe vorher Apps, die im Hintergrund hochladen.\",\n      \"budgetLabel\": \"Verf\u00fcgbar f\u00fcrs Streaming\",\n      \"budgetNote\": \"{usable} % der langsamsten Messung\",\n      \"uploadLabel\": \"Gemessener Upload\",\n      \"waiting\": \"Warten auf deinen Test\",\n      \"tableRegion\": \"Streaming-Qualit\u00e4ten; auf kleinen Bildschirmen seitlich wischen\",\n      \"tableCaption\": \"Streaming-Qualit\u00e4ten\",\n      \"modeColumn\": \"Qualit\u00e4t\",\n      \"resultColumn\": \"Dein Ergebnis\",\n      \"videoColumn\": \"Video-Bitrate\",\n      \"neededColumn\": \"Ben\u00f6tigter Upload*\",\n      \"footnote\": \"*Enth\u00e4lt {spare} % Reserve, damit der Stream auch bei Schwankungen stabil bleibt.\",\n      \"modeHd30\": \"HD @ 30\",\n      \"modeHd60\": \"HD @ 60\",\n      \"modeFullHd30\": \"Full HD @ 30\",\n      \"modeFullHd60\": \"Full HD @ 60\",\n      \"resolution\": \"{width} \u00d7 {height} \u00b7 {fps} fps\",\n      \"notTested\": \"Nicht getestet\",\n      \"suitable\": \"Passt\",\n      \"borderline\": \"Knapp\",\n      \"slow\": \"Zu langsam\",\n      \"busy\": \"Es l\u00e4uft bereits ein Test. Warte, bis er fertig ist.\",\n      \"keepVisible\": \"Lass diese Seite w\u00e4hrend des Tests ge\u00f6ffnet.\",\n      \"testing\": \"Test l\u00e4uft\u2026\",\n      \"inProgress\": \"Test l\u00e4uft\",\n      \"warmup\": \"Verbindung wird vorbereitet\u2026 Lass die Seite ge\u00f6ffnet.\",\n      \"measuring\": \"Messung {current} von {count}\u2026\",\n      \"averageNote\": \"Durchschnitt aus {count} Messungen\",\n      \"bestPreset\": \"Beste Qualit\u00e4t f\u00fcr deine Verbindung: {mode}.\",\n      \"noPreset\": \"Deine Verbindung reicht nicht einmal f\u00fcr die niedrigste Qualit\u00e4t. Probiere ein anderes Netz oder geh n\u00e4her an den Router.\",\n      \"varied\": \"Die Geschwindigkeit hat stark geschwankt. Wiederhole den Test, bevor du dich f\u00fcr eine Qualit\u00e4t entscheidest.\",\n      \"shortTest\": \"Der Test war kurz \u2013 er sagt nichts dar\u00fcber, ob die Verbindung ein ganzes Spiel durchh\u00e4lt.\",\n      \"complete\": \"Fertig. Messwerte: {min}\u2013{max} Mbps. \u00dcbertragene Daten: {size} MB.\",\n      \"noResult\": \"Kein Ergebnis\",\n      \"cancelled\": \"Test abgebrochen. Es wurde keine Empfehlung berechnet.\",\n      \"hidden\": \"Der Test wurde gestoppt, weil du die Seite verlassen hast. Bleib auf der Seite und versuch es noch einmal.\",\n      \"limit\": \"Der Test hat l\u00e4nger als {seconds} Sekunden gedauert. Pr\u00fcfe deine Verbindung und versuch es noch einmal.\",\n      \"failed\": \"Der Test wurde nicht abgeschlossen. Bitte versuch es noch einmal.\",\n      \"again\": \"Erneut testen\",\n      \"unsupported\": \"Dieser Browser unterst\u00fctzt den Test nicht. \u00d6ffne die Seite in einem aktuellen Browser \u00fcber HTTPS.\",\n      \"httpError\": \"Der Testserver hat HTTP {status} zur\u00fcckgegeben. Bitte versuch es sp\u00e4ter noch einmal.\",\n      \"timingError\": \"Die Messung war ung\u00fcltig. Bitte versuch es noch einmal.\",\n      \"timeout\": \"Zeit\u00fcberschreitung beim Upload. Deine Verbindung ist m\u00f6glicherweise sehr langsam oder der Testdienst nicht erreichbar. Bitte versuch es noch einmal.\",\n      \"networkError\": \"Der Testdienst ist nicht erreichbar. Pr\u00fcfe deine Verbindung \u2013 ein Blocker, die Regeln deines Netzwerks oder der Dienst selbst k\u00f6nnen den Zugriff verhindern.\",\n      \"tierBetting\": \"Wetten\",\n      \"tierNormal\": \"Standard\",\n      \"tierPremium\": \"Premium\",\n      \"modeSd30\": \"SD @ 30\",\n      \"unitMbps\": \"Mbps\",\n      \"emptyValue\": \"\u2014\"\n    },\n    \"pl\": {\n      \"widgetLabel\": \"Test pr\u0119dko\u015bci wysy\u0142ania do transmisji sportowych na \u017cywo\",\n      \"eyebrow\": \"Zanim wejdziesz na \u017cywo\",\n      \"title\": \"Sprawd\u017a, jak\u0105 jako\u015b\u0107 ud\u017awignie twoje \u0142\u0105cze.\",\n      \"intro\": \"Zmierz pr\u0119dko\u015b\u0107 wysy\u0142ania i zobacz, w jakiej jako\u015bci mo\u017cesz transmitowa\u0107. Testuj z tego samego telefonu i sieci, z kt\u00f3rych b\u0119dziesz nadawa\u0107 na obiekcie.\",\n      \"start\": \"Sprawd\u017a po\u0142\u0105czenie\",\n      \"cancel\": \"Anuluj\",\n      \"progressLabel\": \"Post\u0119p testu\",\n      \"ready\": \"Mo\u017cesz zaczyna\u0107. Najpierw zamknij aplikacje, kt\u00f3re wysy\u0142aj\u0105 dane w tle.\",\n      \"budgetLabel\": \"Dost\u0119pne na transmisj\u0119\",\n      \"budgetNote\": \"{usable}% najwolniejszego pomiaru\",\n      \"uploadLabel\": \"Zmierzone wysy\u0142anie\",\n      \"waiting\": \"Oczekiwanie na test\",\n      \"tableRegion\": \"Jako\u015bci transmisji; na ma\u0142ych ekranach przewijaj w bok\",\n      \"tableCaption\": \"Jako\u015bci transmisji\",\n      \"modeColumn\": \"Jako\u015b\u0107\",\n      \"resultColumn\": \"Tw\u00f3j wynik\",\n      \"videoColumn\": \"Bitrate wideo\",\n      \"neededColumn\": \"Wymagane wysy\u0142anie*\",\n      \"footnote\": \"*Zawiera {spare}% zapasu, \u017ceby transmisja przetrwa\u0142a wahania \u0142\u0105cza.\",\n      \"modeHd30\": \"HD @ 30\",\n      \"modeHd60\": \"HD @ 60\",\n      \"modeFullHd30\": \"Full HD @ 30\",\n      \"modeFullHd60\": \"Full HD @ 60\",\n      \"resolution\": \"{width} \u00d7 {height} \u00b7 {fps} fps\",\n      \"notTested\": \"Nie sprawdzono\",\n      \"suitable\": \"Da rad\u0119\",\n      \"borderline\": \"Na styk\",\n      \"slow\": \"Za wolno\",\n      \"busy\": \"Inny test ju\u017c trwa. Poczekaj, a\u017c si\u0119 sko\u0144czy.\",\n      \"keepVisible\": \"Nie zamykaj tej strony w trakcie testu.\",\n      \"testing\": \"Testowanie\u2026\",\n      \"inProgress\": \"Test w toku\",\n      \"warmup\": \"Przygotowywanie po\u0142\u0105czenia\u2026 Nie zamykaj tej strony.\",\n      \"measuring\": \"Pomiar {current} z {count}\u2026\",\n      \"averageNote\": \"\u015arednia z {count} pomiar\u00f3w\",\n      \"bestPreset\": \"Najwy\u017csza jako\u015b\u0107 dla twojego \u0142\u0105cza: {mode}.\",\n      \"noPreset\": \"\u0141\u0105cze nie wystarcza nawet na najni\u017csz\u0105 jako\u015b\u0107. Spr\u00f3buj innej sieci albo podejd\u017a bli\u017cej routera.\",\n      \"varied\": \"Pr\u0119dko\u015b\u0107 mocno skaka\u0142a. Powt\u00f3rz test, zanim wybierzesz jako\u015b\u0107.\",\n      \"shortTest\": \"Test by\u0142 kr\u00f3tki \u2013 nie powie, czy \u0142\u0105cze wytrzyma ca\u0142y mecz.\",\n      \"complete\": \"Gotowe. Pomiary: {min}\u2013{max} Mbps. Zu\u017cyte dane: {size} MB.\",\n      \"noResult\": \"Brak wyniku\",\n      \"cancelled\": \"Test anulowany. Nie wyznaczono rekomendacji.\",\n      \"hidden\": \"Test przerwany, bo opu\u015bci\u0142e\u015b t\u0119 stron\u0119. Zosta\u0144 na niej i spr\u00f3buj ponownie.\",\n      \"limit\": \"Test trwa\u0142 d\u0142u\u017cej ni\u017c {seconds} s. Sprawd\u017a po\u0142\u0105czenie i spr\u00f3buj ponownie.\",\n      \"failed\": \"Test si\u0119 nie doko\u0144czy\u0142. Spr\u00f3buj ponownie.\",\n      \"again\": \"Testuj ponownie\",\n      \"unsupported\": \"Ta przegl\u0105darka nie obs\u0142uguje testu. Otw\u00f3rz stron\u0119 w aktualnej przegl\u0105darce przez HTTPS.\",\n      \"httpError\": \"Serwer testowy zwr\u00f3ci\u0142 HTTP {status}. Spr\u00f3buj p\u00f3\u017aniej.\",\n      \"timingError\": \"Pomiar by\u0142 nieprawid\u0142owy. Spr\u00f3buj ponownie.\",\n      \"timeout\": \"Up\u0142yn\u0105\u0142 limit czasu wysy\u0142ania. \u0141\u0105cze mo\u017ce by\u0107 bardzo wolne albo us\u0142uga testowa niedost\u0119pna. Spr\u00f3buj ponownie.\",\n      \"networkError\": \"Nie mo\u017cna po\u0142\u0105czy\u0107 si\u0119 z us\u0142ug\u0105 testow\u0105. Sprawd\u017a po\u0142\u0105czenie \u2013 dost\u0119p mo\u017ce blokowa\u0107 wtyczka, zasady sieci albo sama us\u0142uga.\",\n      \"tierBetting\": \"Zak\u0142ady\",\n      \"tierNormal\": \"Standard\",\n      \"tierPremium\": \"Premium\",\n      \"modeSd30\": \"SD @ 30\",\n      \"unitMbps\": \"Mbps\",\n      \"emptyValue\": \"\u2014\"\n    },\n    \"pt\": {\n      \"widgetLabel\": \"Teste de velocidade de envio para transmiss\u00f5es desportivas em direto\",\n      \"eyebrow\": \"Antes de entrar em direto\",\n      \"title\": \"Descubra a qualidade que a sua liga\u00e7\u00e3o aguenta.\",\n      \"intro\": \"Teste a velocidade de envio e veja em que qualidade pode transmitir. Fa\u00e7a o teste com o telem\u00f3vel e a rede que vai usar no recinto.\",\n      \"start\": \"Testar liga\u00e7\u00e3o\",\n      \"cancel\": \"Cancelar\",\n      \"progressLabel\": \"Progresso do teste\",\n      \"ready\": \"Pode come\u00e7ar. Feche primeiro as apps que enviam dados em segundo plano.\",\n      \"budgetLabel\": \"Dispon\u00edvel para transmitir\",\n      \"budgetNote\": \"{usable}% da medi\u00e7\u00e3o mais lenta\",\n      \"uploadLabel\": \"Envio medido\",\n      \"waiting\": \"A aguardar o teste\",\n      \"tableRegion\": \"Qualidades de transmiss\u00e3o; em ecr\u00e3s pequenos, deslize para o lado\",\n      \"tableCaption\": \"Qualidades de transmiss\u00e3o\",\n      \"modeColumn\": \"Qualidade\",\n      \"resultColumn\": \"O seu resultado\",\n      \"videoColumn\": \"D\u00e9bito de v\u00eddeo\",\n      \"neededColumn\": \"Envio necess\u00e1rio*\",\n      \"footnote\": \"*Inclui {spare}% de margem para a transmiss\u00e3o aguentar as oscila\u00e7\u00f5es da liga\u00e7\u00e3o.\",\n      \"modeHd30\": \"HD @ 30\",\n      \"modeHd60\": \"HD @ 60\",\n      \"modeFullHd30\": \"Full HD @ 30\",\n      \"modeFullHd60\": \"Full HD @ 60\",\n      \"resolution\": \"{width} \u00d7 {height} \u00b7 {fps} fps\",\n      \"notTested\": \"N\u00e3o testado\",\n      \"suitable\": \"Aguenta\",\n      \"borderline\": \"No limite\",\n      \"slow\": \"Insuficiente\",\n      \"busy\": \"J\u00e1 est\u00e1 a decorrer outro teste. Aguarde que termine.\",\n      \"keepVisible\": \"Mantenha esta p\u00e1gina aberta durante o teste.\",\n      \"testing\": \"A testar\u2026\",\n      \"inProgress\": \"Teste a decorrer\",\n      \"warmup\": \"A preparar a liga\u00e7\u00e3o\u2026 Mantenha esta p\u00e1gina aberta.\",\n      \"measuring\": \"Medi\u00e7\u00e3o {current} de {count}\u2026\",\n      \"averageNote\": \"M\u00e9dia de {count} medi\u00e7\u00f5es\",\n      \"bestPreset\": \"Melhor qualidade para a sua liga\u00e7\u00e3o: {mode}.\",\n      \"noPreset\": \"A liga\u00e7\u00e3o n\u00e3o chega nem para a qualidade mais baixa. Experimente outra rede ou aproxime-se do router.\",\n      \"varied\": \"A velocidade oscilou bastante. Repita o teste antes de escolher a qualidade.\",\n      \"shortTest\": \"O teste foi curto \u2014 n\u00e3o diz se a liga\u00e7\u00e3o aguenta um jogo inteiro.\",\n      \"complete\": \"Conclu\u00eddo. Medi\u00e7\u00f5es: {min}\u2013{max} Mbps. Dados usados: {size} MB.\",\n      \"noResult\": \"Sem resultado\",\n      \"cancelled\": \"Teste cancelado. N\u00e3o foi calculada nenhuma recomenda\u00e7\u00e3o.\",\n      \"hidden\": \"O teste parou porque saiu da p\u00e1gina. Fique na p\u00e1gina e tente novamente.\",\n      \"limit\": \"O teste demorou mais de {seconds} segundos. Verifique a liga\u00e7\u00e3o e tente novamente.\",\n      \"failed\": \"O teste n\u00e3o terminou. Tente novamente.\",\n      \"again\": \"Testar novamente\",\n      \"unsupported\": \"Este navegador n\u00e3o suporta o teste. Abra a p\u00e1gina num navegador atualizado atrav\u00e9s de HTTPS.\",\n      \"httpError\": \"O servidor de teste devolveu HTTP {status}. Tente mais tarde.\",\n      \"timingError\": \"A medi\u00e7\u00e3o n\u00e3o foi v\u00e1lida. Tente novamente.\",\n      \"timeout\": \"O envio excedeu o tempo limite. A liga\u00e7\u00e3o pode estar muito lenta ou o servi\u00e7o de teste indispon\u00edvel. Tente novamente.\",\n      \"networkError\": \"N\u00e3o foi poss\u00edvel aceder ao servi\u00e7o de teste. Verifique a liga\u00e7\u00e3o \u2014 um bloqueador, as regras da rede ou o pr\u00f3prio servi\u00e7o podem estar a impedir o acesso.\",\n      \"tierBetting\": \"Apostas\",\n      \"tierNormal\": \"Normal\",\n      \"tierPremium\": \"Premium\",\n      \"modeSd30\": \"SD @ 30\",\n      \"unitMbps\": \"Mbps\",\n      \"emptyValue\": \"\u2014\"\n    },\n    \"br\": {\n      \"widgetLabel\": \"Teste de upload para transmiss\u00f5es esportivas ao vivo\",\n      \"eyebrow\": \"Antes de entrar ao vivo\",\n      \"title\": \"Descubra a qualidade que sua conex\u00e3o aguenta.\",\n      \"intro\": \"Teste seu upload e veja em qual qualidade d\u00e1 para transmitir. Fa\u00e7a o teste com o celular e a rede que voc\u00ea vai usar no local do jogo.\",\n      \"start\": \"Testar conex\u00e3o\",\n      \"cancel\": \"Cancelar\",\n      \"progressLabel\": \"Progresso do teste\",\n      \"ready\": \"\u00c9 s\u00f3 come\u00e7ar. Antes, feche os apps que enviam dados em segundo plano.\",\n      \"budgetLabel\": \"Dispon\u00edvel para transmitir\",\n      \"budgetNote\": \"{usable}% da medi\u00e7\u00e3o mais lenta\",\n      \"uploadLabel\": \"Upload medido\",\n      \"waiting\": \"Aguardando o teste\",\n      \"tableRegion\": \"Qualidades de transmiss\u00e3o; em telas pequenas, deslize para o lado\",\n      \"tableCaption\": \"Qualidades de transmiss\u00e3o\",\n      \"modeColumn\": \"Qualidade\",\n      \"resultColumn\": \"Seu resultado\",\n      \"videoColumn\": \"Bitrate de v\u00eddeo\",\n      \"neededColumn\": \"Upload necess\u00e1rio*\",\n      \"footnote\": \"*Inclui {spare}% de folga para a transmiss\u00e3o aguentar as oscila\u00e7\u00f5es da conex\u00e3o.\",\n      \"modeHd30\": \"HD @ 30\",\n      \"modeHd60\": \"HD @ 60\",\n      \"modeFullHd30\": \"Full HD @ 30\",\n      \"modeFullHd60\": \"Full HD @ 60\",\n      \"resolution\": \"{width} \u00d7 {height} \u00b7 {fps} fps\",\n      \"notTested\": \"N\u00e3o testado\",\n      \"suitable\": \"Aguenta\",\n      \"borderline\": \"No limite\",\n      \"slow\": \"N\u00e3o d\u00e1\",\n      \"busy\": \"J\u00e1 tem outro teste rodando. Espere ele terminar.\",\n      \"keepVisible\": \"Mantenha esta p\u00e1gina aberta durante o teste.\",\n      \"testing\": \"Testando\u2026\",\n      \"inProgress\": \"Teste em andamento\",\n      \"warmup\": \"Preparando a conex\u00e3o\u2026 Mantenha esta p\u00e1gina aberta.\",\n      \"measuring\": \"Medi\u00e7\u00e3o {current} de {count}\u2026\",\n      \"averageNote\": \"M\u00e9dia de {count} medi\u00e7\u00f5es\",\n      \"bestPreset\": \"Melhor qualidade para a sua conex\u00e3o: {mode}.\",\n      \"noPreset\": \"A conex\u00e3o n\u00e3o d\u00e1 nem para a qualidade mais baixa. Tente outra rede ou chegue mais perto do roteador.\",\n      \"varied\": \"A velocidade oscilou bastante. Repita o teste antes de escolher a qualidade.\",\n      \"shortTest\": \"O teste foi curto \u2014 ele n\u00e3o diz se a conex\u00e3o aguenta um jogo inteiro.\",\n      \"complete\": \"Pronto. Medi\u00e7\u00f5es: {min}\u2013{max} Mbps. Dados usados: {size} MB.\",\n      \"noResult\": \"Sem resultado\",\n      \"cancelled\": \"Teste cancelado. Nenhuma recomenda\u00e7\u00e3o foi calculada.\",\n      \"hidden\": \"O teste parou porque voc\u00ea saiu da p\u00e1gina. Fique na p\u00e1gina e tente de novo.\",\n      \"limit\": \"O teste passou de {seconds} segundos. Verifique sua conex\u00e3o e tente de novo.\",\n      \"failed\": \"O teste n\u00e3o terminou. Tente de novo.\",\n      \"again\": \"Testar de novo\",\n      \"unsupported\": \"Este navegador n\u00e3o suporta o teste. Abra a p\u00e1gina em um navegador atualizado via HTTPS.\",\n      \"httpError\": \"O servidor de teste retornou HTTP {status}. Tente mais tarde.\",\n      \"timingError\": \"A medi\u00e7\u00e3o n\u00e3o foi v\u00e1lida. Tente de novo.\",\n      \"timeout\": \"O upload excedeu o tempo limite. Sua conex\u00e3o pode estar muito lenta ou o servi\u00e7o de teste fora do ar. Tente de novo.\",\n      \"networkError\": \"N\u00e3o foi poss\u00edvel acessar o servi\u00e7o de teste. Verifique sua conex\u00e3o \u2014 um bloqueador, as regras da rede ou o pr\u00f3prio servi\u00e7o podem estar impedindo o acesso.\",\n      \"tierBetting\": \"Apostas\",\n      \"tierNormal\": \"Normal\",\n      \"tierPremium\": \"Premium\",\n      \"modeSd30\": \"SD @ 30\",\n      \"unitMbps\": \"Mbps\",\n      \"emptyValue\": \"\u2014\"\n    },\n    \"es\": {\n      \"widgetLabel\": \"Prueba de subida para retransmisiones deportivas en directo\",\n      \"eyebrow\": \"Antes de salir en directo\",\n      \"title\": \"Descubre la calidad que aguanta tu conexi\u00f3n.\",\n      \"intro\": \"Mide tu velocidad de subida y comprueba con qu\u00e9 calidad puedes retransmitir. Haz la prueba con el m\u00f3vil y la red que vas a usar en el campo.\",\n      \"start\": \"Probar conexi\u00f3n\",\n      \"cancel\": \"Cancelar\",\n      \"progressLabel\": \"Progreso de la prueba\",\n      \"ready\": \"Cuando quieras. Cierra antes las apps que suban datos en segundo plano.\",\n      \"budgetLabel\": \"Disponible para retransmitir\",\n      \"budgetNote\": \"{usable} % de la medici\u00f3n m\u00e1s lenta\",\n      \"uploadLabel\": \"Subida medida\",\n      \"waiting\": \"Esperando la prueba\",\n      \"tableRegion\": \"Calidades de retransmisi\u00f3n; en pantallas peque\u00f1as, desliza hacia el lado\",\n      \"tableCaption\": \"Calidades de retransmisi\u00f3n\",\n      \"modeColumn\": \"Calidad\",\n      \"resultColumn\": \"Tu resultado\",\n      \"videoColumn\": \"Tasa de bits de v\u00eddeo\",\n      \"neededColumn\": \"Subida necesaria*\",\n      \"footnote\": \"*Incluye un {spare} % de margen para que la retransmisi\u00f3n aguante los bajones de conexi\u00f3n.\",\n      \"modeHd30\": \"HD @ 30\",\n      \"modeHd60\": \"HD @ 60\",\n      \"modeFullHd30\": \"Full HD @ 30\",\n      \"modeFullHd60\": \"Full HD @ 60\",\n      \"resolution\": \"{width} \u00d7 {height} \u00b7 {fps} fps\",\n      \"notTested\": \"Sin probar\",\n      \"suitable\": \"Aguanta\",\n      \"borderline\": \"Al l\u00edmite\",\n      \"slow\": \"Insuficiente\",\n      \"busy\": \"Ya hay otra prueba en marcha. Espera a que termine.\",\n      \"keepVisible\": \"Mant\u00e9n esta p\u00e1gina abierta durante la prueba.\",\n      \"testing\": \"Probando\u2026\",\n      \"inProgress\": \"Prueba en curso\",\n      \"warmup\": \"Preparando la conexi\u00f3n\u2026 Mant\u00e9n esta p\u00e1gina abierta.\",\n      \"measuring\": \"Medici\u00f3n {current} de {count}\u2026\",\n      \"averageNote\": \"Media de {count} mediciones\",\n      \"bestPreset\": \"Mejor calidad para tu conexi\u00f3n: {mode}.\",\n      \"noPreset\": \"Tu conexi\u00f3n no llega ni a la calidad m\u00e1s baja. Prueba con otra red o ac\u00e9rcate al router.\",\n      \"varied\": \"La velocidad ha variado bastante. Repite la prueba antes de elegir calidad.\",\n      \"shortTest\": \"La prueba ha sido corta: no dice si la conexi\u00f3n aguantar\u00e1 un partido entero.\",\n      \"complete\": \"Listo. Mediciones: {min}\u2013{max} Mbps. Datos usados: {size} MB.\",\n      \"noResult\": \"Sin resultado\",\n      \"cancelled\": \"Prueba cancelada. No se ha calculado ninguna recomendaci\u00f3n.\",\n      \"hidden\": \"La prueba se detuvo porque saliste de la p\u00e1gina. Qu\u00e9date en ella e int\u00e9ntalo de nuevo.\",\n      \"limit\": \"La prueba ha superado los {seconds} segundos. Comprueba tu conexi\u00f3n e int\u00e9ntalo de nuevo.\",\n      \"failed\": \"La prueba no ha terminado. Int\u00e9ntalo de nuevo.\",\n      \"again\": \"Probar de nuevo\",\n      \"unsupported\": \"Este navegador no admite la prueba. Abre la p\u00e1gina en un navegador actualizado mediante HTTPS.\",\n      \"httpError\": \"El servidor de prueba ha devuelto HTTP {status}. Int\u00e9ntalo m\u00e1s tarde.\",\n      \"timingError\": \"La medici\u00f3n no ha sido v\u00e1lida. Int\u00e9ntalo de nuevo.\",\n      \"timeout\": \"La subida ha superado el tiempo l\u00edmite. Tu conexi\u00f3n puede ser muy lenta o el servicio de prueba estar ca\u00eddo. Int\u00e9ntalo de nuevo.\",\n      \"networkError\": \"No se ha podido acceder al servicio de prueba. Comprueba tu conexi\u00f3n: un bloqueador, las reglas de la red o el propio servicio pueden estar impidi\u00e9ndolo.\",\n      \"tierBetting\": \"Apuestas\",\n      \"tierNormal\": \"Normal\",\n      \"tierPremium\": \"Premium\",\n      \"modeSd30\": \"SD @ 30\",\n      \"unitMbps\": \"Mbps\",\n      \"emptyValue\": \"\u2014\"\n    },\n    \"it\": {\n      \"widgetLabel\": \"Test di upload per dirette sportive\",\n      \"eyebrow\": \"Prima della diretta\",\n      \"title\": \"Scopri la qualit\u00e0 che la tua connessione regge.\",\n      \"intro\": \"Misura il tuo upload e scopri con quale qualit\u00e0 puoi trasmettere. Fai il test con lo smartphone e la rete che userai sul campo.\",\n      \"start\": \"Prova la connessione\",\n      \"cancel\": \"Annulla\",\n      \"progressLabel\": \"Avanzamento del test\",\n      \"ready\": \"Quando vuoi. Prima chiudi le app che caricano dati in background.\",\n      \"budgetLabel\": \"Disponibile per la diretta\",\n      \"budgetNote\": \"{usable}% della misurazione pi\u00f9 lenta\",\n      \"uploadLabel\": \"Upload misurato\",\n      \"waiting\": \"In attesa del test\",\n      \"tableRegion\": \"Qualit\u00e0 di trasmissione; sugli schermi piccoli scorri lateralmente\",\n      \"tableCaption\": \"Qualit\u00e0 di trasmissione\",\n      \"modeColumn\": \"Qualit\u00e0\",\n      \"resultColumn\": \"Il tuo risultato\",\n      \"videoColumn\": \"Bitrate video\",\n      \"neededColumn\": \"Upload necessario*\",\n      \"footnote\": \"*Include un {spare}% di margine, cos\u00ec la diretta regge anche i cali di connessione.\",\n      \"modeHd30\": \"HD @ 30\",\n      \"modeHd60\": \"HD @ 60\",\n      \"modeFullHd30\": \"Full HD @ 30\",\n      \"modeFullHd60\": \"Full HD @ 60\",\n      \"resolution\": \"{width} \u00d7 {height} \u00b7 {fps} fps\",\n      \"notTested\": \"Non testato\",\n      \"suitable\": \"Regge\",\n      \"borderline\": \"Al limite\",\n      \"slow\": \"Non basta\",\n      \"busy\": \"C'\u00e8 gi\u00e0 un test in corso. Aspetta che finisca.\",\n      \"keepVisible\": \"Tieni questa pagina aperta durante il test.\",\n      \"testing\": \"Test in corso\u2026\",\n      \"inProgress\": \"Test in corso\",\n      \"warmup\": \"Preparazione della connessione\u2026 Tieni la pagina aperta.\",\n      \"measuring\": \"Misurazione {current} di {count}\u2026\",\n      \"averageNote\": \"Media di {count} misurazioni\",\n      \"bestPreset\": \"Qualit\u00e0 migliore per la tua connessione: {mode}.\",\n      \"noPreset\": \"La connessione non basta nemmeno per la qualit\u00e0 pi\u00f9 bassa. Prova un'altra rete o avvicinati al router.\",\n      \"varied\": \"La velocit\u00e0 ha oscillato parecchio. Ripeti il test prima di scegliere la qualit\u00e0.\",\n      \"shortTest\": \"Il test \u00e8 stato breve: non dice se la connessione regge una partita intera.\",\n      \"complete\": \"Fatto. Misurazioni: {min}\u2013{max} Mbps. Dati usati: {size} MB.\",\n      \"noResult\": \"Nessun risultato\",\n      \"cancelled\": \"Test annullato. Nessuna raccomandazione calcolata.\",\n      \"hidden\": \"Il test si \u00e8 interrotto perch\u00e9 hai lasciato la pagina. Rimani sulla pagina e riprova.\",\n      \"limit\": \"Il test ha superato {seconds} secondi. Controlla la connessione e riprova.\",\n      \"failed\": \"Il test non \u00e8 stato completato. Riprova.\",\n      \"again\": \"Ripeti il test\",\n      \"unsupported\": \"Questo browser non supporta il test. Apri la pagina in un browser aggiornato tramite HTTPS.\",\n      \"httpError\": \"Il server di test ha restituito HTTP {status}. Riprova pi\u00f9 tardi.\",\n      \"timingError\": \"La misurazione non \u00e8 valida. Riprova.\",\n      \"timeout\": \"L'upload ha superato il tempo limite. La connessione potrebbe essere molto lenta o il servizio di test non disponibile. Riprova.\",\n      \"networkError\": \"Impossibile raggiungere il servizio di test. Controlla la connessione: un blocco, le regole della rete o il servizio stesso potrebbero impedire l'accesso.\",\n      \"tierBetting\": \"Scommesse\",\n      \"tierNormal\": \"Normale\",\n      \"tierPremium\": \"Premium\",\n      \"modeSd30\": \"SD @ 30\",\n      \"unitMbps\": \"Mbps\",\n      \"emptyValue\": \"\u2014\"\n    }\n  };\n  \/\/ \"br\" is this widget's Brazilian Portuguese key. BCP 47 pages use \"pt-BR\".\n  translations[\"pt-br\"] = translations.br;\n\n  function getCurrentLang() {\n    const lang = (document.documentElement.lang || \"en\").toLowerCase();\n    \/\/ Try exact match first (e.g. \"pt-br\")\n    if (translations[lang]) {\n      return lang;\n    }\n    \/\/ Then try the base language (e.g. \"de-DE\" -> \"de\")\n    const baseLang = lang.split(\"-\")[0];\n    if (translations[baseLang]) {\n      return baseLang;\n    }\n    \/\/ Fallback\n    return \"en\";\n  }\n\n  let currentLang = 'en';\n  let currentLocale = 'en';\n  const locales = { en: 'en', sk: 'sk', cs: 'cs', de: 'de', pl: 'pl', pt: 'pt-PT', br: 'pt-BR', 'pt-br': 'pt-BR', es: 'es', it: 'it' };\n\n  function t(key, values) {\n    const translated = translations[currentLang] && translations[currentLang][key];\n    const template = typeof translated === 'string' ? translated : translations.en[key];\n    return template.replace(\/\\{(\\w+)\\}\/g, function (match, name) {\n      return values && Object.prototype.hasOwnProperty.call(values, name) ? String(values[name]) : match;\n    });\n  }\n\n  function formatNumber(value, digits) {\n    return new Intl.NumberFormat(currentLocale, {\n      minimumFractionDigits: digits === undefined ? 1 : digits,\n      maximumFractionDigits: digits === undefined ? 1 : digits,\n      useGrouping: false\n    }).format(value);\n  }\n\n  function formatSpeed(value) { return formatNumber(value) + ' ' + t('unitMbps'); }\n\n  function applyTranslations(root) {\n    const values = {\n      usable: formatNumber(CONFIG.usableFraction * 100, 0),\n      spare: formatNumber((1 - CONFIG.usableFraction) * 100, 0),\n      audio: formatNumber(CONFIG.audioMbps * 1000, 0)\n    };\n    [root].concat(Array.from(root.querySelectorAll('[data-i18n], [data-i18n-aria-label]'))).forEach(function (node) {\n      const key = node.getAttribute('data-i18n');\n      const ariaKey = node.getAttribute('data-i18n-aria-label');\n      if (key) node.textContent = t(key, values);\n      if (ariaKey) node.setAttribute('aria-label', t(ariaKey, values));\n    });\n    root.lang = currentLocale;\n  }\n\n  function testError(key, values) {\n    const error = new Error(key);\n    error.i18nKey = key;\n    error.i18nValues = values;\n    return error;\n  }\n\n  \/\/ EDIT THESE SETTINGS to match your streaming platform.\n  const CONFIG = {\n    uploadUrl: 'https:\/\/speed.cloudflare.com\/__up',\n    usableFraction: 0.70, \/\/ Reserve 30% of upload capacity.\n    audioMbps: 0.128,\n    modes: [\n      \/\/ SD is a custom 768 \u00d7 432 preset; 1.5 Mbps is an editable starting point.\n      { labelKey: 'modeSd30', tier: 'betting', width: 768, height: 432, fps: 30, videoMbps: 1.5 },\n      { labelKey: 'modeHd30', tier: 'normal', width: 1280, height: 720, fps: 30, videoMbps: 4 },\n      { labelKey: 'modeHd60', tier: 'normal', width: 1280, height: 720, fps: 60, videoMbps: 6 },\n      { labelKey: 'modeFullHd30', tier: 'premium', width: 1920, height: 1080, fps: 30, videoMbps: 10 },\n      { labelKey: 'modeFullHd60', tier: 'premium', width: 1920, height: 1080, fps: 60, videoMbps: 12 }\n    ]\n  };\n  const SAMPLE_COUNT = 4;\n  const MIN_BYTES = 64000;\n  const MAX_BYTES = 10000000; \/\/ Four samples + warm-up = at most 40.064 MB.\n  const REQUEST_LIMIT_MS = 12000;\n  const TEST_LIMIT_MS = 45000;\n  let busy = false; \/\/ Prevent simultaneous tests in multiple copies of this widget.\n\n  function init() {\n    currentLang = getCurrentLang();\n    currentLocale = locales[currentLang] || 'en';\n    document.querySelectorAll('[data-stream-speedtest]').forEach(function (root) {\n      if (root.dataset.lstInitialized) return;\n      root.dataset.lstInitialized = 'true';\n      const el = function (key) { return root.querySelector('[data-lst=\"' + key + '\"]'); };\n      const start = el('start');\n      const cancel = el('cancel');\n      const status = el('status');\n      const progress = el('progress');\n      let activeRun = null;\n      applyTranslations(root);\n\n      function setStartLabel(key, arrow) {\n        start.textContent = t(key);\n        if (arrow) {\n          const icon = document.createElement('span');\n          icon.setAttribute('aria-hidden', 'true');\n          icon.textContent = ' \u2197';\n          start.appendChild(icon);\n        }\n      }\n      setStartLabel('start', true);\n\n      function setStatus(message, error) {\n        status.textContent = message;\n        status.hidden = !message;\n        status.dataset.error = error ? 'true' : 'false';\n      }\n\n      function renderRows(slowest) {\n        const tiers = [\n          { id: 'betting', labelKey: 'tierBetting' },\n          { id: 'normal', labelKey: 'tierNormal' },\n          { id: 'premium', labelKey: 'tierPremium' }\n        ];\n        tiers.forEach(function (tier) {\n          const body = el('rows-' + tier.id);\n          body.replaceChildren();\n          const tierRow = document.createElement('tr');\n          tierRow.className = 'lst-tier';\n          const tierHeading = document.createElement('th');\n          tierHeading.scope = 'rowgroup';\n          tierHeading.colSpan = 4;\n          tierHeading.textContent = t(tier.labelKey);\n          tierRow.appendChild(tierHeading);\n          body.appendChild(tierRow);\n\n          CONFIG.modes.filter(function (mode) { return mode.tier === tier.id; }).forEach(function (mode) {\n            const total = mode.videoMbps + CONFIG.audioMbps;\n            const required = total \/ CONFIG.usableFraction;\n            let state = 'idle';\n            if (Number.isFinite(slowest)) {\n              state = slowest * CONFIG.usableFraction >= total ? 'suitable' : slowest >= total ? 'borderline' : 'slow';\n            }\n            const row = document.createElement('tr');\n            const heading = document.createElement('th');\n            heading.scope = 'row';\n            heading.textContent = t(mode.labelKey);\n            const resolution = document.createElement('small');\n            resolution.textContent = t('resolution', { width: mode.width, height: mode.height, fps: mode.fps });\n            heading.appendChild(resolution);\n            row.appendChild(heading);\n\n            \/\/ Results are the second column, immediately after the mode.\n            const result = document.createElement('td');\n            const badge = document.createElement('span');\n            badge.className = 'lst-badge';\n            badge.dataset.state = state;\n            badge.textContent = t(state === 'idle' ? 'notTested' : state);\n            result.appendChild(badge);\n            row.appendChild(result);\n            [mode.videoMbps, Math.ceil(required * 10) \/ 10].forEach(function (value) {\n              const cell = document.createElement('td');\n              cell.textContent = formatSpeed(value);\n              row.appendChild(cell);\n            });\n            body.appendChild(row);\n          });\n        });\n      }\n\n      \/\/ Random bytes prevent compressible payloads from distorting the estimate.\n      function makePayload(size) {\n        const data = new Uint8Array(size);\n        for (let i = 0; i < size; i += 65536) {\n          window.crypto.getRandomValues(data.subarray(i, Math.min(i + 65536, size)));\n        }\n        \/\/ A CORS-safelisted content type avoids an unnecessary preflight request.\n        return new Blob([data], { type: 'text\/plain' });\n      }\n\n      async function upload(size, run) {\n        if (run.reason) throw new Error('stopped');\n        const payload = makePayload(size);\n        const controller = new AbortController();\n        run.controller = controller;\n        let timedOut = false;\n        const timer = setTimeout(function () {\n          timedOut = true;\n          controller.abort();\n        }, REQUEST_LIMIT_MS);\n        const began = performance.now();\n        try {\n          const url = new URL(CONFIG.uploadUrl);\n          url.searchParams.set('t', Date.now() + '-' + Math.random().toString(36).slice(2));\n          const response = await fetch(url.href, {\n            method: 'POST', body: payload, mode: 'cors', cache: 'no-store',\n            credentials: 'omit', referrerPolicy: 'no-referrer', signal: controller.signal\n          });\n          if (!response.ok) throw testError('httpError', { status: response.status });\n          await response.text();\n          if (run.reason) throw new Error('stopped');\n          const seconds = (performance.now() - began) \/ 1000;\n          if (!Number.isFinite(seconds) || seconds <= 0) throw testError('timingError');\n          return { bytes: size, seconds: seconds, mbps: size * 8 \/ seconds \/ 1000000 };\n        } catch (error) {\n          if (run.reason) throw new Error('stopped');\n          if (timedOut) throw testError('timeout');\n          if (error instanceof TypeError) throw testError('networkError');\n          throw error;\n        } finally {\n          clearTimeout(timer);\n          if (run.controller === controller) run.controller = null;\n        }\n      }\n\n      function stop(reason) {\n        if (!activeRun) return;\n        activeRun.reason = reason;\n        if (activeRun.controller) activeRun.controller.abort();\n      }\n\n      start.addEventListener('click', async function () {\n        if (activeRun) return;\n        if (busy) { setStatus(t('busy')); return; }\n        if (document.hidden) { setStatus(t('keepVisible')); return; }\n        busy = true;\n        const run = { controller: null, reason: '' };\n        activeRun = run;\n        start.disabled = true;\n        setStartLabel('testing', false);\n        cancel.hidden = false;\n        progress.hidden = false;\n        progress.value = 0;\n        el('speed').textContent = t('emptyValue');\n        el('budget').textContent = t('emptyValue');\n        el('speed-note').textContent = t('inProgress');\n        el('summary').hidden = true;\n        renderRows();\n        setStatus(t('warmup'));\n        const overallTimer = setTimeout(function () { stop('limit'); }, TEST_LIMIT_MS);\n        const visibilityHandler = function () { if (document.hidden) stop('hidden'); };\n        document.addEventListener('visibilitychange', visibilityHandler);\n        try {\n          let previous = await upload(MIN_BYTES, run);\n          progress.value = 1;\n          const samples = [];\n          for (let i = 0; i < SAMPLE_COUNT; i++) {\n            setStatus(t('measuring', { current: i + 1, count: SAMPLE_COUNT }));\n            \/\/ Aim for 2.5 seconds per sample, adjusting for the connection speed.\n            const size = Math.max(MIN_BYTES, Math.min(MAX_BYTES, Math.round(previous.mbps * 1000000 \/ 8 * 2.5)));\n            previous = await upload(size, run);\n            samples.push(previous);\n            progress.value = i + 2;\n          }\n          const slowest = Math.min.apply(null, samples.map(function (s) { return s.mbps; }));\n          const fastest = Math.max.apply(null, samples.map(function (s) { return s.mbps; }));\n          const totalBytes = samples.reduce(function (sum, s) { return sum + s.bytes; }, 0);\n          const totalSeconds = samples.reduce(function (sum, s) { return sum + s.seconds; }, 0);\n          const average = totalBytes * 8 \/ totalSeconds \/ 1000000;\n          const budget = slowest * CONFIG.usableFraction;\n          const suitable = CONFIG.modes.filter(function (mode) { return mode.videoMbps + CONFIG.audioMbps <= budget; });\n          const best = suitable[suitable.length - 1];\n          const varied = slowest < fastest * 0.75;\n          el('speed').textContent = formatNumber(average);\n          el('budget').textContent = formatNumber(budget);\n          el('speed-note').textContent = t('averageNote', { count: SAMPLE_COUNT });\n          renderRows(slowest);\n          const summary = el('summary');\n          summary.replaceChildren();\n          if (best) {\n            \/\/ Keep the translated sentence as text; emphasize only the mode.\n            t('bestPreset').split(\/(\\{mode\\})\/).forEach(function (part) {\n              if (part === '{mode}') {\n                const strong = document.createElement('strong');\n                strong.textContent = t(best.labelKey);\n                summary.appendChild(strong);\n              } else {\n                summary.appendChild(document.createTextNode(part));\n              }\n            });\n          } else {\n            summary.textContent = t('noPreset');\n          }\n          if (varied) summary.appendChild(document.createTextNode(' ' + t('varied')));\n          if (totalSeconds < 4) summary.appendChild(document.createTextNode(' ' + t('shortTest')));\n          summary.hidden = false;\n          setStatus('');\n        } catch (error) {\n          \/\/ Never show a recommendation from a partial or failed test.\n          el('speed').textContent = t('emptyValue');\n          el('budget').textContent = t('emptyValue');\n          el('speed-note').textContent = t('noResult');\n          el('summary').hidden = true;\n          renderRows();\n          const reasonKeys = { cancel: 'cancelled', hidden: 'hidden', limit: 'limit' };\n          const key = reasonKeys[run.reason] || error.i18nKey || 'failed';\n          setStatus(t(key, Object.assign({ seconds: TEST_LIMIT_MS \/ 1000 }, error.i18nValues)), !run.reason || run.reason === 'limit');\n          progress.value = 0;\n          progress.hidden = true;\n        } finally {\n          clearTimeout(overallTimer);\n          document.removeEventListener('visibilitychange', visibilityHandler);\n          activeRun = null;\n          busy = false;\n          start.disabled = false;\n          setStartLabel('again', true);\n          cancel.hidden = true;\n        }\n      });\n      cancel.addEventListener('click', function () { stop('cancel'); });\n      renderRows();\n      if (!window.fetch || !window.AbortController || !window.crypto || !window.crypto.getRandomValues) {\n        setStatus(t('unsupported'), true);\n        return;\n      }\n      start.disabled = false;\n    });\n  }\n\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init);\n  else init();\n})();\n\n<\/script>\n\n<section class=\"lst-widget notranslate\" translate=\"no\" data-stream-speedtest=\"\" data-i18n-aria-label=\"widgetLabel\">\n  <p class=\"lst-eyebrow\"><span class=\"lst-dot\" aria-hidden=\"true\"><\/span><span data-i18n=\"eyebrow\"><\/span><\/p>\n  <h2 data-i18n=\"title\"><\/h2>\n  <p class=\"lst-intro\" data-i18n=\"intro\"><\/p>\n\n  <div class=\"lst-actions\">\n    <button type=\"button\" data-lst=\"start\" disabled=\"disabled\" data-i18n=\"start\"><\/button>\n    <button type=\"button\" class=\"lst-cancel\" data-lst=\"cancel\" hidden=\"\" data-i18n=\"cancel\"><\/button>\n  <\/div>\n  <progress class=\"lst-progress\" data-lst=\"progress\" value=\"0\" max=\"5\" data-i18n-aria-label=\"progressLabel\" hidden=\"\"><\/progress>\n\n  <p class=\"lst-status\" data-lst=\"status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" data-i18n=\"ready\"><\/p>\n  <p class=\"lst-summary\" data-lst=\"summary\" hidden=\"\"><\/p>\n\n  <div class=\"lst-stats\">\n    <div class=\"lst-stat lst-stat-budget\">\n      <span class=\"lst-label\" data-i18n=\"budgetLabel\"><\/span>\n      <span class=\"lst-value\" data-lst=\"budget\" data-i18n=\"emptyValue\"><\/span><span class=\"lst-unit\" data-i18n=\"unitMbps\"><\/span>\n      <small data-i18n=\"budgetNote\"><\/small>\n    <\/div>\n    <div class=\"lst-stat\">\n      <span class=\"lst-label\" data-i18n=\"uploadLabel\"><\/span>\n      <span class=\"lst-value\" data-lst=\"speed\" data-i18n=\"emptyValue\"><\/span><span class=\"lst-unit\" data-i18n=\"unitMbps\"><\/span>\n      <small data-lst=\"speed-note\" data-i18n=\"waiting\"><\/small>\n    <\/div>\n  <\/div>\n\n  <div class=\"lst-table-wrap\" tabindex=\"0\" role=\"region\" data-i18n-aria-label=\"tableRegion\">\n    <table>\n      <caption data-i18n=\"tableCaption\"><\/caption>\n      <thead><tr><th scope=\"col\" data-i18n=\"modeColumn\"><\/th><th scope=\"col\" data-i18n=\"resultColumn\"><\/th><th scope=\"col\" data-i18n=\"videoColumn\"><\/th><th scope=\"col\" data-i18n=\"neededColumn\"><\/th><\/tr><\/thead>\n      <tbody data-lst=\"rows-betting\"><\/tbody>\n      <tbody data-lst=\"rows-normal\"><\/tbody>\n      <tbody data-lst=\"rows-premium\"><\/tbody>\n    <\/table>\n  <\/div>\n  <p class=\"lst-note\" data-i18n=\"footnote\"><\/p>\n<\/section>\n\n\n\n<script data-wp-block-html=\"js\">(function () {\n  var params = new URLSearchParams(window.location.search);\n\n  if (params.get(\"standalone\") !== \"1\") {\n    return;\n  }\n\n  document.documentElement.classList.add(\"standalone\");\n\n  function applyStandaloneMode() {\n    var entryContent = document.querySelector(\".entry-content\");\n\n    if (!entryContent) {\n      return;\n    }\n\n    document.body.innerHTML = \"\";\n    document.body.appendChild(entryContent);\n\n\n    document.documentElement.style.margin = \"0\";\n    document.documentElement.style.padding = \"0\";\n    document.body.style.margin = \"0\";\n    document.body.style.padding = \"0\";\n    document.body.style.background = \"transparent\";\n\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", applyStandaloneMode);\n  } else {\n    applyStandaloneMode();\n  }\n})();\n<\/script>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"wp-custom-template-canvas","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-46109","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.7 (Yoast SEO v27.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Teste de velocidade de transmiss\u00e3o ao vivo - SPORT.VIDEO<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/product.sport.video\/pt-pt\/teste-de-velocidade-de-transmissao-ao-vivo\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Teste de velocidade de transmiss\u00e3o ao vivo\" \/>\n<meta property=\"og:url\" content=\"https:\/\/product.sport.video\/pt-pt\/teste-de-velocidade-de-transmissao-ao-vivo\/\" \/>\n<meta property=\"og:site_name\" content=\"SPORT.VIDEO\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-18T11:17:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/product.sport.video\/wp-content\/uploads\/2026\/02\/icon.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/teste-de-velocidade-de-transmissao-ao-vivo\\\/\",\"url\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/teste-de-velocidade-de-transmissao-ao-vivo\\\/\",\"name\":\"Teste de velocidade de transmiss\u00e3o ao vivo - SPORT.VIDEO\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/#website\"},\"datePublished\":\"2026-09-18T11:17:35+00:00\",\"dateModified\":\"2026-09-18T11:17:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/teste-de-velocidade-de-transmissao-ao-vivo\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/teste-de-velocidade-de-transmissao-ao-vivo\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/teste-de-velocidade-de-transmissao-ao-vivo\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Teste de velocidade de transmiss\u00e3o ao vivo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/#website\",\"url\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/\",\"name\":\"Sport.Video\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/#organization\",\"name\":\"Sport.Video\",\"alternateName\":\"SV\",\"url\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/product.sport.video\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/icon.png\",\"contentUrl\":\"https:\\\/\\\/product.sport.video\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/icon.png\",\"width\":512,\"height\":512,\"caption\":\"Sport.Video\"},\"image\":{\"@id\":\"https:\\\/\\\/product.sport.video\\\/pt-pt\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Teste de velocidade de transmiss\u00e3o ao vivo - SPORT.VIDEO","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/product.sport.video\/pt-pt\/teste-de-velocidade-de-transmissao-ao-vivo\/","og_locale":"pt_PT","og_type":"article","og_title":"Teste de velocidade de transmiss\u00e3o ao vivo","og_url":"https:\/\/product.sport.video\/pt-pt\/teste-de-velocidade-de-transmissao-ao-vivo\/","og_site_name":"SPORT.VIDEO","article_modified_time":"2026-09-18T11:17:40+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/product.sport.video\/wp-content\/uploads\/2026\/02\/icon.png","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/product.sport.video\/pt-pt\/teste-de-velocidade-de-transmissao-ao-vivo\/","url":"https:\/\/product.sport.video\/pt-pt\/teste-de-velocidade-de-transmissao-ao-vivo\/","name":"Teste de velocidade de transmiss\u00e3o ao vivo - SPORT.VIDEO","isPartOf":{"@id":"https:\/\/product.sport.video\/pt-pt\/#website"},"datePublished":"2026-09-18T11:17:35+00:00","dateModified":"2026-09-18T11:17:40+00:00","breadcrumb":{"@id":"https:\/\/product.sport.video\/pt-pt\/teste-de-velocidade-de-transmissao-ao-vivo\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/product.sport.video\/pt-pt\/teste-de-velocidade-de-transmissao-ao-vivo\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/product.sport.video\/pt-pt\/teste-de-velocidade-de-transmissao-ao-vivo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/product.sport.video\/pt-pt\/"},{"@type":"ListItem","position":2,"name":"Teste de velocidade de transmiss\u00e3o ao vivo"}]},{"@type":"WebSite","@id":"https:\/\/product.sport.video\/pt-pt\/#website","url":"https:\/\/product.sport.video\/pt-pt\/","name":"Sport.Video","description":"","publisher":{"@id":"https:\/\/product.sport.video\/pt-pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/product.sport.video\/pt-pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/product.sport.video\/pt-pt\/#organization","name":"Sport.Video","alternateName":"SV","url":"https:\/\/product.sport.video\/pt-pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/product.sport.video\/pt-pt\/#\/schema\/logo\/image\/","url":"https:\/\/product.sport.video\/wp-content\/uploads\/2026\/02\/icon.png","contentUrl":"https:\/\/product.sport.video\/wp-content\/uploads\/2026\/02\/icon.png","width":512,"height":512,"caption":"Sport.Video"},"image":{"@id":"https:\/\/product.sport.video\/pt-pt\/#\/schema\/logo\/image\/"}}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Info Sport.Video","author_link":"https:\/\/product.sport.video\/pt-pt\/author\/sport-video\/"},"uagb_comment_info":0,"uagb_excerpt":null,"_links":{"self":[{"href":"https:\/\/product.sport.video\/pt-pt\/wp-json\/wp\/v2\/pages\/46109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/product.sport.video\/pt-pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/product.sport.video\/pt-pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/product.sport.video\/pt-pt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/product.sport.video\/pt-pt\/wp-json\/wp\/v2\/comments?post=46109"}],"version-history":[{"count":4,"href":"https:\/\/product.sport.video\/pt-pt\/wp-json\/wp\/v2\/pages\/46109\/revisions"}],"predecessor-version":[{"id":46166,"href":"https:\/\/product.sport.video\/pt-pt\/wp-json\/wp\/v2\/pages\/46109\/revisions\/46166"}],"wp:attachment":[{"href":"https:\/\/product.sport.video\/pt-pt\/wp-json\/wp\/v2\/media?parent=46109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}