Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/gratitude5dee/wzrd-studio-desktopfinal/llms.txt

Use this file to discover all available pages before exploring further.

Clip Studio is WZRD Studio’s dedicated clip-cutting workspace. It takes long-form video — whether a local file or a YouTube URL — and uses AI signal fusion and native FFmpeg to identify the moments most likely to perform on short-form platforms. The result is a timeline of ranked, editable clip candidates that you can preview, refine, brand, and export as publication-ready vertical videos in one session.

Route

/clip-studio

How It Works

1

Import your source

Open a local video with the native desktop file picker, drop a file in-browser, or paste a YouTube URL to download a 1080p MP4 directly through the yt-dlp wrapper.
2

Generate clip candidates

Choose a mode: Viral Clip Version (AI signal fusion), Timestamp Clips (paste start–end ranges), or Auto Clip (continuous 60-second segments, no AI).
3

Review the timeline

Inspect ranked candidates on the interactive timeline. Scrub, adjust in/out points with drag handles, include or exclude clips, and edit caption titles directly.
4

Export

Render included clips as 9:16 vertical MP4s (with optional brand-logo intro and watermark) to a chosen folder. Each export produces a thumbnail alongside the clip.

Clip Analysis Modes

Viral Clip Version

Fuses YouTube viewmap replay peaks, transcript windows, representative frame thumbnails, screenshot heatmaps, manual timestamps, and free-text notes into ranked clip candidates via the analyzeVideoWithAiProvider GMI service.

Timestamp Clips

Parses pasted start–end ranges (e.g. 0:32–1:15) into timeline clips without any cloud analysis. Useful when you already know the cut points.

Auto Clip

Splits the imported source into continuous segments up to 60 seconds each. No AI, no network calls — runs entirely from local metadata.

Electron IPC Channels

All media operations are powered by Electron IPC handlers namespaced wzrd:clip-studio:*. These are available only in WZRD Studio Desktop.
Runs ffprobe on the local file to extract duration, streams, dimensions, FPS, codec, bitrate, and format name.
desktop.getVideoMetadata({
  filePath: '/path/to/video.mp4',
  ffmpegPath?: '/opt/homebrew/bin/ffmpeg',
});
// → { durationSeconds, width, height, fps, codec, bitrate, formatName }
Internally calls buildFfprobeMetadataArgs and parseFfprobeMetadata from electron/clip-studio-ffmpeg.js.
Performs a fast stream-copy trim (-c copy) between startSeconds and startSeconds + durationSeconds. No re-encode, so it completes near-instantly.
// electron/clip-studio-ffmpeg.js
export function buildCutClipArgs(params) {
  return [
    '-y', '-ss', formatSecondsForFfmpeg(params.startSeconds),
    '-i', params.sourcePath,
    '-t', formatSecondsForFfmpeg(params.durationSeconds),
    '-map', '0', '-c', 'copy', '-movflags', '+faststart',
    params.outputPath,
  ];
}
Seeks to atSeconds and captures a single JPEG frame at quality 2 (-q:v 2).
export function buildThumbnailArgs(params) {
  return [
    '-y', '-ss', formatSecondsForFfmpeg(params.atSeconds),
    '-i', params.sourcePath,
    '-frames:v', '1', '-q:v', '2',
    params.outputPath,
  ];
}
Re-encodes the trimmed segment to a 1080×1920 vertical format using a scale-and-crop filter, then optionally composites a brand-logo intro and bottom watermark.
// Core vertical filter
export const VERTICAL_9_16_FILTER =
  'scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920';
When a logoPath is supplied, the filter graph becomes:
[0:v] → scale/crop → setsar=1 [base]
[1:v] logo → split → intro (fade in/out, centred, up to logoIntroSeconds)
                   → watermark (50% opacity, bottom-centre, after intro)
[base + intro + watermark] → [v]
Encode settings: libx264, veryfast, CRF 18, AAC 192k, +faststart.

YouTube Integration

Clip Studio includes a full yt-dlp wrapper for importing YouTube videos without leaving the app.

URL Validation

// electron/clip-studio-youtube.js
export function isSupportedYoutubeUrl(rawUrl: string): boolean {
  // Accepts youtube.com and youtu.be hostnames only
}

Download Pipeline

1

Fetch video info

buildYoutubeInfoArgs(url) calls yt-dlp --dump-single-json to read metadata including the “most replayed” viewmap heatmap (if available).
2

Download 1080p MP4

buildYoutubeDownloadArgs({ url, outputTemplate, ffmpegPath }) uses the format selector bv*[height=1080][ext=mp4]+ba[ext=m4a]/b[height=1080][ext=mp4] and remuxes to MP4 via FFmpeg.
3

Extract subtitles

