infra/stacks/f1-stream/files/backend
Viktor Barzin 60aec74acd f1-stream: Stremio addon extractor — TvVoo + StremVerse Sky F1 / DAZN F1
5 parallel research agents surveyed Stremio addons, F1 TV / Sky / DAZN
official APIs, IPTV M3U lists, and free-to-air broadcasters. The clean
finding: two community Stremio addons already index Sky Sports F1 +
DAZN F1 via their public HTTP APIs — no Stremio client required, just
GET /stream/<type>/<id>.json on the addon's hosted instance.

New `stremio.py` extractor pulls from:
- **TvVoo** (`https://tvvoo.hayd.uk/manifest.json`) — wraps Vavoo IPTV.
  Lists Sky Sports F1 UK + Sky Sports F1 HD + Sky Sport F1 IT + Sky
  Sport F1 HD DE + DAZN F1 ES. Returns 2 IP-bound m3u8 URLs per
  channel. Source: github.com/qwertyuiop8899/tvvoo. Vavoo's CDN SSL
  certs are currently expired so most clients fail verification today
  — addon framework is right but delivery is degraded.
- **StremVerse** (`https://stremverse.onrender.com/manifest.json`) —
  Returns 11+ streams per id (`stremevent_591` = F1, `stremevent_866`
  = MotoGP). Mix of DRM-walled DASH, JW-broken-chain JWT URLs, and
  HuggingFace-Space proxies that 404 without a per-instance api_password.

The extractor surfaces 15 candidate URLs per run; verifier filters to
the playable subset. Today that subset is 0 (Vavoo cert expiry + JW
chain + proxy auth), but the wiring is correct: as the addons fix
delivery or rotate to fresh URLs, candidates will start passing.

Other agent findings worth noting (not coded but documented):
- F1 TV Pro live = Widevine DASH; impossible without a CDM. VOD is
  clean HLS but only post-session.
- Sky Go / DAZN / Viaplay / Canal+ = all Widevine + geo-fenced + active
  DMCA enforcement. Pursuing not feasible.
- ServusTV AT (free F1 race weekends) = clean public HLS at
  rbmn-live.akamaized.net/hls/live/2002825/geoSTVATweb/master.m3u8 but
  geo-fenced; needs an Austrian-IP egress proxy/VPN.
- iptv-org/iptv has an F1 Channel (Pluto TV IE) at
  jmp2.uk/plu-6661739641af6400080cd8f1.m3u8 — 24/7 free, BG works,
  but only historic races + shoulder programming. Worth adding as a
  curated entry later.
- boxboxbox.* (community-favourite F1 race-weekend domain) is dead
  across all known TLDs as of today.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 23:16:39 +00:00
..
extractors f1-stream: Stremio addon extractor — TvVoo + StremVerse Sky F1 / DAZN F1 2026-05-07 23:16:39 +00:00
__init__.py [ci skip] f1-stream: add F1 schedule subsystem (Phase 2) 2026-02-23 22:55:13 +00:00
embed_proxy.py f1-stream: drop demo + landing-page extractors, add fetch-proxy injection 2026-05-06 21:50:54 +00:00
health.py f1-stream: add real F1 stream extractors and iframe player support 2026-03-01 14:35:19 +00:00
m3u8_rewriter.py [ci skip] f1-stream: add stream health checker and HLS proxy (Phases 4-5) 2026-02-23 23:41:16 +00:00
main.py f1-stream: only show streams confirmed playable by headless browser 2026-05-06 21:00:07 +00:00
playback_verifier.py chrome-service: in-cluster headed Chromium pool for f1-stream verifier 2026-05-07 10:43:40 +00:00
proxy.py [ci skip] f1-stream: add CDN token refresh, SvelteKit frontend, multi-stream layout (Phases 6-8) 2026-02-23 23:59:35 +00:00
requirements.txt f1-stream: only show streams confirmed playable by headless browser 2026-05-06 21:00:07 +00:00
schedule.py [ci skip] f1-stream: add F1 schedule subsystem (Phase 2) 2026-02-23 22:55:13 +00:00
stealth.py chrome-service: in-cluster headed Chromium pool for f1-stream verifier 2026-05-07 10:43:40 +00:00
token_refresh.py [ci skip] f1-stream: add CDN token refresh, SvelteKit frontend, multi-stream layout (Phases 6-8) 2026-02-23 23:59:35 +00:00