From 8529be5a30239ec9da6a1e0ebef791ffff49752e Mon Sep 17 00:00:00 2001 From: screentinker Date: Thu, 23 Jul 2026 12:33:35 -0500 Subject: [PATCH] feat(content): subtitle/caption support as a content property (#223) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subtitles/captions are set once in the content library and applied automatically by the player — no in-player controls (the player stays bare). - DB: 4 new content columns (captions_enabled, captions_lang for YouTube; subtitle_url, subtitle_lang for uploaded videos), all default off/NULL. - buildSnapshotItems: denormalize the 4 fields into published_snapshot so the player receives them (enumerated query). - content.js PUT: accept the 4 fields (subtitle_url only clearable here). - POST /:id/subtitle: dedicated .vtt uploader (separate multer, since the main filter is video/image-only); stores the file in the content dir, records subtitle_url + subtitle_lang. Old subtitle file replaced; DELETE cleans up the sidecar. - Player: YouTube -> loadModule('captions') + setOption(...languageCode) in onReady (best-effort, wrapped). Uploaded video -> a appended to the