Skip to main content

playback-webview-debugging

Use when playback, auth recovery, queue sync, or hidden WebView state diverges from native Swift state and you need to debug the DRM playback WebView, bridge events, or cookie/auth behavior.

Source facts

Repository
sozercan/kaset
Last source activity
September 6, 2026 at 06:01
Detected SKILL.md language
English
Stars
2,416
Forks
177

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
playback-webview-debugging
description
Use when playback, auth recovery, queue sync, or hidden WebView state diverges from native Swift state and you need to debug the DRM playback WebView, bridge events, or cookie/auth behavior.
metadata
{"short-description":"Debug playback WebView state"}
# Playback WebView Debugging Use this skill when playback, auth recovery, queue sync, or hidden WebView state diverges from the native Swift state. ## When To Use It - Playback starts, stops, or advances unexpectedly - Auth looks stale and API calls return 401/403 - WebView metadata drifts from the native queue - You need to inspect JavaScript bridge events or DOM/player state ## Runtime Workflow 1. Reproduce with the packaged app or `Scripts/compile_and_run.sh`. 2. Use Xcode Console filters to watch runtime logs: `subsystem:Kaset category:player` `subsystem:Kaset category:auth` 3. In debug builds, verify `webView.isInspectable = true`, then inspect the player WebView with Safari Web Inspector. 4. To simulate auth expiry, delete `__Secure-3PAPISID` via Safari Web Inspector storage tools and trigger an authenticated API call. 5. If auth cookies or headers look suspicious, run `swift run api-explorer auth` and compare against the exported cookie state. ## Landmarks - `docs/testing.md` - `docs/playback.md` - `Sources/Kaset/Views/MiniPlayerWebView.swift` - `Sources/Kaset/Views/SingletonPlayerWebView+ObserverScript.swift` - `Sources/Kaset/Views/SingletonPlayerWebView+NavigationState.swift` - `Sources/Kaset/Views/SingletonPlayerWebView+QueueInjection.swift` - `Sources/Kaset/Services/Player/PlayerService.swift` - `Sources/Kaset/Services/Player/PlayerService+WebPlaybackIdentity.swift` - `Sources/Kaset/Services/Player/PlayerService+WebQueueSync.swift` - `Sources/Kaset/Services/Player/PlayerService+QueueNavigationRecovery.swift` - `Sources/Kaset/Services/WebKit/WebKitManager.swift`
View on GitHub