Free developer tools · Guides

HLS PLAYLIST TOOLS

HLS AVERAGE-BANDWIDTH vs BANDWIDTH for transfer estimates

An HLS master playlist describes available renditions. It does not tell you how much time real viewers spend at each quality. The inspector turns each supported rendition into a separate transfer scenario, preserving that uncertainty.

Inspect an HLS master playlist

Start with a master playlist

Look for EXT-X-STREAM-INF entries followed by rendition playlist URIs. A media playlist instead lists segments, often with EXTINF tags. This tool supports master-playlist rendition analysis; it rejects media playlists rather than treating segment duration as a bitrate. Paste text directly: the inspector does not fetch the playlist's URLs.

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=1500000,AVERAGE-BANDWIDTH=1000000,RESOLUTION=640x360
low.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4000000,AVERAGE-BANDWIDTH=3000000,RESOLUTION=1280x720
high.m3u8

Prefer average bandwidth when available

AVERAGE-BANDWIDTH describes an average for the variant; BANDWIDTH describes a peak requirement. The inspector prefers the average for transfer estimates. When it is absent, the peak becomes an explicitly labeled proxy, which can overstate typical transfer. Conflicting metadata, such as an average above the peak, produces a warning rather than hidden certainty.

Compare scenarios without adding them

For 10,000 plays lasting five minutes each, a 1 Mbps scenario implies 375 decimal GB. A 3 Mbps scenario implies 1,125 GB. These describe the same viewing time at different bitrates. Adding them would assume all of that viewing time occurred at both rates, which is not the usual adaptive-playback model.

Assumed renditionViewing minutesEstimated transfer
1 Mbps average50,000375 GB
3 Mbps average50,0001,125 GB
1.5 Mbps peak proxy50,000562.5 GB

Build a weighted scenario only with evidence

If 70% of watched minutes genuinely occur at 1 Mbps and 30% at 3 Mbps, the weighted bitrate is 1.6 Mbps. For 50,000 watched minutes that gives 600 decimal GB before other overhead. Those percentages are an example, not a default or a measured audience. Use player analytics to obtain your own mix.

Export useful measurements safely

Playlist URLs may contain signed access tokens. The exported report omits rendition URIs and codec strings, and the parser does not fetch video segments or encryption keys. The report still describes your rendition configuration, so review it before sharing. Use the video delivery planner next to combine audience assumptions with library size and hosting capacity.

Load a local master playlist

Choose a UTF-8 .m3u8 or text file up to 500 KB, or paste the playlist. The inspector reads the local text only: it never fetches rendition URLs, encryption keys or media segments. After loading, choose Inspect to build the rendition table. If you edit the text while a file is loading, the newer text takes precedence.

Do not use resolution as a substitute for bitrate

Two 1280×720 variants can have different bitrates because encoding settings, frame rates and source complexity differ. Read the declared bandwidth attributes rather than assigning a bitrate from resolution alone. The manifest describes the package, not observed viewing. The inspector does not download segments to verify those declarations. Check your packaging output and playback measurements separately when the metadata looks inconsistent.

A weighted quality mix is a watched-time calculation

Suppose 35,000 watched minutes occur at 1 Mbps and 15,000 at 3 Mbps. Their transfers are 262.5 GB and 337.5 GB, totaling 600 decimal GB. Dividing the combined bitrate-minutes by 50,000 watched minutes gives 1.6 Mbps. Use shares of watched time, not simply shares of viewers: a viewer who watches for one minute should not receive the same weight as one who watches for an hour. These figures are synthetic; the inspector’s individual rendition scenarios do not measure your audience mix.

Cross-check playlist metadata against a short segment sample

For this synthetic sample, 2,750,000 segment bytes times 8 divided by 10 seconds gives 2,200,000 bits per second, or 2.2 Mbps. A master label of 3 Mbps is not disproved by this short interval alone. Check a representative interval and include relevant audio, container and encryption overhead consistently. Individual rows are not a standards-compliant peak-BANDWIDTH calculation. The inspector reads supplied playlist metadata; this byte calculation is an independent local cross-check.

durations = [2,4,4]
segment_bytes = [250000,1500000,1000000]
measured_bits_per_second = sum(segment_bytes) * 8 / sum(durations)
# 2200000 bits/s = 2.2 Mbps over this synthetic 10-second sample.
SegmentSecondsFile bytes
12250000
241500000
341000000

Reproduce this example

At 10,000 plays of five minutes: 375 GB at 1 Mbps or 1,125 GB at 3 Mbps. These are alternative scenarios, not quantities to add. The playlist has no hosted video segments.

Load Two renditions at 1 and 3 Mbps average

Download two-renditions.m3u8 — synthetic data you can save or reference. The diagnostic samples contain no real addresses, credentials or hosted streams. Scenario CSVs document inputs; the calculators do not import CSV.

Download a reproducible reference

The quality mix is weighted by watched minutes. Compare alternatives without adding a full viewing period at every rendition. Your real quality mix requires observed player or delivery data.

Download HLS watched-time scenarios

Common questions

Why does the inspector reject my M3U8?

It may be a media playlist, malformed text, or outside the supported size and attribute limits. Try the built-in master-playlist sample to compare its structure.

Does missing AVERAGE-BANDWIDTH make the estimate exact?

No. BANDWIDTH is used as a labeled fallback. Real average transfer may be lower, and playback overhead can change observed usage.

Does the tool contact URLs in my playlist?

No. It parses pasted text locally and exports measurements without the playlist URIs.

Try it with your own scenario

Inspect an HLS master playlist

The tool is free to use. Product inputs stay in the local browser workspace. Provider links, where present, are separate from the calculation.

References and scope

Updated 2026-10-24. Examples are illustrative calculations, not measured customer outcomes. Provider prices and terms must be checked at purchase time.