- Updates `content/docs/guides/upload-content.md` to list supported video formats (`.mp4`, `.webm`, `.mov`, `.mkv`, `.ts`, `.m3u8`, `.mpg`, `.mpeg`) and thumbnail formats. - Adds a recommended file size limit of 2GB with an explanation (browser memory constraints). - Clarifies CORS configuration for Cloudflare R2 to explicitly require AWS SDK v3 headers. - Updates `content/docs/getting-started.md` to distinguish between direct upload formats and external hosting formats. - Adds metadata validation details (Title required). Co-authored-by: PR0M3TH3AN <[email protected]>
4.1 KiB
How to Upload Content
bitvid is a decentralized platform, but for larger video files, we currently support Cloudflare R2 as a storage backend. This allows you to upload files directly from your browser to a high-performance, affordable storage bucket.
Prerequisites
- A Cloudflare Account (free to create).
- An activated R2 Plan (there is a generous free tier, but you may need to add a payment method).
Supported Media & Limits
Before you start, ensure your content meets the following requirements:
Accepted File Types
- Video:
.mp4,.webm,.mov,.mkv,.ts,.m3u8,.mpg,.mpeg - Thumbnail: Any standard image format (
image/*)
File Size
- Recommended: Up to 2GB per file.
- Why? Browser-based uploads rely on your device's memory for hashing and chunk management. Files larger than 2GB may cause browser instability or crashes.
Metadata
- Title: Required.
- Description, Thumbnail, Tags: Optional but highly recommended for discoverability.
Step-by-Step Guide
1. Create a Bucket & Enable Public Access
- Log in to your Cloudflare Dashboard.
- Navigate to R2 in the sidebar.
- Click "Create Bucket".
- Give it a name (e.g.,
my-bitvid-videos) and click "Create Bucket". - Go to the Settings tab of your new bucket.
- Scroll down to "Public Access" and click "Enable" under "R2.dev subdomain".
- Copy the Public Bucket URL (it looks like
https://pub-xxxxxx.r2.dev). You will need this later.
2. Configure CORS
To allow your browser to upload files directly to Cloudflare, you must allow Cross-Origin Resource Sharing (CORS).
- Still in your bucket's Settings tab, scroll down to "CORS Policy".
- Click "Add CORS Policy" (or Edit).
- Important: Browser uploads use the AWS JavaScript SDK v3, which automatically adds headers like
amz-sdk-invocation-id,amz-sdk-request, andx-amz-user-agent. You must allow these headers. The simplest and most robust setup is to setAllowedHeaders: ["*"]. - Paste the following JSON configuration and explicitly list every allowed app origin (the scheme, host, and port must match exactly):
[
{
"AllowedOrigins": ["http://127.0.0.1:5500", "https://bitvid.network"],
"AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD", "OPTIONS"],
"AllowedHeaders": ["*"],
"ExposeHeaders": ["ETag", "Content-Length", "Content-Range", "Accept-Ranges"],
"MaxAgeSeconds": 3600
}
]
Note: Replace the
AllowedOriginsvalues with the exact origins you use in development and production. Uploads go through the S3 API endpoint (<account>.r2.cloudflarestorage.com), and browser-based uploads requireOPTIONSfor preflight requests. TheExposeHeaderslist ensures the SDK can correctly track multipart upload progress.
- Click "Save".
3. Create an API Token (S3 Credentials)
- Go back to the R2 Overview page.
- Click "Manage R2 API Tokens" (right sidebar).
- Click "Create API Token".
- Configure the token:
- Token name: e.g., "bitvid-upload".
- Permissions: Select "Object Read & Write". This is the minimal permission needed to upload and delete files.
- Specific Bucket(s): Select the bucket you created in Step 1.
- TTL: "Forever".
- Click "Create API Token".
- Copy the credentials: You will need the Access Key ID and Secret Access Key.
4. Configure bitvid
- Copy the Access Key ID, Secret Access Key, and your Account ID (found on the R2 Overview page).
- In bitvid, open your Profile (click your avatar).
- Navigate to the Storage tab (or click "Configure R2 Storage" in the Upload Modal to be redirected there).
- Click "Add Connection" and select Cloudflare R2.
- Enter your:
- Account ID
- Access Key ID
- Secret Access Key
- Public Bucket URL (from Step 1)
- Click "Save Connection".
bitvid will verify your credentials by uploading a small test file. Once verified, return to the Upload Modal to start sharing!