elliotttate / elliotttate/SpliceKit
Add native URL import workflow for direct media and YouTube ingest
- Dominant language
- Objective-C
- Stars
- 144
- Forks
- 26
- PR merge metrics
- No merged PRs in 30d
Description
I’m not deeply technical on the Final Cut internals side, so I may not be framing this perfectly, but I did get a working prototype of this flow running locally and wanted to share it because I think it would be genuinely useful in SpliceKit for everyone. Not really versed in PRs, etc, so tried to make this as clear as possible and provide my solution but maybe you could tighten up/simplify this working modification.
## Objective
Add a native URL import workflow for direct media and YouTube ingest.
## Proposal
SpliceKit already has the right architecture for direct in-process Final Cut Pro automation, but it is currently missing a native ingest path for remote video URLs.
I’d like to propose a built-in URL import workflow that lets a user paste a supported URL, download the media locally, import it into Final Cut Pro, and optionally place it in the active timeline.
## Why this fits SpliceKit
This feels like a natural extension of the current architecture:
- Command Palette actions
- JSON-RPC / MCP surfaces
- embedded Lua scripting
- timeline-aware editing actions
Right now there is strong control over Final Cut once media is already present, but there is no first-class path from:
`remote URL -> usable media in Final Cut`
This proposal fills that gap.
## Proposed user-facing commands
- `Import URL to Library`
- `Import URL to Timeline`
These can share one underlying workflow with different defaults:
- library-first import
- timeline-first import with placement options
## Proposed workflow
1. User pastes a supported URL
2. SpliceKit validates and classifies the source
3. Media downloads asynchronously
4. Media is normalized or converted if needed
5. Asset is imported into the current library or event
6. User can optionally place the imported clip into the active timeline
## Suggested v1 scope
### Must support
- direct media URLs such as `.mp4`, `.mov`, `.m4v`, `.webm`
### Should support
- YouTube VOD-style URLs
### Explicit non-goals for v1
- DRM-protected content
- login-required providers
- arbitrary scraping
- treating live streams as finished downloadable media
## Suggested architecture
### New core service
- `SpliceKitURLImport.h`
- `SpliceKitURLImport.m`
Responsibilities:
- URL validation and classification
- resolver selection
- provider-backed download orchestration
- progress tracking
- structured result state
- import handoff into Final Cut
### Existing surfaces to wire into
- `SpliceKitCommandPalette.m`
- `SpliceKitServer.m`
- `SpliceKitLua.m`
- `mcp/server.py`
## Why this is valuable
- makes remote-media ingest feel native instead of external
- improves Command Palette usefulness
- expands what Lua and MCP can automate
- creates a stronger bridge between web discovery and editorial workflows
## Prototype package
I’m attaching a working prototype package with:
- a patch file
- the touched source files
- a writeup of the proposed architecture
Included files:
- `Makefile`
- `Sources/SpliceKitCommandPalette.m`
- `Sources/SpliceKitLua.m`
- `Sources/SpliceKitServer.m`
- `Sources/SpliceKitURLImport.h`
- `Sources/SpliceKitURLImport.m`
- `mcp/server.py`
- `tests/test_mcp_endpoints.py`
I know this may not match the exact upstream implementation approach you’d want long-term, but I wanted to share a real working prototype because I think the feature itself would be a strong addition to SpliceKit. This was a long time 'want' of mine but a third party plugin could never directly add it to the timeline so I am stoked it can be done!
[YouTube_URL_Import_Suggestion.zip](https://github.com/user-attachments/files/26648493/YouTube_URL_Import_Suggestion.zip)
[url-import-youtube-current.patch](https://github.com/user-attachments/files/26648494/url-import-youtube-current.patch)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.