From 564c64f4c76de651a9555e0fa68bfab316f5dde7 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Thu, 7 May 2026 23:47:50 +0000 Subject: [PATCH] f1-stream: register HmembedsExtractor in registry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Companion commit to 92474254 — the new extractor wasn't being registered, only the file was added. Add the import + register call in create_registry(). Co-Authored-By: Claude Opus 4.7 --- stacks/f1-stream/files/backend/extractors/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/stacks/f1-stream/files/backend/extractors/__init__.py b/stacks/f1-stream/files/backend/extractors/__init__.py index 72e4d667..9b60e56a 100644 --- a/stacks/f1-stream/files/backend/extractors/__init__.py +++ b/stacks/f1-stream/files/backend/extractors/__init__.py @@ -15,6 +15,7 @@ from backend.extractors.aceztrims import AceztrimsExtractor from backend.extractors.chrome_browser import ChromeBrowserExtractor from backend.extractors.curated import CuratedExtractor from backend.extractors.dd12 import DD12Extractor +from backend.extractors.hmembeds import HmembedsExtractor from backend.extractors.stremio import StremioAddonExtractor from backend.extractors.subreddit import SubredditExtractor from backend.extractors.daddylive import DaddyLiveExtractor @@ -64,6 +65,10 @@ def create_registry() -> ExtractorRegistry: # JW Player file URL. The site embeds the m3u8 in HTML so curl-based # parsing is enough — no browser needed. registry.register(DD12Extractor()) + # HmembedsExtractor offline-decodes hmembeds.one JWT m3u8 URLs + # (base64+XOR with hardcoded key per page; reverse-engineered + # 2026-05-07). Verifier filters dead origins. + registry.register(HmembedsExtractor()) # StremioAddonExtractor calls Stremio addon HTTP APIs (TvVoo, StremVerse) # which already index Sky F1 / DAZN F1 / Vavoo IPTV channels. No # Stremio client needed — just /stream//.json calls.