Capture, decrypt, and restream toolkit with compiled-in app modules (RTE, TG4, BBC), on-device MITM proxy, streamd control plane, and www. BBC module.yaml is published (clear streams); other module values stay local. |
||
|---|---|---|
| .. | ||
| adb | ||
| app | ||
| brightcove | ||
| capture | ||
| modcfg | ||
| mpd | ||
| phonecap | ||
| proxy | ||
| repo | ||
| session | ||
| uiflow | ||
| wvkey | ||
| go.mod | ||
| go.sum | ||
| README.md | ||
pkg — shared Go libraries
Imported by apps/capture, apps/agent, apps/streamd, apps/proxy, apps/cli
and apps/modules as module drmdecryption via:
replace drmdecryption => ../pkg
Packages
| Package | Role |
|---|---|
adb |
ADB client (shell, push/pull, UI dump, tap) |
app |
App plugin interface + registry (+ optional Catalog / StreamDefaults) |
uiflow |
Phone-UI primitives app modules drive playback with |
modcfg |
Load an app module's local module.yaml + env overrides |
proxy |
Push/start/stop appproxy, CA install/reinject, pull captures |
phonecap |
One phone MITM job (proxy → launch → autoplay → wvkey → session) |
wvkey |
Shells out to apps/wvkey/wvkey.py |
brightcove |
Brightcove Playback API + HLS Widevine extraction (platform, not provider) |
capture |
Parse on-device capture JSON + score candidate manifest URLs |
session |
Write outputs/<app>/<stamp>/ |
mpd |
Manifest rewriter interface, registry, synthetic live MPD builder, local server |
repo |
Find repo root (apps/pkg/go.mod) |
Nothing here names a streaming provider. Provider logic lives in apps/modules/<name>;
provider values live in that module's gitignored module.yaml.
Build / test
# Go must be on PATH (or set GOROOT)
go -C apps/pkg test ./...
No binary of its own — everything ships in bin/drm, built from apps/cli.