The Scenario
Your content distribution manager asked for stable, trackable delivery URLs for 15 video files that are currently sitting on a mix of short-lived storage links and vendor-hosted URLs. You have them in column A of a Google Sheet. The plan is to move them all into Shotstack's CDN so the links don't expire, then hand column B to the social scheduling team.
The bad version:
- Open the Shotstack transfer endpoint documentation, write a curl command for the first URL, fire it, wait for the transfer to confirm, copy the hosted CDN URL out of the response, and paste it into column B.
- Do that 14 more times.
- Follow up with whoever built the sheet to clarify whether row 9 was supposed to be the director's cut or the final version, because the URL just says "output-final-v3-FINAL.mp4" and you have no way to tell.
Fifteen transfers is not a heavy workload. But doing them manually means fifteen round-trips between a terminal, the API docs, and the spreadsheet — and you still have to verify the output URLs are resolving correctly before you send them.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. It reads column A, submits each URL to Shotstack's transfer endpoint, and writes the resulting hosted CDN URL into column B.
Transfer each video URL in column A to Shotstack's hosting service and write the resulting hosted asset URL into column B
SheetXAI iterates every URL in column A, calls Shotstack's transfer endpoint for each, and writes the returned hosted asset URL into column B as each transfer completes.
What You Get
- Column B fills with Shotstack CDN URLs, one per row, as transfers succeed.
- Any URL that Shotstack cannot transfer — malformed, unreachable, unsupported format — gets an error note in column B instead of a blank.
- The distribution team gets a column of stable links they can schedule against without worrying about expiry.
What If the Data Is Not Quite Ready
Some URLs in column A have already been transferred in a previous run
Rows 2 through 6 already have Shotstack CDN URLs in column B from an earlier session. You only want to transfer the remaining ones.
Transfer only the URLs in column A where column B is blank to Shotstack's hosting service — write the hosted URL into column B for each successful transfer, leave already-populated rows untouched
A few URLs are temporary signed links that expire in 30 minutes
Column C has an expiry flag — "expires-soon" — for the time-sensitive links. You want those transferred first.
Transfer video URLs in column A to Shotstack hosting in this order: process rows where column C says "expires-soon" first, then process the remaining rows — write hosted URLs into column B
The sheet has a mix of video and image URLs and you only want to transfer video files
Column B has a file-type tag — "video" or "image" — and Shotstack hosting should only receive the video files.
Transfer to Shotstack hosting only the rows in column A where column B says "video" — skip image rows — write hosted asset URLs into column C
Transfer all videos, verify the output URLs resolve, and flag any broken ones
Transfer every URL in column A to Shotstack's hosting service and write the hosted URL into column B — then check each URL in column B to confirm it returns a 200 response, and write "ok" or "broken" into column C
The point: transfer and verification are two steps that belong in one prompt when you need to hand the results to another team the same day.
Try It
Open the sheet with your video URLs and Get the 7-day free trial of SheetXAI and ask it to transfer each file into Shotstack hosting. Hand column B to your distribution team once the CDN URLs are in. See also: Export completed render URLs into your sheet and the Shotstack overview.
