# Uploading movie files and creating review links

**URL:** <https://forum.frame.io/t/uploading-movie-files-and-creating-review-links/3139>\
**Category:** Uncategorized\
**Tags:** v4\
**Created:** [January 26, 2026, 2:52pm UTC](https://forum.frame.io/t/uploading-movie-files-and-creating-review-links/3139 "2026-01-26T14:52:07Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![joeleveson](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/joeleveson/32/584_2.png) [@joeleveson](https://forum.frame.io/u/joeleveson)\
**Post date:** [January 26, 2026, 2:52pm UTC](https://forum.frame.io/t/uploading-movie-files-and-creating-review-links/3139/1 "2026-01-26T14:52:07Z")

</div>

Hello,

We are updating our code base to work with Frameio v4. Though having trouble uploading a mov file and making a review link.

Previous:

`result = client.assets.upload(`  
` destination_id=destination_id,`  
` filepath=filename`  
`)`

I’ve changed it to this but the file just says permanently upload status on Frameio:

`result = client.files.create_local_upload(`  
` account_id=account_id,`  
` folder_id=destination_id,`  
` data={`  
` “file_size”: os.path.getsize(filename),`  
` “name”: filename`  
` }`  
`)`

Also creating the review link we previously used this:

```auto
asset = client.assets.get(asset_id)
rev_link = client.review_links.create(
             asset["project_id"],
             name=asset["name"],
             enable_downloading=True
) 

rev_assets = self.client.review_links.update_assets(
             link_id=rev_link["id"],
             asset_ids=[asset["id"]]
)

```

Is the `client.shares.create` the new equivalent?

Many Thanks

---

<div class="post-metadata">

**Author:** ![RobertLoughlin](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/robertloughlin/32/233_2.png) [@RobertLoughlin](https://forum.frame.io/u/RobertLoughlin)\
**Post date:** [January 26, 2026, 6:55pm UTC](https://forum.frame.io/t/uploading-movie-files-and-creating-review-links/3139/2 "2026-01-26T18:55:39Z")

</div>

Hi @joeleveson !

To answer your first question, the V4 SDK does not currently have an uploader like the V3 SDK did. This is something we’re hoping to include in the future. For now, though, `client.files.create_local_upload()` will create an empty asset on [Frame.io](http://Frame.io) and a 201 response will provide you with upload URLs you can use to design your own uploader. The number of upload URLs you get will depend on the size of the file you’re looking to upload. I can provide some sample code if needed.

To answer your second question, Shares have replaced both Review Links and Presentation Links. That means that, yes, `client.shares.create()` is the method you’d want to use to create a Share link.

---

<div class="post-metadata">

**Author:** ![CharlieAnderson](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/charlieanderson/32/491_2.png) [@CharlieAnderson](https://forum.frame.io/u/CharlieAnderson)\
**Post date:** [January 26, 2026, 7:05pm UTC](https://forum.frame.io/t/uploading-movie-files-and-creating-review-links/3139/3 "2026-01-26T19:05:19Z")

</div>

@joeleveson we have a guide on [How to Upload](https://next.developer.frame.io/platform/v4-experimental/docs/core-guides/how-to-upload#multi-part-upload) on our docs that has example code on creating a multipart upload via python.

---

<div class="post-metadata">

**Author:** ![joeleveson](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/joeleveson/32/584_2.png) [@joeleveson](https://forum.frame.io/u/joeleveson)\
**Post date:** [January 26, 2026, 7:55pm UTC](https://forum.frame.io/t/uploading-movie-files-and-creating-review-links/3139/4 "2026-01-26T19:55:49Z")

</div>

Thanks very much @RobertLoughlin and @CharlieAnderson . With your feedback and the upload code link our movies are uploading now. Many thanks.

Having a bit of a problem with the `client.shares.create` command. I used the example provided here:

> **[Create share | Frame.io API Documentation](https://next.developer.frame.io/platform/api-reference/shares/create)**
>
> Create share. Rate Limits: 10 calls per 1.00 minute(s) per accountuser

And tested with both the upload directory id (which we used before) and the uploaded asset id but its gives an `raise UnprocessableEntityErro`r:

`frameio.errors.unprocessable_entity_error.UnprocessableEntityError: headers: {‘date’: ‘Mon, 26 Jan 2026 19:49:48 GMT’, ‘content-type’: ‘application/json; charset=utf-8’, ‘content-length’: ‘59’, ‘connection’: ‘keep-alive’, ‘api-version’: ‘4.0’, ‘cache-control’: ‘max-age=0, private, must-revalidate’, ‘server’: ‘Cowboy’, ‘x-ratelimit-limit’: ‘10’, ‘x-ratelimit-remaining’: ‘9’, ‘x-ratelimit-window’: ‘60000’, ‘x-request-id’: ‘WORK_ID’}, status_code: 422, body: {‘errors’: [{‘detail’: ‘expiration: must be in the future’}]}`

Is there and invalid or missing value?

Thanks very much for your help.

Joe

---

<div class="post-metadata">

**Author:** ![CharlieAnderson](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/charlieanderson/32/491_2.png) [@CharlieAnderson](https://forum.frame.io/u/CharlieAnderson)\
**Post date:** [January 26, 2026, 8:03pm UTC](https://forum.frame.io/t/uploading-movie-files-and-creating-review-links/3139/5 "2026-01-26T20:03:42Z")

</div>

hi @joeleveson the error is `‘expiration: must be in the future’` if you are copying the example, be sure to update the `"expiration":` to be some time in the future as the expiration can’t be in the past when created.

 ![Screenshot 2026-01-26 at 3.04.32 PM](https://canada1.discourse-cdn.com/flex035/uploads/frame1/original/1X/bd02f94d7b58a7b6ccc28510847b361f832c4bb2.png)

---

<div class="post-metadata">

**Author:** ![joeleveson](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.frame.io/joeleveson/32/584_2.png) [@joeleveson](https://forum.frame.io/u/joeleveson)\
**Post date:** [January 26, 2026, 9:05pm UTC](https://forum.frame.io/t/uploading-movie-files-and-creating-review-links/3139/6 "2026-01-26T21:05:07Z")

</div>

Oh yes. Changed that and all working great now! Many thanks @CharlieAnderson
