ColorOS TV Hub

Parse any M3U playlist, browse channels, and watch live TV with your favorite HTML5 player — all from a single Cloudflare Worker.

⚡ Serverless · Single-file · No bindings

Source & Player

Applies to M3U fetch & stream playback.

No channel selected.
Channel Explorer
Load a playlist to begin.

API Reference

The same endpoints powering this UI. Try them directly or from your own app.

GET/api/m3u

Parse a remote M3U / M3U8 playlist into structured JSON.

  • urlrequiredAbsolute URL of the .m3u / .m3u8 source.
  • groupFilter channels by group-title (case-insensitive, partial match).
  • qFree-text search across channel names (partial match).
  • limitMax number of channels returned (default 500, max 2000).
Returns{ source, total, matched, returned, groups[], channels[{name,logo,group,url,tvg}] }
GET/api/groups

Return only the distinct group-title list of a playlist.

  • urlrequiredAbsolute URL of the .m3u source.
Returns{ source, count, groups[] }
GET/api/stream

Server-side stream proxy. Fetches a media/playlist URL and returns it same-origin (fixes ERR_BLOCKED_BY_ORB and CORS). HLS manifests are rewritten so segments/keys also load same-origin.

  • urlrequiredAbsolute URL of the media/playlist (may already be a proxy URL).
  • baseOriginal source URL; used to resolve relative URIs inside HLS manifests.
  • pxProxy prefix applied to inner segment/key URIs.
ReturnsRaw media bytes or rewritten HLS playlist (same-origin).
GET/api/docs

Return this API documentation as JSON.

No parameters.

Example/api/docs
Returns{ name, version, endpoints[] }