Videos, Sources & Storage

Where to host your source files

Updated October 5, 2026

SmartVideo pulls your original video from wherever you store it, encodes it, and delivers it through our CDN. For external sources there’s one hard requirement: the URL you give the plugin (or paste into a <smartvideo> tag) must return the file body to an anonymous HTTP GET. Uploaded Library videos skip it — their swarmify:// reference is resolved by SmartVideo. Everything else is per-provider plumbing to get to that URL.

Pick the provider you already use; the matrix below summarizes how to make a file SmartVideo-fetchable on each one, and the linked article walks through the current console steps.

Provider matrix

ProviderPublic accessDirect URL formatCORS requiredNotes
Amazon S3Public bucket policy scoped to a video prefix, or private S3 bucket with CloudFront OAC and no viewer signinghttps://<bucket>.s3.<region>.amazonaws.com/<key> or public CloudFront URLNot required for import or plain playback; required for original-source playback with <track> or crossoriginKeep the source readable while embedded; presigned and signed CloudFront URLs work until they expire
Google Cloud StorageDedicated public bucket: uniform bucket-level access + Storage Object Viewer for allUsers; public access prevention not enforced on the bucket or by organization policyhttps://storage.googleapis.com/<bucket>/<key>Not required for import or plain playback; required for original-source playback with a direct-child <track> or crossoriginEveryone can read and list all objects; organization policy may block public access
WasabiMake Public on eligible accounts; otherwise use a stable source such as the SmartVideo Libraryhttps://<serviceURL>/<bucket>/<key> using the bucket’s regionNot required for import or plain playback; Wasabi’s default CORS configuration allows original-source playback with <track> or crossorigin="anonymous", and a custom configuration must allow GET from your websiteWasabi restricts public access to certain paid accounts established before March 13, 2023; Console presigned URLs work only until they expire, within 12 hours or when the session ends
DigitalOcean SpacesObject ACL set to Publichttps://<space>.<region>.digitaloceanspaces.com/<key>Not required for import or plain playback; required for original-source playback with a direct-child <track> or crossoriginPublic files are internet-visible; keep file listing restricted; presigned URLs expire, so they are not suitable as sources
DropboxStandard Copy link on the filedropbox.com/scl/fi/... share linkNot required for import; the share link opens a Dropbox page rather than the video file, so the video may not play before conversion finishesUse the link from Share → Copy link
Google DriveAnyone with the linkShare link from Copy linkNot required for import; the share link opens a Google Drive page rather than the video file, so the video plays in SmartVideo once conversion finishesFiles under 100 MB import as your original file; larger files import from Drive’s playback copy, so add the link once the video plays in Drive’s preview
pCloudEnable the Public Folder (Premium and Business plans; off by default) and upload thereThe file’s Public Folder direct link (not a shared link)Not required for import or plain playback; original-source playback with <track> or crossorigin works only if pCloud allows cross-origin requestsEvery file in the Public Folder is public; direct links can’t be password-protected
PublitioSet the file’s privacy to Public; don’t assume the default is publicVideo file URL from Share → Source (a <source src> entry, preferably MP4)Not required for import or plain playback; original-source playback with <track> or crossorigin works only if Publitio allows cross-origin requestsPrivate file URLs work only until their access token expires after 24 hours; use a public URL
WordPress Media LibraryNone — handled by the SmartVideo pluginhttps://<site>/wp-content/uploads/...Not required — same origin as WPUse the SmartVideo block’s Choose from Media Library button (Replace video for an existing Media Library selection)
SmartVideo LibraryHosted by SwarmifyAuto-assigned source URL from Media Detailsn/aUpload directly to Swarmify; not available on Lifetime Deal plans

For the step-by-step screenshots and provider-specific gotchas, see the linked article for your provider.

If the URL works in a browser but the player shows a black box

That symptom is almost always one of two things:

  • Wrong content-type. The server returned text/html or application/octet-stream instead of video/mp4. Check with curl -I <url> and look at the Content-Type header. On S3 and Wasabi, content-type comes from the upload — re-upload with the right MIME type set, or set the object metadata after the fact.
  • Range requests blocked. SmartVideo’s encoder may issue Range requests to scrub the file. If the server answers 200 instead of 206 Partial Content, or refuses the request entirely, the import fails. Most managed storage handles Range correctly out of the box; custom origins behind a WAF or aggressive cache rule sometimes don’t.

If neither of those is the problem, send the URL to support and we’ll trace the fetch.

Stuck on an import?

Send us the source and format details and we’ll help you get the video in.