Lesson 4 of 15
41. Design Live Streaming at Scale (Live Cricket)

41.3 What are the doors?

3 min read+10 XP

Step 3: API and data model (10 minutes)

GET /v1/matches/{id}/play (signed in; checks entitlement) returns: { "playlist": "https://live.cdn…/m42/master.m3u8?token=…", "score_url": "https://cdn…/m42/score.json", "ads": {...} } GET <playlist> and <segments> (CDN; token checked at the edge) GET <score_url> (CDN-cached for ~2 s) returns: { "match_time": 5132, "text": "IND 126/2 (14.3)", "events": [ ... ] }

The playlist URL carries a short-lived signed token, so the edge can check entitlement without calling our servers for every segment.