Caption placement and stream time

iCouldPlay VTT style blocks: separate STYLE, cue text and observed appearance

Save a style block and two wording controls to inspect boundaries and rendering without promising full CSS support.

English translation of the Chinese original, translated on . Original publication dates, attribution, code and version notes are retained.

CSS inside a subtitle file does not promise web-equivalent styling in every player, and treating STYLE as cue text loses the block boundary. Create an original small file, inspect structure and check wording separately from appearance in iCouldPlay. Edit externally, use existing playback controls and preserve a readable fallback with conditional compatibility observations.

1. Prepare a wording baseline independent of styling

Choose an owned clip of at least ten seconds with a stable background and no burned-in exercise sentence. Confirm basic playback and record identity, source and subtitle conditions. Create UTF-8 plain text externally and retain a plain-sentence fallback. This tests one simple block, not all CSS or an in-app style-programming interface. Without a loading control, complete source inspection and mark playback unperformed rather than using a file-list screenshot as rendering evidence.

2. Save one style block and two cues

Copy this original file. STYLE precedes the first cue, has no internal blank lines and ends before a blank separator. review is a custom class used only in the first cue; readable wording is identical. Do not move declarations into cue text or insert a timing arrow as a comment. Preserve punctuation and save an actual .vtt, keeping text size, orientation and video file fixed.

WEBVTT

STYLE
::cue(.review) {
  color: yellow;
  background-color: black;
}

00:00:01.000 --> 00:00:04.000
<c.review>Read the complete sentence.</c>

00:00:05.000 --> 00:00:08.000
Read the complete sentence.

3. Separate structure, expectation and observation

The public W3C WebVTT draft’s style-block description distinguishes style blocks from timed cues. This block targets review. Mark its boundaries and cue intervals before stating styling intent, leaving observed appearance blank until playback. yellow in source is not an observation. No visible difference does not erase the format concept. Keep file structure separate from compatibility in the current player path.

4. Read the sentence before describing appearance

Play from zero and check full words and punctuation before recording text color, background and readability. Report identical appearance honestly instead of switching films to force a result. For a difference, identify the cue and attribute without generalizing to all properties or devices. Pause to read if needed, then resume to check intervals; a paused frame does not establish a style-induced persistence error. Intact wording with unchanged color differs from missing text.

5. Use the plain fallback to isolate the layer

Switch to a fallback without STYLE or class markup while preserving wording, timing and clip. Verify its filename and replay from the beginning. If only the styled file loses words or exposes tags, retain both and identify the exact cue. If neither appears, check loading, selection and intervals before blaming CSS. Record real app appearance settings if present, without inventing an “enable web styling” switch. A setting change creates another comparison round.

6. Inspect a misplaced-block control without overwriting

Save a clearly named teaching error with STYLE after the first cue and compare ordering in the editor only. It need not enter routine playback. This shows that block placement matters, not merely its letters. Preserve original timing and wording instead of treating misplaced declarations as new dialogue. For complex real files, retain the original and inspect boundaries before claiming that a cleaned copy represents what the author originally wrote.

7. Troubleshoot blank lines, escaping and duplicate captions

Literal STYLE on screen calls for checking cue-text placement, escaping and block separation. Duplicate sentences call for checking burned-in text or another embedded track before color properties. Verify selection; if switching seems ineffective, leave the playback page, reopen it, reselect the copy and play from before the cue. Do not invent unseen app logs or clear the library. Preserve reasons and versions, changing one condition at a time rather than attributing a multi-change recovery to one cause.

8. Finish and preserve a readable fallback

Keep block placement, class references, intervals, complete wording, observed appearance and unknowns. Reopen the plain fallback and play beyond eight seconds while retaining originals. Source validity is not universal device styling support, and successful playback is not support for arbitrary web rules. Report performed actions only and start another record after changing engine path, source or display settings. Identify file organization, wording and appearance as separate layers rather than a vague “styles work.”

VTT class labels, VTT comment boundaries.

Checked on November 12, 2026 against the official iCouldPlay App Store listing and Apple public lookup: version 1.1.1, requiring iOS / iPadOS 15.0 or later. The public 1.1.1 release notes list Kodi, OpenList / AList and S3-compatible storage, with improvements to source switching and captions after seeking. The tasks use this public scope and existing playback capabilities. Check controls in your installed version. Self-made samples, manual records and external file preparation are workflows, not newly promised automatic features. No physical-device or private-server test is claimed.