Numeric captions disappear from transcripts and embed subtitles
Les mainteneurs répondent en général sous 1 jour
@AksharP5 y travaille déjà.
Depuis le 23/10/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- bun, react, typescript
- Domaine
- frontend, testing-qa
Piste de recherche
Read the parser in apps/web/app/s/[videoId]/_components/utils/transcript-utils.ts and the parser in apps/web/app/s/[videoId]/_components/tabs/Transcript.tsx; the reproduction command in the issue exercises the production edit helper and embed parser. Check how numeric cue identifiers are distinguished from caption text, then rerun the reproduction and confirm numeric captions remain in the parsed entries. Two open pull requests already address this issue.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
Caption text containing only digits disappears from the web Transcript tab and embed subtitles. An owner can save a correction such as 0 or 007 successfully, then lose that row when the saved transcript reloads. The text is still present in the stored VTT.
Both transcript parsers treat every numeric line as a cue identifier, including a numeric payload after a timing line. The embed player then regenerates its subtitle track from the incomplete parsed entries.
Expected: numeric text remains visible and is preserved in exported and embedded subtitles.
Reproduction
- Open a Cap you own with a completed transcript.
- Change a caption's text to
007and save. - Reload the transcript. The row disappears even though the edit was saved.
The same behavior is reproducible without auth or storage by running the production edit helper and the parser used by the embed player from the repository root:
bun -e 'import { parseVTT } from "./apps/web/app/s/[videoId]/_components/utils/transcript-utils"; import { updateVttEntryText } from "./apps/web/lib/transcript-vtt"; const original = "WEBVTT\n\n1\n00:00:00.000 --> 00:00:01.000\nZero.\n\n"; const saved = updateVttEntryText(original, 1, "0"); console.log({ saved: saved.updated, entries: parseVTT(saved.content) });'
Actual: { saved: true, entries: [] }.
The proposed fix retains { id: 1, timestamp: "00:00", startTime: 0, text: "0" }. A three-cue recording generated by the production caption formatter likewise loses its standalone 2026 cue on main and keeps it with the fix.
Additional Context
- Baseline main:
1965b31796db6da107a8f859ff34397468ae9512. - Linux x86-64, Bun 1.4.1, React 19.2.4. Actual baseline/patched Transcript components were exercised in Chromium with auth/storage hooks replaced by local fixtures. The numeric row is absent before, visible after, and clicking it seeks to the correct 1.5-second position.
- This verifies real parsing, rendering, edit-helper output and subtitle regeneration. It does not claim an authenticated backend write or a newly collected speech-recognition response; the timed-word fixture is synthetic.
- Related open #2416 and #2417 consolidate these parsers but retain the numeric-ID rule. The current #2417 parser at
8341885995171e9e191d88d47ea2ba01d73be7ddwas also executed and still drops a plain numeric cue. This fix may need its condition carried into the shared parser if that refactor lands first.
Affected sources: Transcript parser, embed utility parser.
- Langage dominant
- Rust
- Étoiles
- 23.4k
- Forks
- 2.1k
- Merge moyen
- 1 j 20 h
- PR mergées (30 j)
- 348
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de CapSoftware/Cap
-
Web player intercepts ⌘⇧M and blocks Chrome profile-menu shortcutPeut-être pris @AatmanAJ l’a pris il y a 8 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
CapSoftware/Cap#2596 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
CapSoftware/Cap#2384 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Dashboard pagination causes full page reloads on self-hosted CapPeut-être pris @Dewin l’a pris il y a 36 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
CapSoftware/Cap#2305 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
CapSoftware/Cap#1714 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Camera-only SDK recordings cannot be saved after their source endsPeut-être pris @AksharP5 l’a pris aujourd’hui. Ouverte
Difficulté 4/5 1-2 jours Accessibilité débutants 35/100
CapSoftware/Cap#2970 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de CapSoftware/Cap
Issues similaires
-
bug: workspace access hint suggests a --subject command that fails for hyphen-leading OIDC subjectsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
type: bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
`last_error_thread_local_then_global` fails when it runs beside the `lumen_event_detail` testOuverteA-FFI C-Testing D-Straightforward S-Ready
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
docs priority:P3 size:XS
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
Appimage ConventionsOuverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour