OpenCut Engine API - v0.1.0
    Preparing search index...

    Interface TimelineSegment

    A single segment in the video timeline.

    Each segment maps to a contiguous portion of the video and defines what background to show, where the face bubble goes, which overlays are active, and so on.

    interface TimelineSegment {
        appMockup?: {
            accentColor?: string;
            rows?: { intent?: string; label: string; score?: number; value: string }[];
            tabs?: { active: boolean; name: string }[];
            title: string;
            url?: string;
        };
        audioWaveform?: {
            barCount?: number;
            color?: string;
            height?: number;
            intensity?: number;
            position?: "center"
            | "bottom"
            | "top";
        };
        backgroundEffect?: BackgroundEffectConfig;
        callouts?: CalloutEntry[];
        comparison?: {
            accentColor?: string;
            featureLabels: string[];
            rows: {
                features: Record<string, boolean | string>;
                highlight?: boolean;
                logo?: string;
                name: string;
            }[];
            subtitle?: string;
            title: string;
        };
        diagramSteps?: DiagramStep[];
        diagramTitle?: string;
        durationSec: number;
        faceBubble: FaceBubblePosition;
        facecamStartSec: number;
        id: string;
        inlinePanels?: InlinePanel[];
        keywords?: KeywordEntry[];
        kineticText?: {
            accentColor?: string;
            highlightWords?: string[];
            text: string;
        };
        notifications?: {
            backgroundImage?: string;
            messages: NotificationMessage[];
            style: NotificationStyle;
        };
        overlayText?: string;
        overlayTextTiming?: [number, number];
        screenImage?: string;
        screenVideo?: string;
        showEndCard?: boolean;
        showSubtitles: boolean;
        showTitleCard?: boolean;
        slideDuration?: number;
        slideImages?: string[];
        splitContent?: SplitContent;
        type: SegmentType;
        videoBackground?: {
            blur?: number;
            colorTint?: string;
            darken?: number;
            opacity?: number;
            presetIndex?: number;
            videoUrl: string;
        };
    }
    Index

    Properties

    appMockup?: {
        accentColor?: string;
        rows?: { intent?: string; label: string; score?: number; value: string }[];
        tabs?: { active: boolean; name: string }[];
        title: string;
        url?: string;
    }

    App mockup config. Required when type = "app-mockup".

    audioWaveform?: {
        barCount?: number;
        color?: string;
        height?: number;
        intensity?: number;
        position?: "center" | "bottom" | "top";
    }

    Audio waveform overlay (works with any segment type).

    backgroundEffect?: BackgroundEffectConfig

    Optional generative background effect layered behind the segment.

    callouts?: CalloutEntry[]

    Callout badges shown over the video.

    comparison?: {
        accentColor?: string;
        featureLabels: string[];
        rows: {
            features: Record<string, boolean | string>;
            highlight?: boolean;
            logo?: string;
            name: string;
        }[];
        subtitle?: string;
        title: string;
    }

    Comparison table config. Required when type = "comparison".

    diagramSteps?: DiagramStep[]

    Steps for an animated diagram. Required when type = "animated-diagram".

    diagramTitle?: string

    Title for the animated diagram.

    durationSec: number

    Duration of this segment in raw seconds (pre-speedup).

    faceBubble: FaceBubblePosition

    Where the face bubble circle appears. "hidden" = no bubble.

    facecamStartSec: number

    Start time in the raw facecam footage (seconds).

    id: string

    Unique identifier for this segment.

    inlinePanels?: InlinePanel[]

    Inline concept panels overlaid on the face (any segment type).

    keywords?: KeywordEntry[]

    Large keyword overlays shown during facecam-full segments.

    kineticText?: { accentColor?: string; highlightWords?: string[]; text: string }

    Kinetic typography config. Required when type = "kinetic-text".

    notifications?: {
        backgroundImage?: string;
        messages: NotificationMessage[];
        style: NotificationStyle;
    }

    Notification banner messages to overlay on this segment. When set, a static background image (notificationBackgroundImage) is used instead of screenVideo, and the messages slide in on top.

    Type Declaration

    overlayText?: string

    Small overlay text (e.g. "8 slides. Branded. Ready.").

    overlayTextTiming?: [number, number]

    [startSec, endSec] in raw time for the overlay text.

    screenImage?: string

    Path to a static screenshot (relative to public/). Used when type = "screen-static".

    screenVideo?: string

    Path to a screen recording video. Used when type = "screen-video".

    showEndCard?: boolean

    Whether to show the end card overlay at the end of this segment.

    showSubtitles: boolean

    Whether subtitles are shown during this segment.

    showTitleCard?: boolean

    Whether to show the title card overlay at the start of this segment.

    slideDuration?: number

    Duration each slide is shown, in raw seconds.

    slideImages?: string[]

    Array of slide image paths for a slideshow. Used when type = "slides".

    splitContent?: SplitContent

    Split-screen configuration. Required when type = "split-screen".

    Visual background type.

    videoBackground?: {
        blur?: number;
        colorTint?: string;
        darken?: number;
        opacity?: number;
        presetIndex?: number;
        videoUrl: string;
    }

    Video background config. Required when type = "video-background".