SKILLS/ ORGANIZATION

bring-in-footage

Bring in accessible cloud or web media, or link local footage, and reconcile what arrived before editing.

ADD THIS SKILL
paste into a new chat

Copy this into a blank Wideframe chat. It tells the agent to build the skill, what to confirm with you first, the steps to follow, and how to verify the result.

PROMPT
I'd like you to add a skill to Wideframe called "bring-in-footage".

Save the SKILL.md below exactly as written, then confirm I can run it by saying /bring-in-footage.

---
name: bring-in-footage
description: Get footage into a Wideframe workspace from wherever it lives: a Google Drive, Dropbox or Frame.io folder, a YouTube or Vimeo link, an external drive, or a folder on the Mac. Verifies every file arrived and is readable, then hands off to the right next skill. Use when someone says "my footage is on Drive", "here's the Dropbox link", "grab this YouTube video", "it's on my LaCie", "here is the drive where the project exists", or shares a link or path before asking for anything else.
argument-hint: "[link, cloud folder, drive path, or local folder]"
---

# Bring In Footage

A first session often starts with a link or a path and nothing else. This skill turns that into a workspace with verified media and, without asking for a plan, offers the two things people do next: a rough cut or a look at the project. It never copies media off an external drive unless asked, and never assumes a cloud account is connected.

## Scope

Ingest and verification. No editing. Cloud connectors used only for download here; uploading deliverables is a different skill.

## Step 0: Identify the source

Classify what was shared:

- A `drive.google.com`, `dropbox.com` or `frame.io` link or folder name: cloud source.
- A `youtube.com`, `youtu.be`, `vimeo.com` or similar public video URL: web video.
- A `/Volumes/...` path: external or network drive.
- Any other local folder or set of files: local source.

If the message has no link or path, ask the one question: "Where is the footage? A link, a folder, or a drive?" Then stop until answered.

Defaults unless told otherwise:

- External drives and local folders: symlink into the workspace, never copy. Keep the source drive as the working location.
- Cloud folders: download into the workspace, preserving subfolders.
- Web video: best available quality up to 1080p, H.264 MP4 with audio.
- Workspace name from the folder or link title.

## Step 1: Check access

- Cloud: run the matching status command (`gdrive-status`, `dropbox-status`, `frameio-status`). If not authorized, show one sign-in prompt in plain words and wait. Do not retry in a loop.
- External drive: confirm the volume is mounted and readable. If not, say which volume is missing and stop.
- Web video: confirm the URL resolves and is public. If it needs a login, say so and stop; do not ask for credentials.

Evaluation: access is confirmed or the exact blocker is named in one sentence.

## Step 2: Enumerate and expect

- Cloud or drive: list the source recursively and record the expected file count, total size, and subfolder structure. Skip system files and sidecars unless they are media-relevant (`.xml`, `.srt`, `.aaf`).
- Web video: probe the available formats with `yt-dlp` and pick the variant matching the default.

Tell the user what is coming in one line: "312 files, 148 GB, 4 subfolders, mostly 4K 23.976. Bringing it in now." If the size is large (over 100 GB for a cloud download), say how long it is likely to take and continue.

Evaluation: an expected count and size exist before any transfer starts.

## Step 3: Bring it in

- `caltools workspace-init` if no workspace exists.
- Cloud: `gdrive-download-batch`, `dropbox-download-batch` or `frameio-download-batch`, preserving structure.
- Drive or local: symlink every media file into `source/` mirroring the folder tree.
- Web: `yt-dlp` to `source/web/`.

Long downloads run as jobs; report progress rather than going silent, and use `job-poll` until finished.

## Step 4: Verify

1. `caltools media-info-batch` on everything landed. Every file must be readable and non-zero, with fps, resolution and duration.
2. Reconcile landed count and bytes against Step 2. List anything missing, unreadable or zero-byte by name.
3. Note the mix: frame rates, resolutions, rotated clips, files without audio. This goes to the next skill.

Evaluation: landed equals expected, or every gap is named.

## Step 5: Report and hand off

Report: workspace path, what landed (count, size, structure), the media mix in one line, and anything that failed. Then offer exactly two next steps: "Want a rough cut from this (`rough-cut-to-premiere`), or is there a Premiere project I should open first (`open-my-premiere-project`)?" If there is a `.prproj` in what landed, lead with the second.

## Done when

- Access was confirmed or the exact blocker was reported without retry loops.
- Every expected file is in the workspace and readable, or listed as missing.
- External drive media was symlinked, not copied, unless the user asked to copy.
- The user was asked at most one question (source) and offered two next steps.

Download SKILL.md. If this workflow calls another named skill, add that recipe from the library too. Available tools and source access determine which steps can run.

RUN IT AGAIN

Once it’s saved, run it on the next project with /bring-in-footage, or just say:

Bring this footage into a workspace and tell me if anything is missing.

Run it on your own footage.

7-day free trial. Requires Apple Silicon.

RELATED SKILLS