dexhunter/remotion · Archived

upload-r2

Upload large Remotion repository assets to the Cloudflare R2 bucket behind remotion.media and replace local public/ assets with hosted URLs. Use when a file is too large for Git or when a PR should avoid committing media binaries by hosting them on remotion.media.

First seen Jul 15, 2026

Installation

$ npx skills add dexhunter/remotion --skill upload-r2

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from dexhunter/remotion · top by installs.

npx skills add dexhunter/remotion

Browse all from dexhunter/remotion

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
License LICENSE.md
Default branch main
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,138 B
  • docs SUMMARY.md 281 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Upload R2 Asset

Use this for large media assets that should be hosted on https://remotion.media/ instead of committed to Git.

Workflow

  1. Find the main worktree:

``bash git worktree list --porcelain ` Prefer the worktree on refs/heads/main, usually /Users/jonathanburger/remotion`.

  1. Load R2 credentials from the main worktree:

``bash --env-file=/Users/jonathanburger/remotion/packages/remotion-media/.env ` Do not print secret values. The required variables are AWSACCESSKEYID and AWSSECRETACCESSKEY`.

  1. Upload the file to the parser-media bucket using Bun's S3-compatible client:

``bash bun --env-file=/Users/jonathanburger/remotion/packages/remotion-media/.env -e "import {S3Client} from 'bun'; const filePath='<local-file>'; const key='<remote-file-name>'; const client=new S3Client({accessKeyId:Bun.env.AWSACCESSKEYID, secretAccessKey:Bun.env.AWSSECRETACCESSKEY, endpoint:'https://2fe488b3b0f4deee223aef7464784c46.r2.cloudflarestorage.com';, bucket:'parser-media'}); const file=Bun.file(filePath); if (await client.exists(key)) { const stat=await client.stat(key); if (stat.size===file.size) { console.log('exists-same-size', key, file.size); process.exit(0); } } await client.write(key, file); const stat=await client.stat(key); console.log('uploaded', key, stat.size);" ``

  1. Verify the public URL:

``bash curl -I --fail https://remotion.media/<remote-file-name>; ``

  1. Replace local asset usage with the hosted URL and delete the local binary.

Do not wrap remote URLs in staticFile(): staticFile() rejects http:// and https:// URLs. Use the URL string directly, for example: ``tsx <Video src="https://remotion.media/example.mp4"; /> ``

  1. Run the focused lint or stylecheck for touched packages, then commit and push.