Skip to main content

reeln-plugin-cloudflare

reeln-cli plugin for uploading rendered videos to Cloudflare R2 storage.

Subscribes to POST_RENDER to upload the rendered video file and writes the public CDN URL to context.shared["video_url"] for downstream plugins (e.g. reeln-plugin-meta Instagram Reels publishing).

Installation

uv pip install reeln-plugin-cloudflare

Or install editable for development:

make dev-install

Configuration

Field Type Default Required Description
r2_endpoint str — yes Cloudflare R2 S3-compatible endpoint URL
r2_bucket str — yes R2 bucket name
r2_access_key_env str — yes Environment variable name containing the R2 access key ID
r2_secret_key_env str — yes Environment variable name containing the R2 secret access key
public_url_base str — yes Public CDN base URL for uploaded objects
upload_video bool false no Enable video upload to R2 on POST_RENDER
upload_prefix str "" no Optional key prefix (folder) for uploaded objects
upload_max_kbps int 0 no Max upload bandwidth in KB/s (0 = unlimited)
dry_run bool false no Log upload actions without executing them
r2_region str "auto" no R2 region (usually 'auto')

Example

In your reeln-cli config.json, list cloudflare before any plugin that consumes video_url (e.g. meta):

{
  "enabled": ["streamn-scoreboard", "openai", "cloudflare", "meta"],
  "cloudflare": {
    "r2_endpoint": "https://<ACCOUNT_ID>.r2.cloudflarestorage.com",
    "r2_bucket": "reeln-videos",
    "r2_access_key_env": "R2_ACCESS_KEY_ID",
    "r2_secret_key_env": "R2_SECRET_ACCESS_KEY",
    "public_url_base": "https://cdn.example.com",
    "upload_video": true,
    "upload_prefix": "reels"
  }
}

Environment Variables

Credentials are resolved indirectly — the config stores the name of the environment variable, not the secret itself:

Env Var (default name) Description
R2_ACCESS_KEY_ID Cloudflare R2 access key ID
R2_SECRET_ACCESS_KEY Cloudflare R2 secret access key

Development

Command Description
make dev-install Create venv, install reeln-cli + plugin with dev deps
make reeln-install Install plugin editable into sibling reeln-cli venv
make test Run pytest with 100% line+branch coverage (parallel via xdist)
make lint Run ruff linter
make format Run ruff formatter
make check Lint, mypy strict, then test (sequential)

License

AGPL-3.0-only

Metadata

Release files for reeln-plugin-cloudflare 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reeln-plugin-cloudflare 0.4.0
File Size Uploaded Provenance
reeln_plugin_cloudflare-0.4.0.tar.gz 60.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for reeln-plugin-cloudflare 0.4.0
File Interpreter ABI Platform
reeln_plugin_cloudflare-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 80.6 kB

Release files / reeln_plugin_cloudflare-0.4.0.tar.gz

Download URL reeln_plugin_cloudflare-0.4.0.tar.gz
Size 60.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2c148e2251bd01e29335f3580ed498454626ef6843c34a1a2265840f29f5b0ac
BLAKE2b-256 checksum
How to use checksums
1c3439773b718816d5bf85af27b9725b18ebb0db1607a8eda82f6ec64293189a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 21, 2026.

Transparency log

Release files / reeln_plugin_cloudflare-0.4.0-py3-none-any.whl

Download URL reeln_plugin_cloudflare-0.4.0-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
620c5d6167416aa376a9f2ee3797b426b21ff0e51a14d8140fe4191e9e1aa432
BLAKE2b-256 checksum
How to use checksums
72dd2934d369747a44cfe7b9ce9a47e81bbdf13ce73bf785032bd4e4e885b430
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 21, 2026.

Transparency log

Security for reeln-plugin-cloudflare 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for reeln_plugin_cloudflare-0.4.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page