UNPKG

major-ai-skills

Version:

Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.

177 lines (140 loc) 9.06 kB
--- name: final-cut-pro description: "Automate Final Cut Pro interchange with FCPXML, prepare Motion or Compressor workflows, and troubleshoot media rendering." category: video-editing risk: safe source: self source_type: self date_added: "2026-08-26" tags: ["final-cut-pro", "fcpxml-v11", "apple-silicon-media-engine", "prores-raw", "magnetic-timeline", "compressor-cli", "claude"] tools: ["claude", "cursor", "gemini", "codex"] --- # Apple Final Cut Pro NLE AI Skill Guide (Claude) ## Overview & Engine Architecture Apple Final Cut Pro is a non-linear video editing (NLE) application engineered exclusively for macOS, Metal, and the Apple Silicon Media Engine (dedicated hardware ProRes/HEVC encode/decode accelerators). Final Cut Pro's core architecture centers around the **Magnetic Timeline (collision-free ripple editing & connected clips)**, native **ProRes / ProRes RAW / Apple Log** processing, **FCPXML (v1.11 / v1.12)** metadata interchange schemas, **Motion 5 Template integration**, and headless batch encoding via the **Apple Compressor CLI (`compressor`)**. Claude operates as a Principal macOS Post-Production Systems Architect and Final Cut Pro Automation Specialist, specializing in **FCPXML sequence synthesis**, **Apple Silicon Media Engine optimization**, **Library (`.fcpbundle`) storage maintenance**, and **Compressor batch render automation**. ### Final Cut Pro Engine & FCPXML Dataflow Stack ``` ┌─────────────────────────────────────────────────────────────┐ Final Cut Pro Architecture Magnetic Timeline & Editing Core ├── Primary Storyline & Connected B-Roll Audio/Video Clips ├── Compound Clips, Multicam Sync (Up to 64 Angles) └── Object Tracker & Cinematic Mode AI Depth Maps Apple Silicon & Metal Hardware Pipeline ├── Apple Silicon Media Engine (Hardware ProRes Accelerator│ ├── Metal 3 Shaders & Wide Gamut HDR (Rec.2020 PQ / HLG) └── Background Render Cache & Automatic Optical Flow Warp Interchange & Automation Subsystem ├── FCPXML Interchange Engine (DTD v1.11 / v1.12 XML) ├── Apple Compressor Command Line (`compressor -batchname`)│ └── Motion 5 Template Pipeline (`~/Movies/Motion Templates`)│ └─────────────────────────────────────────────────────────────┘ ``` --- ## Operational Capabilities & Agent Directives 1. **Programmatic FCPXML Generation**: Author Python scripts to construct valid FCPXML documents specifying project formats, assets, synchronized audio/video storylines, connected titles, and chapter markers. 2. **Library (`.fcpbundle`) Storage Triage**: Recover hundreds of gigabytes of disk space by automating the purging of redundant high-resolution ProRes 422 render files and optical flow caches. 3. **Apple Silicon Codec & Performance Tuning**: Optimize editing playback by configuring ProRes Proxy media pipelines and setting Viewer quality to "Better Performance". 4. **Apple Compressor CLI Batch Automation**: Construct bash scripts dispatching automated multi-format export jobs (ProRes master, web H.264, YouTube 4K) using the `compressor` command line tool. --- ## Production Python Automation: Automated FCPXML v1.11 Timeline Generator Save this script as `generate_fcpxml.py` to programmatically build an importable Final Cut Pro project XML file: ```python """ Apple Final Cut Pro: Automated FCPXML v1.11 Sequence Generator Generates a valid FCPXML sequence file containing video assets, audio b-roll, and markers. """ import sys import xml.etree.ElementTree as ET def generate_fcpxml_project(project_name: str, output_xml_path: str): print(f"--- [GENERATING APPLE FCPXML PROJECT: {project_name}] ---") # 1. Root Element & DTD Version root = ET.Element("fcpxml", {"version": "1.11"}) # 2. Resources Element (Formats and Media Assets) resources = ET.SubElement(root, "resources") # 4K UHD 24fps Format (frameDuration="100/2400s") ET.SubElement(resources, "format", { "id": "r1", "name": "FFVideoFormat3840x2160p24", "frameDuration": "100/2400s", "width": "3840", "height": "2160", "colorSpace": "1-1-1 (Rec. 709)" }) # Asset Definition asset = ET.SubElement(resources, "asset", { "id": "r2", "name": "Interview_A_Cam", "src": "file:///Volumes/Media/Footage/Interview_01.mov", "start": "0s", "duration": "600s", "hasVideo": "1", "hasAudio": "1", "format": "r1" }) # 3. Library & Event Hierarchy library = ET.SubElement(root, "library", {"location": "file:///Volumes/Media/AutoLibrary.fcpbundle"}) event = ET.SubElement(library, "event", {"name": "Automated_Assembly"}) project = ET.SubElement(event, "project", {"name": project_name}) # 4. Sequence & Spine (Primary Storyline) sequence = ET.SubElement(project, "sequence", { "format": "r1", "duration": "120s", "tcStart": "0s", "tcFormat": "NDF" }) spine = ET.SubElement(sequence, "spine") # Primary Storyline Video Clip clip = ET.SubElement(spine, "asset-clip", { "ref": "r2", "offset": "0s", "name": "Interview_A_Cam_Take1", "start": "10s", "duration": "60s", "format": "r1" }) # Add Marker on Clip ET.SubElement(clip, "marker", { "start": "25s", "duration": "100/2400s", "value": "Subject begins intro statement", "completed": "0" }) # Write Output XML tree = ET.ElementTree(root) ET.indent(tree, space=" ", level=0) tree.write(output_xml_path, encoding="utf-8", xml_declaration=True) print(f"✅ Successfully generated Final Cut Pro XML: {output_xml_path}") print("To import: In Final Cut Pro, select File -> Import -> XML -> select this file.") if __name__ == "__main__": out = sys.argv[1] if len(sys.argv) > 1 else "AutoAssembly_Project.fcpxml" generate_fcpxml_project("Review_Assembly_V1", out) ``` --- ## Technical Troubleshooting Matrix | Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway | | :--- | :--- | :--- | | **Library (`.fcpbundle`) Size Balloons to $>500\text{GB}$** | Background render files accumulating for every edit in ProRes 422 format. | 1. In Final Cut Pro, select Library in sidebar.<br>2. Select *File $\rightarrow$ Delete Generated Library Files*.<br>3. Check **Delete Render Files (All)** and click OK.<br>4. In Preferences $\rightarrow$ Playback, uncheck **Background render**. | | **FCPXML Import Error: `DTD Validation Failed`** | Time values do not conform to rational frame fraction strings (e.g. `100/2400s` for 24fps or `100/3000s` for 30fps). | Ensure all `duration`, `start`, and `offset` attributes in FCPXML use exact rational fractions or integer seconds (`10s`). | | **Motion Title / Effect Shows Red Warning Screen: `Missing Plugin`** | Custom Motion Template was moved or not installed in user template folder. | Verify template is located in `~/Movies/Motion Templates.localized/Titles/` with `.localized` extension intact. | | **ProRes RAW Frame Drops on 8K Timeline** | External drive read throughput cannot sustain $>300\text{MB/s}$ continuous bandwidth. | In Viewer menu (top-right), switch from **Original/Optimized** to **Proxy Preferred** after generating 50% ProRes Proxies. | --- ## Command Line Syntax & Apple Compressor Recipes ```bash # 1. Open Final Cut Pro Library via Terminal open -a "Final Cut Pro" "/Volumes/Media/Production.fcpbundle" # 2. Execute Apple Compressor Batch Export via CLI compressor -batchname "WebDailyMaster" -jobpath "/Volumes/Media/Exports/" -settingpath "ProRes 422 4K.cmprstng" # 3. Read Final Cut Pro User Preferences defaults read com.apple.FinalCut ``` ### Essential File Locations - **FCP Libraries**: `*.fcpbundle` (macOS Packages) - **Motion Templates**: `~/Movies/Motion Templates.localized/` - **User Preferences**: `~/Library/Preferences/com.apple.FinalCut.plist` --- ## Agent Operational Directive > **MANDATORY**: When generating FCPXML documents, always express frame durations as exact rational fractions (e.g. `100/2400s` for 23.976/24fps) to prevent timeline timecode drift across NLE roundtrips.