CDN returns the promo MPD when the app UA survives a redirect; the play API now serves a signed Chrome/122 proxy for MPD and segments. iOS pins that UA on every hop. |
||
|---|---|---|
| .. | ||
| scripts | ||
| store/screenshots | ||
| VMC | ||
| VMC.xcodeproj | ||
| VMCTV | ||
| VMCTV.xcodeproj | ||
| .gitignore | ||
| ExportOptions.plist | ||
| Podfile | ||
| README.md | ||
VMC iOS (SwiftUI + VLCKit 4)
Native iPhone/iPad app voor Vonas Media Cluster.
Op de Mac
cd ~/Code/mediacluster/apps/ios
open VMC.xcodeproj
Eerste keer (of na schone sync) VLCKit 4 zetten (PiP):
bash scripts/fetch-vlckit.sh # download ~500MB VLCKit 4.0.0a19
bash scripts/link-vlckit.sh # → Vendor/VLCKit.xcframework
Let op: MobileVLCKit 3.x heeft geen Apple Picture in Picture. VMC iOS 0.5.3+ vereist VLCKit 4.
In Xcode:
- Signing & Capabilities → Team + Background Modes → Audio, AirPlay, and Picture in Picture
- iPhone selecteren → ▶ Run
Picture in Picture
- Systeem-PiP via VLCKit (
VLCPictureInPictureDrawable) - PiP-knop in de speler + automatisch bij app naar achtergrond tijdens afspelen
- Encrypted DASH via lokale stream-proxy → VLC
Apple TV (tvOS)
Apart project (zelfde API, TV-UI met focus/remote):
cd ~/Code/mediacluster/apps/ios
bash scripts/fetch-tvvlckit.sh
bash scripts/link-tvvlckit.sh
open VMCTV.xcodeproj
- Bundle ID:
nl.vonas.mediacluster.tvos - Team:
X25NYX3K49 - Playback: TVVLCKit (VLC 3.x engine) — PiP is iPhone/iPad-only
- Details:
VMCTV/README.md
Let op
Vendor/VLCKit.xcframework en Vendor/TVVLCKit.xcframework staan niet in git (te groot). Altijd op de Mac via de scripts installeren.
Live TV / Events / streams (0.5.2+)
streamIdis een String ("123"of"custom:uuid"); path-segmenten worden URL-geëncodeerd (inclusief:).- Play-response parseert
format, optioneledrm-payload enwatchSessionIdvoor live-lijsten én events. - Heartbeat:
POST /api/v1/client/watching/heartbeat~elke 25s bij custom live + events. - Encrypted DASH: lokale in-app proxy voor ondersteunde providers; Xtream HLS/TS speelt direct.
- Events-tab verschijnt als
/me→events.enabledtrue is.