---
title: Export to Premiere Pro, DaVinci Resolve or Final Cut Pro
description: Your agent exports an invideo timeline as a project file that Premiere Pro, DaVinci Resolve or Final Cut Pro opens, with its media in a folder or a zip.
---
Your agent turns an invideo timeline into a project file that Premiere Pro, DaVinci Resolve or Final Cut Pro opens. `export` with `format` set to `premiere`, `davinci` or `final_cut` makes it. The project comes with its media in a folder or a zip, so an editor can open it in their app and keep cutting. Exports are free.

Use this when the rough cut happens in invideo, with your agent, and the finish happens in another editing app.

## Quickest path

Set up your agent first with [invideo for AI agents](/agents). Then give it the timeline URL and this prompt:

```text
Check this timeline, then export it as a Premiere Pro project with its media
in a zip. Give me the download when it is ready.
```

In a chat app, your agent gives you the export card's URL, and you download the files from invideo. In a terminal, your agent saves the files to a folder with `invideo notebook show <card-url> --out <dir>`.

## How it works

`export` takes a timeline's URL and a `format`. The branch in the URL is what gets exported, so export the branch you approved.

| `format` | What you get |
| --- | --- |
| `premiere` | A project Premiere Pro opens, with its media |
| `davinci` | A project DaVinci Resolve opens, with its media |
| `final_cut` | A project Final Cut Pro opens, with its media |
| `invideo` | An invideo project export |
| `video` | A rendered video file |

For `premiere`, `davinci` and `final_cut`, the option `media_packaging` says how the media comes with the project:

- **`folder`** is the default. The card gives the project file and a zip of the media.
- **`zip`** gives the project file, and a zip that holds the media and a second copy of the project.
- **`none`** sends the project without its media. Use it when the editor has the source files. They point the clips at their own copies in the app.

The export returns its thread's URL at once, and the export card's URL once it appears. The agent reads the card for its status. Once it is `completed`, the card gives the files, with fresh download URLs on every read, and the project's export page. `completed` can arrive before the media zip is packed. When the card says the media is still packing, the agent reads the card again until the zip is in the files list.

Exports are free. They need export permission on the project. In invideo Editor, the same export is **Editable project** in the **Export** window, where DaVinci Resolve is the **OpenTimelineIO** option.

### Check the project in the app before you deliver

The project opens in the other app as an editable timeline. Some parts of an invideo edit may look different there. Open the project and check these before you deliver:

- Transitions, and custom transitions
- Effects, and custom effects made with `add_custom_effect`
- Text and titles: fonts, styles and position
- Captions
- Color grades
- Audio levels, fades and audio effects
- Keyframed moves, like zooms and fades
- Clip timing at each cut

Compare the project with a frame from invideo at the same time. `capture` gives frames of the timeline as it looks in invideo.

## Steps

The agent runs these steps for one project export.

<Steps>
<Step title="Check the timeline">
The agent runs the checklist in [Check your video before you say it is done](/how-to/check-your-video), with `check_timeline` and `capture`. Expected result: no findings, and frames that look right.
</Step>
<Step title="Save a checkpoint to send">
The agent saves a checkpoint with `timeline_history`, or marks the branch final. Expected result: a checkpoint you can name in the hand-off.
</Step>
<Step title="Export the project">
The agent calls `export` with the timeline URL, the `format` for the app, `media_packaging`, and an `idempotency_key`. Expected result: a thread URL at once.
</Step>
<Step title="Wait for the card">
The agent follows the card with `status` or `read`, at the time `retry_after_s` gives. Expected result: status `completed`, then the project file and the media zip in the files list.
</Step>
<Step title="Hand off the files">
The agent gives you the download, or saves it with `invideo notebook show <card-url> --out <dir>` in a terminal. Expected result: a project file and a zip of its media. Then you open it in the app and run the check above.
</Step>
</Steps>

The same export from a terminal:

```bash
invideo edit check <edit-url>
invideo edit capture <edit-url> --at 0,5,10 --out ./frames
invideo edit show <edit-url>
invideo branch checkpoint <edit-url> --title "to the editor" \
  --token <state_token>
invideo edit export <edit-url> --format premiere --media-packaging zip \
  --idempotency-key "handoff-v1" --json
invideo status <card-url> --wait
invideo notebook show <card-url>
invideo notebook show <card-url> --out ./handoff
```

Where each value comes from:

- `<edit-url>` is the URL of the branch you approved, from `invideo edit new` or `invideo branch new`. `<state_token>` comes from `invideo edit show`.
- `<card-url>` is `.sequences[0]` of the export answer. `invideo status` waits and saves nothing.
- The first `notebook show` reads the card. Run it again until the media zip is in its files, then save with `--out`.

For DaVinci Resolve use `--format davinci`, and for Final Cut Pro use `--format final_cut`. For a timeline inside the edit, add `--timeline` with its id from `invideo edit show`.

The key MCP call is `export`. `<edit-url>` is the URL of the branch you approved, from `new_timeline` or `timeline_history`.

```json
{
  "url": "<edit-url>",
  "format": "davinci",
  "options": { "media_packaging": "folder" },
  "idempotency_key": "handoff-v1"
}
```

## If something goes wrong

Most export problems come from the wrong branch, a missing permission, or a retry without a key.

| Symptom | Fix |
| --- | --- |
| The export is refused for permission | The project needs export permission for you. Ask the person who shares the project. |
| The project shows an earlier state of the edit | The URL named another branch. Export the URL of the branch you approved. |
| The export card returns `failed` | Read the card for why. Try once more. If it fails again, file `report_bug` with the URL and what you sent. |
| A call times out or returns `completion_unknown` | Retry with the same `idempotency_key`. It finds the first export. |
| CLI exit 7 | Nothing ran. Run the same command again. |
| The clips have no media in the app | With `none`, no media came with the project. Point the clips at your copies, or export again with `folder` or `zip`. |
| The card says `completed` but lists only the project file | The media zip is still packing. Read the card again in a few seconds until the zip is listed. |
| The checks before export find a problem | Fix the edit first, then check again. |
| You want to keep editing after the hand-off | The agent works on a new branch, so the checkpoint you sent stays as it was. |
| CLI exit 0, but the folder is empty | `invideo status` saves nothing. Run `invideo notebook show <card-url> --out <dir>`. |
| A download link stops working | Read the card again for a fresh URL. |
| Avoid: calling `export` again to check on one | Instead: `status` or `read` the card's URL. |
| Avoid: delivering without opening the project | Instead: open it in the app and run the check above. |

## Related

- [Check your video before you say it is done](/how-to/check-your-video)
- [Know the cost before you spend](/how-to/cost-before-you-spend)
- [Run invideo in CI and on servers](/how-to/ci-and-servers)
- [Export video, audio or a still from invideo Editor](/projects-and-exports/how-to-export-video-audio-or-a-png-still-from-invideo-editor)
- [Security and data](/account/security-and-data)