# Sample HLS stream for testing, free, CC0 and hotlinkable

13 HLS test files from 244 B to 841.7 KB. Direct URLs, a SHA-256 for each and CC0, so curl and CI can fetch them with no signup and no keys.

The page: <https://loremfile.dev/hls>.

This is a sample HLS stream you can play straight from its URL: a VOD playlist and the
segments it lists.

| Path | Size | MIME | Properties |
|---|---|---|---|
| [`hls/720p-10s/index.m3u8`](https://loremfile.dev/hls/720p-10s/index.m3u8) | 258 B | `application/vnd.apple.mpegurl` | 5 segments, 2 s target duration, VOD |

HLS, Apple's HTTP Live Streaming, delivers video as a playlist of short segments that a player
fetches one by one, so it cannot be tested with a single file. `hls/720p-10s/index.m3u8` uses
relative segment URIs and closes with an `#EXT-X-ENDLIST` tag. The segments sit beside it,
from `hls/720p-10s/seg-000.ts` to `hls/720p-10s/seg-004.ts`, each carrying H.264 video and
AAC audio in an MPEG-2 transport stream. Because the URIs are relative, the stream works from
any host that serves the same layout, including a local mirror.

`hls/multi-bitrate/master.m3u8` is a master playlist over two renditions: the 720p stream
above and a 360p one in `hls/360p-10s/`. Its BANDWIDTH, RESOLUTION and CODECS are read from
the segments themselves, so a player choosing between renditions chooses on real numbers.

Point a player such as hls.js, Safari or ExoPlayer at the playlist URL to test playback,
seeking and segment fetching. Every segment is served with open CORS, so a player on another
origin can load it. Related formats: [TS](https://loremfile.dev/ts) and [MP4](https://loremfile.dev/mp4).

## Files

| Path | Size | MIME | Properties |
|---|---|---|---|
| [`hls/360p-10s/index.m3u8`](https://loremfile.dev/hls/360p-10s/index.m3u8) | 258 B | `application/vnd.apple.mpegurl` | 5 segments, 2 s target duration, VOD |
| [`hls/360p-10s/seg-000.ts`](https://loremfile.dev/hls/360p-10s/seg-000.ts) | 243.3 KB (243,272 bytes) | `video/mp2t` | 640x360, 2.021 s, h264, High, level 3.0, aac, 48 kHz, 1 channel |
| [`hls/360p-10s/seg-001.ts`](https://loremfile.dev/hls/360p-10s/seg-001.ts) | 257.6 KB (257,560 bytes) | `video/mp2t` | 640x360, 2.059 s, h264, High, level 3.0, aac, 48 kHz, 1 channel |
| [`hls/360p-10s/seg-002.ts`](https://loremfile.dev/hls/360p-10s/seg-002.ts) | 239.5 KB (239,512 bytes) | `video/mp2t` | 640x360, 2.053 s, h264, High, level 3.0, aac, 48 kHz, 1 channel |
| [`hls/360p-10s/seg-003.ts`](https://loremfile.dev/hls/360p-10s/seg-003.ts) | 254.7 KB (254,740 bytes) | `video/mp2t` | 640x360, 2.048 s, h264, High, level 3.0, aac, 48 kHz, 1 channel |
| [`hls/360p-10s/seg-004.ts`](https://loremfile.dev/hls/360p-10s/seg-004.ts) | 241 KB (241,016 bytes) | `video/mp2t` | 640x360, 2.069 s, h264, High, level 3.0, aac, 48 kHz, 1 channel |
| [`hls/720p-10s/index.m3u8`](https://loremfile.dev/hls/720p-10s/index.m3u8) | 258 B | `application/vnd.apple.mpegurl` | 5 segments, 2 s target duration, VOD |
| [`hls/720p-10s/seg-000.ts`](https://loremfile.dev/hls/720p-10s/seg-000.ts) | 819.7 KB (819,680 bytes) | `video/mp2t` | 1280x720, 2.021 s, h264, High, level 3.1, aac, 48 kHz, 1 channel |
| [`hls/720p-10s/seg-001.ts`](https://loremfile.dev/hls/720p-10s/seg-001.ts) | 841.7 KB (841,676 bytes) | `video/mp2t` | 1280x720, 2.059 s, h264, High, level 3.1, aac, 48 kHz, 1 channel |
| [`hls/720p-10s/seg-002.ts`](https://loremfile.dev/hls/720p-10s/seg-002.ts) | 814.8 KB (814,792 bytes) | `video/mp2t` | 1280x720, 2.053 s, h264, High, level 3.1, aac, 48 kHz, 1 channel |
| [`hls/720p-10s/seg-003.ts`](https://loremfile.dev/hls/720p-10s/seg-003.ts) | 834.7 KB (834,720 bytes) | `video/mp2t` | 1280x720, 2.048 s, h264, High, level 3.1, aac, 48 kHz, 1 channel |
| [`hls/720p-10s/seg-004.ts`](https://loremfile.dev/hls/720p-10s/seg-004.ts) | 811.2 KB (811,220 bytes) | `video/mp2t` | 1280x720, 2.069 s, h264, High, level 3.1, aac, 48 kHz, 1 channel |
| [`hls/multi-bitrate/master.m3u8`](https://loremfile.dev/hls/multi-bitrate/master.m3u8) | 244 B | `application/vnd.apple.mpegurl` | 2 renditions, 640x360 and 1280x720 |

The same list as JSON: <https://loremfile.dev/hls/index.json>.