buildYoutubeSubtitleArgs({ url, outputTemplate }) downloads English VTT captions using --write-auto-subs and --write-subs (auto-generated and manual subs) and parses them into transcript segments for signal fusion.
4

Parse progress

parseYoutubeDownloadProgress(text) converts yt-dlp’s [download] NN% lines into structured { stage, percent, message } objects, reporting stages downloading (0–94%), processing (95%), and starting (0%).

Viewmap / Most-Replayed Data

When yt-dlp metadata includes YouTube’s “most replayed” heatmap, parseYoutubeViewmap(payload) normalises the raw heatmap / most_replayed arrays into scored, time-stamped replay peaks. These peaks appear as orange markers on the Clip Studio timeline and are fed directly into the AI signal-fusion analysis as high-confidence candidate seeds.
type ViewmapPoint = {
  startSeconds: number;
  endSeconds: number;
  value: number;
  normalizedScore: number; // 0–100
};

Waveform Display

Waveform peaks are extracted via wzrd:media:extract-waveform-peaks (using buildExtractWaveformPcmArgs — a PCM pipe from ffmpeg -f f32le at 8 kHz). The peaks power the scrubber visualisation below the video preview so you can precisely locate cuts by audio shape.

Interactive Timeline

The timeline component (ClipTimeline) renders clip candidates as coloured blocks with draggable in/out handles:

Zoom presets

Fit — whole source fits viewport. Min — minute-level overview. Sec — second-level cuts. Frame — frame-precise editing. Keyboard +/- for free zoom; F to fit selected clip; ⇧F for whole-source fit.

Snap behaviour

Clip handles snap to frame boundaries and to adjacent clip edges. Hold Shift, Alt, or while dragging to disable snapping.

Candidate sources

Clips are colour-coded by origin: orange = AI (GMI), emerald = timestamp, cyan = auto, zinc = manual.

Signal badges

Each AI candidate shows evidence badges: viewmap_peak, manual_timestamp, transcript_hook, visual_frame, screenshot_heatmap.

Signal Fusion Analysis

When you click Analyze, Clip Studio:
  1. Captures representative frames at viewmap-peak timestamps (desktop: via extractRepresentativeFrames IPC; browser: via canvas seek + toDataURL).
  2. Builds an AnalysisContextPackage combining viewmap data, transcript windows, frame thumbnails, screenshot heatmaps, manual timestamps, and free-text notes.
  3. Sends the package to analyzeVideoWithAiProvider (GMI edge function) which returns ranked ClipCandidate[] with score, hook, reason, archetype, platformFit, and evidenceSummary.
  4. Deduplicates overlapping candidates with enforceUniqueClipCandidates.

Caption / Title Overlays

Clip Studio builds unique, non-colliding TikTok-style caption titles for exported clips using:
  • buildCaptionTitleTargets(candidates) — maps each included clip to a title target.
  • buildUniqueClipCaptionTitles({ clips, source, existingLibrary }) — ensures no two exports share the same file name.
  • buildExistingCaptionCollisionInputs(library) — loads previously exported clip names to prevent duplicate file names across sessions.

Export Readiness Checklist

Before exporting, Clip Studio evaluates four readiness conditions:
ConditionSignal
Source imported with local path🟢 Green dot
FFmpeg and FFprobe available🟢 Green dot
Export folder chosen🟢 Green dot
At least one clip marked “Include”🟢 Green dot
Export requires WZRD Studio Desktop. FFmpeg must be on the system PATH or configured via the ffmpeg path override setting (/opt/homebrew/bin/ffmpeg for Homebrew installs). yt-dlp must similarly be available for YouTube downloads.

Settings

SettingDefaultNotes
Viral Finder PromptBuilt-inCustomize the AI analysis instruction
Timeout60sMax analysis wait time
Default modeViralviral or auto
Platform presetShortsshorts, tiktok, reels, multi
ffmpeg path overrideffmpegFull path to a custom FFmpeg binary
yt-dlp path overrideyt-dlpFull path to a custom yt-dlp binary
Captions on by defaultOffAuto-attach transcript excerpt to exports
Vertical 9:16 exportOnUses scale/crop; toggling off produces an untransformed cut
Brand logoNonePNG/SVG logo for intro fade + bottom watermark
Logo intro duration3sHow long the centred intro logo stays on screen
Logo watermark opacity50%Opacity of the persistent bottom watermark
Settings are persisted locally via saveClipStudioSettings and survive app restarts.

Export Library

Successfully exported clips are saved to a local library (listExportedClips / saveExportedClip / deleteExportedClip) so you can track what has already been cut from a given source and avoid duplicate file names on re-export.
After export, use the Send to Editor button on any library entry to push the clip directly into the WZRD Video Editor timeline as a project asset.

Build docs developers (and LLMs) love