M3U8 Player Online
Paste an .m3u8 link and watch the stream right here. This is a free M3U8 player online that works in Chrome, Firefox and Edge as well as Safari: the browsers without built-in HLS get a small streaming engine loaded into the page, so a link that only ever played on an iPhone plays on a laptop too. Nothing is installed, nothing is uploaded, and the stream is never stored.
A local .m3u8 file only works when its segments are reachable from this browser.
Want the video as a file rather than a stream? Paste the same .m3u8 link into the URL to MP4 converter and the segments are fetched and stitched into one MP4. For YouTube, Instagram and other platform pages, use the online video player instead — those are pages, not streams.
What an M3U8 link actually is
An .m3u8 file is a short text file, not a video. It is the playlist format of HLS (HTTP Live Streaming), and it lists the pieces the video has been cut into — typically segments of two to ten seconds each, stored as .ts or .m4s files next to it. A player reads the playlist, fetches the segments in order and plays them back to back, which is why a stream can start within a second and never needs the whole file first.
There are two kinds. A master playlist points at several other playlists, one per quality (360p, 720p, 1080p and so on), and the player picks whichever your connection can carry, switching mid-stream if it changes. A media playlist is a single quality and just lists segments. Both paste here the same way. A playlist for a live stream keeps growing as the broadcast continues; one for a recording has a fixed end and can be seeked like any video.
Why an .m3u8 will not open in Chrome, and what this page does about it
Only Safari — on Mac, iPhone and iPad — understands HLS natively. Drop an .m3u8 address into Chrome, Firefox or Edge and the browser either downloads the playlist as a text file or shows a blank player, because their video element has no idea what to do with a playlist.
This page closes that gap with hls.js, an open-source HLS engine that runs inside the page. It fetches the playlist and the segments itself and hands the decoded pieces to the browser’s own video element through Media Source Extensions. The engine is only loaded when a link is pasted in a browser that needs it; Safari keeps using its built-in support, which is lighter and handles the widest range of streams.
When a stream refuses to play
Because the segments are fetched by your browser, the stream server has the final say. The failures below are the server’s decisions, and no player on any site gets around them:
- No CORS headerA browser may only read a stream from another site if that site’s server says so (an Access-Control-Allow-Origin header). Many private and CDN-signed streams do not, so the playlist is refused before playback starts. Safari’s native player is sometimes exempt, which is why a stream can play on an iPhone and fail here in Chrome.
- An expired tokenLinks with a long ?token= or ?expires= tail are valid for a window, often ten to sixty minutes. After that the server returns 403 for every segment. Copy a fresh link from the source page.
- Mixed contentThis page is served over https, and browsers block an http:// stream inside an https page. If the stream only has an http address, no https player can load it.
- DRMWidevine, FairPlay and PlayReady streams need a licence from the service that sells them. They play in that service’s apps and nowhere else.
- A stream that has endedA live playlist that stopped updating leaves a few final segments and then nothing. If the broadcaster published a recording, its playlist is a different link.
Saving an HLS stream as a single MP4 file
Streaming and keeping are different jobs. This player streams: segments arrive, play and are discarded, and the data is spent again every time you watch. When you want the recording itself — to watch offline, to edit, or because the link is about to expire — the URL to MP4 converter accepts the same .m3u8 address, downloads every segment on our servers and stitches them into one MP4 that plays anywhere. It is fetched server-side, so the browser-only restrictions above (CORS, mixed content) do not apply; expiry and DRM still do.
Two honest limits: a live stream that is still being broadcast is not a file yet, so saving applies to recordings; and the highest quality in the master playlist is what gets saved, up to the converter’s usual ceiling. If you only want the sound, the URL to MP3 converter does the same fetch and keeps the audio.
How to play an .m3u8 link in your browser
Copy the .m3u8 link
It ends in .m3u8, sometimes with a long token after a question mark. Copy the whole thing — the token is part of the address, and without it the stream server answers with an error.
Paste it into the player
Playback starts on its own once the playlist loads. Safari and iPhone use their built-in HLS support; every other browser gets an HLS engine loaded into the page for the moment it is needed.
Pick a quality if the stream offers one
A master playlist with several bitrates switches quality automatically as your connection allows, the same way a streaming site does. Fullscreen, seeking and volume are the browser’s own controls.
M3U8 player — frequently asked questions
More free tools
- URL to File Converter
- Link to MP4 Converter
- Link to MP3 Converter
- Video Link Converter
- YouTube Link to File Converter
- Discord Link Converter
- Google Drive Link to MP4
- YouTube Subtitle Downloader
- Background Remover
- Passport Photo Maker
- Compress Image to KB
- Online Video Player
- MKV Player Online
- MP4 Player Online
- QR Code Generator
- YouTube Thumbnail Downloader
- Word Counter
- HTML Viewer & Editor
- Password Generator
- Image Resizer
- Image Compressor
- PDF Compressor
- Merge PDFs
- Split PDF
- Favicon Generator
- PDF to Word
- HEIC to JPG
- Blog & guides
- All converters →