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
| Provider | Public access | Direct URL format | CORS required | Notes |
|---|---|---|---|---|
| Amazon S3 | Public bucket policy scoped to a video prefix, or private S3 bucket with CloudFront OAC and no viewer signing | https://<bucket>.s3.<region>.amazonaws.com/<key> or public CloudFront URL | Not required for import or plain playback; required for original-source playback with <track> or crossorigin | Keep the source readable while embedded; presigned and signed CloudFront URLs work until they expire |
| Google Cloud Storage | Dedicated public bucket: uniform bucket-level access + Storage Object Viewer for allUsers; public access prevention not enforced on the bucket or by organization policy | https://storage.googleapis.com/<bucket>/<key> | Not required for import or plain playback; required for original-source playback with a direct-child <track> or crossorigin | Everyone can read and list all objects; organization policy may block public access |
| Wasabi | Make Public on eligible accounts; otherwise use a stable source such as the SmartVideo Library | https://<serviceURL>/<bucket>/<key> using the bucket’s region | Not 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 website | Wasabi 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 Spaces | Object ACL set to Public | https://<space>.<region>.digitaloceanspaces.com/<key> | Not required for import or plain playback; required for original-source playback with a direct-child <track> or crossorigin | Public files are internet-visible; keep file listing restricted; presigned URLs expire, so they are not suitable as sources |
| Dropbox | Standard Copy link on the file | dropbox.com/scl/fi/... share link | Not required for import; the share link opens a Dropbox page rather than the video file, so the video may not play before conversion finishes | Use the link from Share → Copy link |
| Google Drive | Anyone with the link | Share link from Copy link | Not required for import; the share link opens a Google Drive page rather than the video file, so the video plays in SmartVideo once conversion finishes | Files 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 |
| pCloud | Enable the Public Folder (Premium and Business plans; off by default) and upload there | The 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 requests | Every file in the Public Folder is public; direct links can’t be password-protected |
| Publitio | Set the file’s privacy to Public; don’t assume the default is public | Video 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 requests | Private file URLs work only until their access token expires after 24 hours; use a public URL |
| WordPress Media Library | None — handled by the SmartVideo plugin | https://<site>/wp-content/uploads/... | Not required — same origin as WP | Use the SmartVideo block’s Choose from Media Library button (Replace video for an existing Media Library selection) |
| SmartVideo Library | Hosted by Swarmify | Auto-assigned source URL from Media Details | n/a | Upload 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/htmlorapplication/octet-streaminstead ofvideo/mp4. Check withcurl -I <url>and look at theContent-Typeheader. 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
200instead of206 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.