Skip to content

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

Draft
jet3004 wants to merge 1 commit intoelliotttate:mainfrom
jet3004:codex/url-import-workflow
Draft

Add URL import workflow for direct media and YouTube ingest#40
jet3004 wants to merge 1 commit intoelliotttate:mainfrom
jet3004:codex/url-import-workflow

Conversation

@jet3004
Copy link
Copy Markdown

@jet3004 jet3004 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. Exposed via Command Palette, Lua, and MCP.

  • New Features

    • New 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 support.
    • Programmatic access via Lua and MCP (urlImport.import|start|status|cancel), plus @mcp.tool() wrappers and tests.
  • Notes

    • Scope: direct .mp4/.mov/.m4v/.webm and YouTube VOD; live streams are rejected.
    • Non-blocking async downloads with improved HLS/fragment progress and clearer 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 b8d1c03. Summary will update on new commits.

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.

1 participant