Paste an HLS (.m3u8) link and press Play stream. The player shows every quality level with its resolution, bitrate and codecs, tells you whether the stream is live or on demand, and explains in plain words why a stream will not load.
Last updated:
Test streams:
Tip: pick the .m3u8 file together with its .ts or .m4s segment files to play a downloaded HLS folder offline. Nothing is uploaded.
Paste an .m3u8 link and press Play stream
Or try one of the test streams above.
Stream info
Event log
Advertisement
Advertisement
How to use the M3U8 Player
Paste the .m3u8 address into the Stream URL box, or press one of the test streams.
Press Play stream. The playlist is read and the video starts; the Stream info panel lists every quality level.
Pick a quality from the menu to lock a resolution, or leave it on Auto to adapt to your connection.
Watch the live stats under the player to check buffering, bitrate and dropped frames.
If it fails, read the explanation box: it tells you whether the cause is CORS, an expired link, a wrong address or an unsupported codec.
Have a playlist file? Open the Paste or open playlist tab to check its contents, or select it together with its segment files to play it offline.
How HLS streaming works
HTTP Live Streaming cuts a video into short files, usually 2 to 10 seconds long, and describes them in plain-text M3U8 playlists. A master playlist points to several renditions of the same video at different resolutions and bitrates. The player measures how fast segments download and switches up or down between renditions, which is called adaptive bitrate streaming. Because everything is ordinary HTTP files, HLS works through any web server or CDN.
Marks the file as an extended M3U playlist. Required.
#EXT-X-STREAM-INF
Master
One quality level: BANDWIDTH (peak bits per second), AVERAGE-BANDWIDTH, RESOLUTION, CODECS, FRAME-RATE. The next line is its playlist URL.
#EXT-X-MEDIA
Master
Alternative audio tracks, subtitles or closed captions, with NAME and LANGUAGE.
#EXT-X-TARGETDURATION
Media
The longest segment duration, in whole seconds. Live players refresh the playlist about this often.
#EXTINF
Media
Duration of the segment on the next line, in seconds.
#EXT-X-MEDIA-SEQUENCE
Media
Number of the first segment. It keeps rising in a live stream as old segments drop off.
#EXT-X-ENDLIST
Media
No more segments will be added: the stream is VOD or a finished event.
#EXT-X-PLAYLIST-TYPE
Media
VOD (never changes) or EVENT (live, segments only added).
#EXT-X-KEY
Media
Encryption: METHOD=AES-128 or SAMPLE-AES plus the key URI.
#EXT-X-MAP
Media
Initialization segment, used by fragmented MP4 (CMAF) streams.
#EXT-X-PART
Media
Partial segment for Low-Latency HLS.
Typical bitrate ladder
Streaming services choose their own ladders, but these values for H.264 at 30 fps are a common starting point. Higher frame rates and more detailed content need more; HEVC and AV1 need roughly 30 to 50 percent less for similar quality.
Rendition
Resolution
Video bitrate
Data per hour
240p
426 × 240
0.4 Mbps
about 0.18 GB
360p
640 × 360
0.8 Mbps
about 0.36 GB
480p
854 × 480
1.4 Mbps
about 0.63 GB
720p
1280 × 720
3 Mbps
about 1.35 GB
1080p
1920 × 1080
5 to 6 Mbps
about 2.3 to 2.7 GB
4K
3840 × 2160
15 to 20 Mbps
about 6.8 to 9 GB
Data per hour = bitrate in Mbps × 3,600 ÷ 8 ÷ 1,000 GB. For smooth playback your connection should be at least 1.5 times the bitrate of the level you want.
Troubleshooting checklist
CORS error: the server must answer with Access-Control-Allow-Origin. Test it with a CORS tester, or play the stream in VLC.
403 Forbidden: signed links expire, often after minutes or hours. Copy a fresh link from the original site.
Plays without picture: the video codec (often HEVC) is not supported by this browser; the audio may still play.
Stalls every few seconds: check the buffer and your bandwidth in the stats. Pick a lower quality if your bandwidth is close to the level bitrate.
An M3U8 file is a UTF-8 text playlist used by HTTP Live Streaming (HLS), the streaming format defined by Apple in RFC 8216. It does not contain video itself: it lists short media segments, or, in a master playlist, several versions of the same stream at different resolutions and bitrates.
Why does the stream play in VLC but not in my browser?
Web pages are bound by CORS: the server that hosts the stream must send an Access-Control-Allow-Origin header that allows other websites to read it. Desktop players such as VLC and ffmpeg ignore CORS, so they can play streams a browser is not allowed to load. Expired signed links and streams that check the Referer also fail outside their own site.
What is the difference between a master and a media playlist?
A master (multivariant) playlist lists the available quality levels with #EXT-X-STREAM-INF lines, each with a bandwidth, resolution and codecs. A media playlist lists the actual segments with #EXTINF durations. The player reads the master, picks a level that fits your connection and then follows that level's media playlist.
How do I know if a stream is live?
A video-on-demand playlist ends with #EXT-X-ENDLIST or declares #EXT-X-PLAYLIST-TYPE:VOD. A live playlist has no end tag and is refreshed every few seconds with new segments; an EVENT playlist is live but keeps all earlier segments so you can rewind to the start.
What do codec strings like avc1.640028 and mp4a.40.2 mean?
They follow RFC 6381. avc1.640028 is H.264 High profile (64) at level 4.0 (hex 28 = 40), which covers 1080p. mp4a.40.2 is AAC-LC audio, mp4a.40.5 is HE-AAC, hvc1 or hev1 is H.265/HEVC and av01 is AV1. The player translates them into readable names.
Can it play encrypted or DRM streams?
Streams encrypted with AES-128 play if the key server allows your browser to fetch the key. Streams protected with DRM such as Widevine or FairPlay need a licence server and cannot be played from a plain link in any generic player.
Is anything uploaded or recorded?
No. Your browser requests the stream directly from its server, and playlist files you open are read locally. The page has no server-side component and keeps only your recent URLs in your own browser for convenience.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.