A common story: someone finds a link ending in m3u8 in developer tools, downloads it, and ends up with a text document a few kilobytes long. There is no video in it and never was.
An m3u8 is a table of contents, not video
HLS stands for HTTP Live Streaming, a delivery method built so the stream can adapt to your connection speed. The video is cut in advance into short pieces, typically 2–10 seconds each, and every piece is stored as its own file.
The m3u8 file is the playlist: a plain text list of the addresses of all those segments in order. The player reads it, fetches the pieces one after another and stitches them together during playback. Hence the size — a list of links weighs kilobytes whether the video runs five minutes or an hour.
An analogy: the m3u8 is a book's table of contents. Downloading the contents page does not get you the book.
Why go to all that trouble
- Adaptive quality. There are usually several playlists, one per resolution, and the player switches between them mid-playback when bandwidth drops.
- Fast start. There is no wait for a whole file — the first segment is enough to begin.
- Live broadcasts. The segment list grows as the broadcast goes on, which a single file cannot do.
Master playlist and media playlist
An m3u8 often comes in two levels. The master playlist holds not segments but links to other playlists, one per quality. Only inside those are the addresses of the real pieces. So opening an m3u8 and finding several more m3u8 links is normal.
How to get a normal file
You need to download every segment and merge them into one container. Doing that by hand is possible but an hour-long video means hundreds of segments. Tentek Video Downloader handles it: it spots the playlist among the page requests, picks the quality you choose, fetches the segments and assembles the file.
- 1Open the page and start playback — until the player requests the playlist there is nothing to intercept.
- 2Click the Tentek icon: the streams it found appear as a list.
- 3Choose the entry with the highest resolution.
- 4Wait for it to finish — assembly takes longer than a plain download, because the file is built locally.
When it will not work
- Segments encrypted with DRM. On paid streamers the key is only available to the browser's protected module, so such a stream cannot be assembled.
- Signed links that live for minutes. Playback works, but the addresses expire before a download can finish.
- A live broadcast in progress. Until it ends the playlist has no end — only the part already aired can be saved.
Ordinary AES encryption inside HLS itself is not an obstacle: there the key sits alongside the playlist and is available to the player, and therefore to the extension. DRM is the impassable case, and it is a different technology.