This tutorial walks you through the entire BlindCast pipeline — from generating keys to playing encrypted video in your browser. No prior setup required.Documentation Index
Fetch the complete documentation index at: https://docs.blindcast.dev/llms.txt
Use this file to discover all available pages before exploring further.
Step 1: Install the CLI
Step 2: Create a sample project
.env.example file. See blindcast init for details.
Step 3: Generate keys
.env file with BLINDCAST_MASTER_KEY and BLINDCAST_SALT, then loads them into your shell. See blindcast keygen for details.
Step 4: Encrypt the segments
./segments/encrypted/. The original segments are untouched.
Step 5: Start the key server
In one terminal:blindcast serve.
Step 6: Play the video
In a second terminal, serve the files and open the player:http://localhost:3000/player.html in your browser. You should see the sample video playing — decrypted in real-time inside the browser.
What just happened?
blindcast encryptencrypted each.tssegment with AES-128-CBC and injectedEXT-X-KEYtags into the manifestblindcast servestarted a key server that derives content keys from your master key using HKDF- The player (in
player.html) fetched the manifest, requested the content key from the key server, and decrypted each segment in the browser - Your server (the static file server and key server) never saw the plaintext video — only encrypted bytes
Next steps
| What you want to do | Go to |
|---|---|
| Add the player to your web app | Player docs |
| Play with React | Player Basic Usage — React example |
| Upload encrypted video to S3 | blindcast upload |
| Add browser-side upload to your app | Uploader docs |
| Run the full server (Docker) | Server docs |
| Deploy a production key server | Key Server docs |
| Deploy to Cloudflare Workers | Workers guide |
| Deploy to AWS Lambda | Lambda guide |
| Use Cloudflare R2 for storage | R2 setup |
| Go to production | Production Checklist |