Workspace · Player
Public player pageBest for acquisition and first-touch testing. Workspace player laneBest for repeat use and controlled handoff into inspector or downloader. Shared runtimeStill uses the stable app bundle, so this split stays low-risk.
Validate playback inside its own lane.
Player work is easier to share and revisit when it has its own route instead of one query tab.
Playback lane
Confirm the stream before you escalate the job.
Keep validation and export separate so the runtime follows the same order as the public task routing.
Capability boundary
Playback is a verification step first. Treat the browser as a clean way to test stream health before heavy actions.
- CORS, DRM, hotlink protection, or unsupported codecs can block playback.
- When playback fails, route back to inspector or link-checker instead of pretending every stream is supported.
- Large-screen modes help review playback, but they do not expand browser codec support.
Large-screen mode
Theater mode is for wide layouts. On mobile, the route should fall back to standard mode instead of forcing a cramped expanded canvas.
- Keep the player or preview visible above secondary metadata.
- Do not assume touch devices want side rails open.
- Use this mode only when there is enough width for a stable preview.
Storage contract
Saved playlists stay in Local Storage. TXT is the everyday import/export format and JSON remains the backup format.
- Playlist keys: m3u8-playlists, m3u8-recent-playlists.
- Settings key: m3u8-last-used-settings.
- Import TXT for routine work; use JSON only for backup and restore.
Execution surface
Player runtime
The current browser-side player runtime is mounted below.
M3U8 Toolkit
Loading workspace lane…
Low-interference sponsor slotView ad policy
Sponsor cards stay after the execution surface instead of cutting across the main input or primary action.
Slot IDad-ws-sponsor-primary-m3u8-player
Placementsponsor-card
Modeself-promo
Densitylight