StreamClipper AI Faz 1: ingestion + sinyal analizi + STT + altyapı iskeleti

yt-dlp headless capture (15dk segmentleme), ses peak + chat velocity sinyal
tespiti, OpenAI Whisper STT (kelime zaman damgalı), BullMQ/Redis/Postgres
altyapısı ve kanal durumu + transkript kütüphanesi gösteren Next.js panel.
LLM virality skorlama, render/crop/altyazı ve multi-platform dağıtım bu
fazın kapsamı dışında.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-30 14:36:50 +03:00
co-authored by Claude Sonnet 5
commit eccc74166a
44 changed files with 3897 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
import { Queue } from "bullmq";
import { redisConnection } from "./redis";
/**
* Queue names are shared across the Node (api-daemon) and Python (worker)
* services via the protocol-compatible `bullmq` package on both sides.
* Keep this list in sync with apps/worker/worker/queues.py.
*/
export const QUEUE_NAMES = {
STREAM_INGEST: "stream-ingest",
SIGNAL_DETECTION: "signal-detection",
STT_SCORING: "stt-scoring",
// Defined for future modules (render/distribution) — no processor yet.
VIDEO_RENDER: "video-render",
POST_PUBLISH: "post-publish",
} as const;
export interface StreamIngestJob {
sessionId: string;
channelDbId: string;
youtubeUrl: string;
}
export interface SignalDetectionJob {
rawSegmentId: string;
filePath: string;
sessionId: string;
}
export const streamIngestQueue = new Queue<StreamIngestJob>(QUEUE_NAMES.STREAM_INGEST, {
connection: redisConnection,
});
export const signalDetectionQueue = new Queue<SignalDetectionJob>(QUEUE_NAMES.SIGNAL_DETECTION, {
connection: redisConnection,
});