summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/transcription
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-04-14 23:34:57 +0200
committerMaze Winther <mazewinther@gmail.com>2026-04-14 23:34:57 +0200
commit91e1232112421438ce73b9361896f9b58c84fb3e (patch)
treeb57d510a618d0a1a03a2fa3f9cc4de23eaa7f3b3 /apps/web/src/lib/transcription
parentf726d9529552c4149a95aaf555f760868a4c9f91 (diff)
downloadopencut-91e1232112421438ce73b9361896f9b58c84fb3e.tar.gz
feat: transcription diagnostics
Diffstat (limited to 'apps/web/src/lib/transcription')
-rw-r--r--apps/web/src/lib/transcription/diagnostics.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/apps/web/src/lib/transcription/diagnostics.ts b/apps/web/src/lib/transcription/diagnostics.ts
new file mode 100644
index 00000000..a1921699
--- /dev/null
+++ b/apps/web/src/lib/transcription/diagnostics.ts
@@ -0,0 +1,25 @@
+import type { DiagnosticsManager } from "@/core/managers/diagnostics-manager";
+import { timelineHasAudio } from "@/lib/media/audio";
+
+export const TRANSCRIPTION_DIAGNOSTICS_SCOPE = "transcription";
+
+export function registerTranscriptionDiagnostics({
+ diagnostics,
+}: {
+ diagnostics: DiagnosticsManager;
+}): void {
+ diagnostics.register({
+ id: "transcription.no_audio",
+ scope: TRANSCRIPTION_DIAGNOSTICS_SCOPE,
+ severity: "caution",
+ message: "No audio detected. Add a clip with audio to the timeline first.",
+ check: (editor) => {
+ const scene = editor.scenes.getActiveSceneOrNull();
+ if (!scene) return false;
+ return !timelineHasAudio({
+ tracks: scene.tracks,
+ mediaAssets: editor.media.getAssets(),
+ });
+ },
+ });
+}