Quickstart
Pick a URL from the catalogue and pass it to whatever you already use. Nothing below needs a key.
Play it
ffplay, which is the quickest way to see whether a file is sane:
ffplay https://vid.thisaintu.sbs/media/timecode/timecode-720p.mp4
VLC, including the HLS ladder:
vlc https://vid.thisaintu.sbs/media/timecode/hls/master.m3u8
Inspect it
What the container actually claims, rather than what the filename suggests:
ffprobe -v error -show_streams -of json \
https://vid.thisaintu.sbs/media/motion/motion-1080p.mp4
Confirm the moov atom is at the front, which is what makes progressive playback start before the download finishes:
curl -s -r 0-1023 https://vid.thisaintu.sbs/media/timecode/timecode-360p.mp4 \
| xxd | head
Fetch it
A plain download with the transfer summary kept:
curl -O https://vid.thisaintu.sbs/media/sustained/sustained-1080p.mp4
A byte range, which is what a player issues when you seek:
curl -r 1048576-2097151 -o chunk.bin \
https://vid.thisaintu.sbs/media/sustained/sustained-1080p.mp4
Verify what arrived:
curl -sO https://vid.thisaintu.sbs/media/SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing
In a browser
Progressive MP4 needs no library at all:
<video controls
src="https://vid.thisaintu.sbs/media/timecode/timecode-720p.mp4"></video>
HLS plays natively in Safari and on iOS. Everywhere else it needs a player such as hls.js — see the HLS notes for why, and for the one attribute people usually get wrong.
In CI
Read the catalogue instead of hardcoding paths, so a new rendition does not require editing the job:
curl -s https://vid.thisaintu.sbs/api/streams.json \
| jq -r '.streams[] | select(.id=="motion") | .progressive["1080p"]'
If a job needs to detect an outage rather than a content
problem, request /health.txt. It is three bytes and is not
cached, which keeps a health check from succeeding against a stale edge.