Free HLS / M3U8 Test Player

Paste an .m3u8 link and see whether it plays, with plain-language errors if it does not.
Ready. Paste an .m3u8 address and press Play stream.

The video loads directly from the address you enter. Nothing is uploaded to us.

Stream details (quality levels, live or on demand, event log)
Player engine
-
Quality levels in the playlist
-
Type
-
Currently playing
-
Recent events
No events yet.

The Starter plan is $0 per month. Paid plans are billed monthly or annually; see the pricing page for details.

The sample stream is a public test stream hosted by Mux for testing HLS players (Test HLS Streams, hosted by Mux (used by hls.js)). It is used here only to demonstrate the player.

What this HLS test player is

HLS (HTTP Live Streaming) delivers video as a playlist file, usually ending in .m3u8, that points to short media segments. A player downloads the playlist, picks a quality level and fetches segments over HTTP from a CDN or origin server. This page is a small in-browser HLS player: paste a playlist address, press play and it tells you in plain words whether the stream works.

It uses hls.js (Apache-2.0 licensed, served from this site) in browsers that support Media Source Extensions, and the browser's built-in HLS support, such as in Safari, otherwise. The playlist format is defined in RFC 8216 and described in Apple's HLS documentation.

How to test an HLS stream

  1. Paste the full https:// address of the playlist into the box.
  2. Press Play stream. Video starts muted so browsers allow it to play; use the controls to unmute.
  3. Read the status line. Open Stream details to see the quality levels (resolution and bitrate), whether the playlist is live or on demand, and recent events.

A master playlist lists several renditions at different bitrates for adaptive bitrate (ABR) playback. A media playlist lists the segments of one rendition. Both can be tested here.

Common errors and what they mean

  • Could not reach the stream. No response arrived. The most common cause is CORS: a browser only lets another website read the playlist if the server sends an Access-Control-Allow-Origin header. The address may also be wrong or the server offline.
  • Blocked: secure page, insecure stream. This page uses HTTPS, and browsers block http:// media on HTTPS pages (mixed content). Use an https:// address.
  • HTTP 404. The playlist was not found. For a live stream, it may not have started or your encoder may not be sending yet.
  • HTTP 401 or 403. The server refused the request. Signed or token URLs expire, and some servers only allow requests from approved websites.
  • The video could not be decoded. The playlist loaded but the browser could not play the media, often because of an unsupported codec. Browsers broadly support H.264 video with AAC audio.

If you are sending a live stream to a CDN and the player stays empty, check that your encoder is connected, that the ingest protocol (RTMP or SRT) matches what the server expects, and that the keyframe interval is steady. See RTMP vs SRT and how to set up OBS Studio.

HLS and RTMP: delivery versus ingest

RTMP and SRT are commonly used to ingest: to send a stream from an encoder to a server. HLS is commonly used to deliver video to viewers through a CDN. Multistream Platform accepts RTMP and SRT ingest from your encoder and relays the stream to platforms such as YouTube, Twitch, Facebook and Kick. This test player is a general tool for checking any HLS playlist and is not a feature of the relay. Learn more in what is multistreaming.

Privacy

Your browser requests the playlist and segments directly from the server you enter. We do not receive the address or the video.

Sources

HLS player FAQ

What is an M3U8 file?
An M3U8 file is a UTF-8 playlist used by HLS. It lists either quality renditions (a master playlist) or media segments (a media playlist) that a player downloads in order.
Why does my HLS stream work in VLC but not in this player?
Desktop players are not bound by browser rules. A browser needs the server to allow cross-origin requests (CORS) and, on an HTTPS page, an HTTPS address. A stream that plays elsewhere but fails here very often lacks the CORS header.
What is CORS and how do I fix it for HLS?
CORS (cross-origin resource sharing) is the browser rule that lets a page read data from another domain only if that server sends an Access-Control-Allow-Origin header. To fix it, configure the origin or CDN that serves the playlist and segments to send that header.
Can I test a live HLS stream?
Yes. If the playlist is live, the Stream details section shows Live. Live playlists keep updating, so a live stream that has not started may return an error until your encoder is sending.
Does this player work on iPhone and Safari?
Safari has built-in HLS support, and this page uses it when hls.js cannot run. Behaviour can differ between browsers and devices.
Which video codecs can the player decode?
The browser does the decoding, so it depends on the browser and device. H.264 video with AAC audio is the most widely supported combination.
Is the sample stream mine?
No. It is a public test stream hosted by Mux for testing HLS players. It is included only so you can see the player work.
Have questions that aren't listed here? Talk to the team
Go Live Today

Ready to stream everywhere?

Bring your live, hosted, and pre-recorded streams into one platform.

One platform. Limitless audiences. Stream. Grow. Everywhere.