@coursebuilder/core
Version:
Core package for Course Builder
74 lines (73 loc) • 2.68 kB
JavaScript
import {
mergeSrtWithScreenshots
} from "../../../chunk-XLXVFTME.js";
import {
VIDEO_SRT_READY_EVENT
} from "../../../chunk-FEG4FJXK.js";
import "../../../chunk-JLNB6NRA.js";
import {
__name
} from "../../../chunk-VLQXSCFN.js";
// src/inngest/video-processing/functions/generate-transcript-with-screnshots.ts
import { NonRetriableError } from "inngest";
var generateTranscriptWithScreenshotsConfig = {
id: `generate-transcript-with-screenshots`,
name: "Generate Transcript with Screenshots"
};
var generateTranscriptWithScreenshotsTrigger = {
event: VIDEO_SRT_READY_EVENT
};
var generateTranscriptWithScreenshotsHandler = /* @__PURE__ */ __name(async ({ event, step, db, partyProvider }) => {
const videoResourceId = event.data.videoResourceId;
if (!videoResourceId) {
throw new Error("video resource id is required");
}
const videoResource = await step.run("get the video resource from Sanity", async () => {
return db.getVideoResource(videoResourceId);
});
if (!videoResource) {
throw new NonRetriableError(`Video resource not found for id (${event.data.videoResourceId})`);
}
const { transcriptWithScreenshots } = await step.run("generate transcript with screenshots", async () => {
if (!videoResource.muxPlaybackId) {
throw new Error(`Video resource (${event.data.videoResourceId}) does not have a muxPlaybackId`);
}
if (!event.data.srt) {
throw new Error(`Video resource (${event.data.videoResourceId}) does not have an srt`);
}
return await mergeSrtWithScreenshots(event.data.srt, videoResource.muxPlaybackId);
});
await step.run("update the video resource in the database", async () => {
return db.updateContentResourceFields({
id: videoResourceId,
fields: {
transcriptWithScreenshots
}
});
});
await step.run("send the transcript to the party", async () => {
return await partyProvider.broadcastMessage({
body: {
body: transcriptWithScreenshots,
requestId: event.data.videoResourceId,
name: "transcriptWithScreenshots.ready"
},
roomId: event.data.videoResourceId
});
});
return {
transcriptWithScreenshots
};
}, "generateTranscriptWithScreenshotsHandler");
var generateTranscriptWithScreenshots = {
config: generateTranscriptWithScreenshotsConfig,
trigger: generateTranscriptWithScreenshotsTrigger,
handler: generateTranscriptWithScreenshotsHandler
};
export {
generateTranscriptWithScreenshots,
generateTranscriptWithScreenshotsConfig,
generateTranscriptWithScreenshotsHandler,
generateTranscriptWithScreenshotsTrigger
};
//# sourceMappingURL=generate-transcript-with-screnshots.js.map