@gentbajko/slopify 3.23.0 → 3.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -69,6 +69,8 @@ const extVideoBody = z.object({
69
69
  projectId: id,
70
70
  short: shortField,
71
71
  videoId: z.string().regex(videoIdPattern),
72
+ // `/ext/video/done`: the captions went in during the upload dialog's Video elements step.
73
+ captionsAdded: z.boolean().optional(),
72
74
  });
73
75
  const goneBody = z.object({
74
76
  videos: z.array(extVideoBody).max(1000),
@@ -787,8 +789,8 @@ export function studioRoutes(deps) {
787
789
  allowOrigin(c, false);
788
790
  if (!extAllowed(c))
789
791
  return refused(c);
790
- const { projectId, short, videoId } = c.req.valid("json");
791
- confirmVideoUpload(deps, projectId, short ?? null, videoId);
792
+ const { projectId, short, videoId, captionsAdded } = c.req.valid("json");
793
+ confirmVideoUpload(deps, projectId, short ?? null, videoId, captionsAdded === true);
792
794
  return c.json({ confirmed: true });
793
795
  })
794
796
  .get("/ext/files/:projectId/:asset", zValidator("param", fileParam, onInvalid), (c) => {
@@ -819,9 +821,9 @@ export function studioRoutes(deps) {
819
821
  }));
820
822
  }
821
823
  // Studio said the upload was scheduled or published: it is on YouTube, and the Details touches
822
- // (a short's related video, the long video's end screen and captions) wait for the extension,
823
- // the pinned comment for the video to be public.
824
- function confirmVideoUpload(deps, projectId, short, videoId) {
824
+ // (a short's related video, the long video's end screen and captions, unless they went in
825
+ // during the upload) wait for the extension, the pinned comment for the video to be public.
826
+ function confirmVideoUpload(deps, projectId, short, videoId, captionsAdded = false) {
825
827
  if (!confirmUpload(deps.db, projectId, short, videoId))
826
828
  recordVideo(deps.db, projectId, short, videoId, deps.clock.now().toISOString());
827
829
  const confirmedPack = uploadPack(deps, projectId);
@@ -831,7 +833,7 @@ function confirmVideoUpload(deps, projectId, short, videoId) {
831
833
  if (confirmedItem !== undefined &&
832
834
  (confirmedItem.relatedVideoId !== undefined ||
833
835
  confirmedItem.endScreenVideoId !== undefined ||
834
- confirmedItem.captions !== undefined))
836
+ (confirmedItem.captions !== undefined && !captionsAdded)))
835
837
  setTaskState(deps.db, "finish", projectId, short, "waiting", null);
836
838
  if (confirmedItem?.kind === "video" &&
837
839
  confirmedItem.pinnedComment !== undefined &&
@@ -0,0 +1,12 @@
1
+ # Slopify 3.24.0
2
+
3
+ Released 15 October 2026.
4
+
5
+ - **Captions go in during the upload.** The Studio extension now uploads a long video's captions in Studio's upload dialog, on the Video elements step, instead of on the video's Details page after it is scheduled or published. Press Next to Video elements as usual: Add subtitles → Upload file → With timing → the project's captions file → Done happen by themselves, and a toast says "Captions uploaded." The extension still never presses Next, Save or Publish in the upload dialog.
6
+ - Studio keeps Add subtitles greyed out until the video has processed far enough to play and has a video language. Until then a toast says Studio's own reason once, and the captions go in as soon as Studio allows it. Set the video language in Details (Show more → Language) if your channel has no default language.
7
+ - If you move on before that, or Studio's dialog isn't what the extension expects, a toast says so and the captions are uploaded on the Details page after the upload, as before.
8
+ - A video whose captions went in during the upload gets no Details-page visit for captions; one still opens when it needs an end screen or a related video, and skips the captions.
9
+
10
+ ## Upgrading from 3.23.0
11
+
12
+ - The extension goes to 1.5.0. Loaded unpacked from Slopify's folder, it reloads itself once it has been idle for 45 minutes; a store install updates through the store.
@@ -1,4 +1,10 @@
1
1
  [
2
+ {
3
+ "id": "3.24.0",
4
+ "title": "Slopify 3.24.0",
5
+ "version": "3.24.0",
6
+ "date": "2026-10-15"
7
+ },
2
8
  {
3
9
  "id": "3.23.0",
4
10
  "title": "Slopify 3.23.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gentbajko/slopify",
3
- "version": "3.23.0",
3
+ "version": "3.24.0",
4
4
  "description": "Turn a prompt into a finished video, locally, with your own provider keys",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Gent Bajko",