Sample HLS stream for testing, free, CC0 and hotlinkable

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

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 and MP4.

13 files. The same list as JSON: https://loremfile.dev/hls/index.json

HLS files
FileSizePropertiesDescription
360p-10s/index.m3u8 258 B 5 segments The 360p media playlist: VOD type, five segments of about two seconds, relative URIs and a closing #EXT-X-ENDLIST. The lower rendition of hls/multi-bitrate/master.m3u8.
Snippets
<video src="https://loremfile.dev/hls/360p-10s/index.m3u8" controls></video>
curl -O https://loremfile.dev/hls/360p-10s/index.m3u8
360p-10s/seg-000.ts 243.3 KB (243,272 bytes) 640x360, 2.021 s, h264, aac Segment 0 of the 360p HLS rendition: H.264 plus AAC in an MPEG-2 transport stream.
Snippets
<video src="https://loremfile.dev/hls/360p-10s/seg-000.ts" controls></video>
curl -O https://loremfile.dev/hls/360p-10s/seg-000.ts
360p-10s/seg-001.ts 257.6 KB (257,560 bytes) 640x360, 2.059 s, h264, aac Segment 1 of the 360p HLS rendition: H.264 plus AAC in an MPEG-2 transport stream.
Snippets
<video src="https://loremfile.dev/hls/360p-10s/seg-001.ts" controls></video>
curl -O https://loremfile.dev/hls/360p-10s/seg-001.ts
360p-10s/seg-002.ts 239.5 KB (239,512 bytes) 640x360, 2.053 s, h264, aac Segment 2 of the 360p HLS rendition: H.264 plus AAC in an MPEG-2 transport stream.
Snippets
<video src="https://loremfile.dev/hls/360p-10s/seg-002.ts" controls></video>
curl -O https://loremfile.dev/hls/360p-10s/seg-002.ts
360p-10s/seg-003.ts 254.7 KB (254,740 bytes) 640x360, 2.048 s, h264, aac Segment 3 of the 360p HLS rendition: H.264 plus AAC in an MPEG-2 transport stream.
Snippets
<video src="https://loremfile.dev/hls/360p-10s/seg-003.ts" controls></video>
curl -O https://loremfile.dev/hls/360p-10s/seg-003.ts
360p-10s/seg-004.ts 241 KB (241,016 bytes) 640x360, 2.069 s, h264, aac Segment 4 of the 360p HLS rendition: H.264 plus AAC in an MPEG-2 transport stream.
Snippets
<video src="https://loremfile.dev/hls/360p-10s/seg-004.ts" controls></video>
curl -O https://loremfile.dev/hls/360p-10s/seg-004.ts
720p-10s/index.m3u8 258 B 5 segments The media playlist: VOD type, five segments of about two seconds, relative URIs and a closing #EXT-X-ENDLIST.
Snippets
<video src="https://loremfile.dev/hls/720p-10s/index.m3u8" controls></video>
curl -O https://loremfile.dev/hls/720p-10s/index.m3u8
720p-10s/seg-000.ts 819.7 KB (819,680 bytes) 1280x720, 2.021 s, h264, aac Segment 0 of the 720p HLS stream: H.264 plus AAC in an MPEG-2 transport stream.
Snippets
<video src="https://loremfile.dev/hls/720p-10s/seg-000.ts" controls></video>
curl -O https://loremfile.dev/hls/720p-10s/seg-000.ts
720p-10s/seg-001.ts 841.7 KB (841,676 bytes) 1280x720, 2.059 s, h264, aac Segment 1 of the 720p HLS stream: H.264 plus AAC in an MPEG-2 transport stream.
Snippets
<video src="https://loremfile.dev/hls/720p-10s/seg-001.ts" controls></video>
curl -O https://loremfile.dev/hls/720p-10s/seg-001.ts
720p-10s/seg-002.ts 814.8 KB (814,792 bytes) 1280x720, 2.053 s, h264, aac Segment 2 of the 720p HLS stream: H.264 plus AAC in an MPEG-2 transport stream.
Snippets
<video src="https://loremfile.dev/hls/720p-10s/seg-002.ts" controls></video>
curl -O https://loremfile.dev/hls/720p-10s/seg-002.ts
720p-10s/seg-003.ts 834.7 KB (834,720 bytes) 1280x720, 2.048 s, h264, aac Segment 3 of the 720p HLS stream: H.264 plus AAC in an MPEG-2 transport stream.
Snippets
<video src="https://loremfile.dev/hls/720p-10s/seg-003.ts" controls></video>
curl -O https://loremfile.dev/hls/720p-10s/seg-003.ts
720p-10s/seg-004.ts 811.2 KB (811,220 bytes) 1280x720, 2.069 s, h264, aac Segment 4 of the 720p HLS stream: H.264 plus AAC in an MPEG-2 transport stream.
Snippets
<video src="https://loremfile.dev/hls/720p-10s/seg-004.ts" controls></video>
curl -O https://loremfile.dev/hls/720p-10s/seg-004.ts
multi-bitrate/master.m3u8 244 B The master playlist: two renditions, 640x360 and the published 1280x720, each with BANDWIDTH, RESOLUTION and CODECS measured from its own segments.
Snippets
<video src="https://loremfile.dev/hls/multi-bitrate/master.m3u8" controls></video>
curl -O https://loremfile.dev/hls/multi-bitrate/master.m3u8

Every HLS file in one command, each checked against its hash: npx loremfile get --format hls, or loremfile get --format hls after pip install loremfile.

File names follow the naming grammar. Verify a download against sha256sums.txt.