UNPKG

@coursebuilder/core

Version:

Core package for Course Builder

74 lines (73 loc) 2.68 kB
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