Skip to content

Add URL import workflow for direct media and YouTube ingest#40

Open
JT-Apps wants to merge 2 commits intoelliotttate:mainfrom
JT-Apps:codex/url-import-workflow
Open

Add URL import workflow for direct media and YouTube ingest#40
JT-Apps wants to merge 2 commits intoelliotttate:mainfrom
JT-Apps:codex/url-import-workflow

Conversation

@JT-Apps
Copy link
Copy Markdown

@JT-Apps JT-Apps commented Apr 11, 2026

Summary

This PR adds a native URL import workflow for direct media and YouTube ingest.

It introduces a SpliceKit-native path from a remote video URL to usable media in Final Cut Pro, with support for importing into the library/event and optionally placing the imported clip into the active timeline.

What Changed

  • added a new SpliceKitURLImport service for URL classification, provider-backed download orchestration, progress tracking, cancellation, and structured results
  • added Command Palette entry points for:
    • Import URL to Library
    • Import URL to Timeline
  • added prompt / progress HUD handling for URL import, including clearer timeline defaults and cancel support
  • wired the workflow into the server-side timeline placement path
  • exposed the feature to Lua
  • exposed the feature to MCP
  • added MCP endpoint coverage
  • updated build wiring so the new source file is compiled and helper tools can be linked during deploy

Supported Scope In This PR

  • direct media URLs such as .mp4, .mov, .m4v, .webm
  • YouTube VOD-style URLs

Notes

This is meant to be a working upstreamable feature branch, not just an external script. It keeps the workflow inside SpliceKit’s existing architecture rather than bypassing it.

The implementation also includes guardrails discovered during local testing, including:

  • live-stream rejection instead of hanging on provider resolution
  • improved progress handling for fragment/HLS-style downloads
  • non-blocking async download flow
  • clearer failure handling and cancellation

Validation

  • make all
  • python3 -m py_compile mcp/server.py tests/test_mcp_endpoints.py
  • manual testing in the modded Final Cut Pro app for:
    • import to library
    • insert at playhead
    • insert at timeline start
    • append to timeline end
    • YouTube VOD ingest

Why

SpliceKit already has strong in-process control once media exists inside Final Cut, but it has been missing a first-class path from:

remote URL -> usable media in Final Cut

This PR fills that gap and makes URL-based ingest available through the same Command Palette / Lua / MCP surfaces as the rest of the tool.


Summary by cubic

Adds a native URL import workflow to bring remote video (direct media and YouTube VOD) into Final Cut Pro, with optional automatic timeline placement. Available via Command Palette, Lua, and MCP.

  • New Features

    • SpliceKitURLImport service for URL classification, provider-backed download, progress/cancel, and structured results; integrated with server-side timeline placement.
    • Command Palette: “Import URL to Library” and “Import URL to Timeline” with prompt/progress HUD and cancel.
    • Programmatic access via Lua and MCP (urlImport.import|start|status|cancel), plus @mcp.tool() wrappers and tests.
    • Build: include Sources/SpliceKitURLImport.m and set a module cache path in OBJC_FLAGS for reliable builds.
  • Notes

    • Scope: direct .mp4/.mov/.m4v/.webm and YouTube VOD; live streams are rejected.
    • Non-blocking async downloads with improved HLS/fragment progress and clear failure/cancel handling.
    • Placement modes: import only, insert at playhead, append to end; optional event/title overrides.
    • Provider URLs require yt-dlp and ffmpeg to be available to the modded app.

Written for commit d059ad6. Summary will update on new commits.

@JT-Apps JT-Apps force-pushed the codex/url-import-workflow branch from fd0fdf1 to d059ad6 Compare April 12, 2026 06:43
@JT-Apps JT-Apps marked this pull request as ready for review April 12, 2026 06:49
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 8 files

@latenitefilms
Copy link
Copy Markdown
Owner

@elliotttate - Let me know if you need me to help with any of these pull requests? Do we just want to merge them in?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants