Inspiration
The rise of AI-generated content has created a critical problem: how do we know what's real? Deepfakes, AI-generated articles, and synthetic media are becoming indistinguishable from authentic content. News organizations, content creators, and everyday users need a way to verify the origin and authenticity of digital media.
Media Guardian was born from this challenge. We wanted to build a solution that doesn't just generate content, but also provides cryptographic proof of its authenticity. By combining AI generation with Backblaze B2's durable storage and provenance tracking, we created a pipeline where every piece of content has an immutable record of its creation.
The hackathon's focus on "provenance-aware workflows" inspired us to go beyond simple AI generation and build a complete authenticity pipeline - from prompt to storage to verification.
What it does
Media Guardian is a production-ready AI media pipeline that generates creative content with cryptographic provenance. Users can generate:
- 📋 Storyboards - Detailed scene-by-scene breakdowns with visual and audio notes
- 🎬 Scripts - Complete video scripts with action and dialogue
- 🎨 Prompts - Detailed AI image generation prompts
- 🖼️ Images - AI-generated images from text descriptions
What makes it unique: Every piece of content is:
- Stored in Backblaze B2 - Durable, S3-compatible cloud storage
- Hashed with SHA-256 - Cryptographic fingerprint of the content
- Accompanied by a Provenance Manifest - Full audit trail of creation
- Verifiable - Anyone can check authenticity instantly
The user experience is simple:
- Enter a creative concept (e.g., "A documentary about ocean conservation")
- Choose a format (Storyboard, Script, Prompts, or Image)
- Click Generate - content is created, hashed, and stored
- View the manifest and verified badge
- Verify any asset at any time
How we built it
Tech Stack
- Backblaze B2 - S3-compatible cloud storage for all assets and manifests
- Pollinations.ai - AI generation provider (text + images) with free Pollen credits
- Flask - Python web framework for the backend
- boto3 - AWS SDK for Backblaze B2/S3 integration
- OpenAI Python SDK - OpenAI-compatible client for Pollinations.ai
- Replit - Deployment and hosting (free tier)
- GitHub - Version control and repository
Architecture
User Input → Flask Web App → Pollinations.ai API → Content Generation ↓ SHA-256 Hash + Provenance Manifest ↓ Backblaze B2 Storage (Asset + Manifest) ↓ Verification Endpoint (Anyone can verify)
Key Implementation Details
- SHA-256 Hashing: Every generated asset is hashed immediately after creation
- Provenance Manifests: JSON documents containing asset metadata, model used, timestamp, and SHA-256 hash
- B2 Organization: Assets stored in root folder, manifests in
/manifests/folder - Verification: Users enter a filename, the app fetches the manifest and asset, compares hashes
- Multiple Formats: Configurable system prompts for storyboard, script, and prompt generation
Challenges we ran into
1. GMI Cloud Credits Issue
We initially planned to use GMI Cloud but didn't qualify for the limited credits. Solution: We pivoted to Pollinations.ai, which offers free Pollen credits through quests and has a generous free tier.
2. Python 3.14 Compatibility on Termux
Developing on Android with Termux presented challenges with Python 3.14 and package compilation. Solution: We used Pollinations.ai's OpenAI-compatible API and deployed to Replit for production.
3. "Insufficient Balance" Error
Pollinations.ai requires Pollen credits for API calls. Solution: We completed quests to earn free Pollen and implemented fallback endpoints for image generation.
4. Image Generation Timing Out
Pollinations.ai image generation sometimes failed on Replit. Solution: We implemented multiple endpoint fallbacks and kept the text generation (storyboards, scripts, prompts) as the primary feature, which works flawlessly.
5. Git Authentication on Termux
Pushing to GitHub from Termux required fine-grained tokens. Solution: We created a classic GitHub token with repo permissions and used SSH for reliable authentication.
Accomplishments that we're proud of
✅ Complete Provenance Pipeline
We built a working system where every generated asset has:
- SHA-256 hash
- Full provenance manifest
- Durable storage in Backblaze B2
- One-click verification
✅ Multiple Content Formats
Media Guardian supports 4 different content types: Storyboard, Script, Prompts, and Images - all with full provenance.
✅ Production-Ready UI
Clean, dark-themed web interface with:
- 3 navigation tabs (Generate, Assets, Verify)
- Real-time feedback and status messages
- Responsive design (works on mobile)
✅ Working Public URL
Deployed on Replit with a public URL that judges can access and evaluate.
✅ GitHub Repository
Clean, well-structured code with .env.example, .gitignore, and README.
✅ Free & Sustainable
Built entirely with free tiers: Backblaze B2 (10GB free), Pollinations.ai (free Pollen), Replit (free hosting).
What we learned
1. Provenance is Critical for AI Trust
Without cryptographic verification, AI content is just noise. Building Media Guardian showed us how important it is to provide tamper-evident records for AI-generated media.
2. Backblaze B2 is Perfect for AI Workflows
B2's S3-compatible API made it easy to store assets and manifests. The 10GB free tier is generous enough for hackathon projects and production prototypes.
3. Pollinations.ai is a Great GMI Cloud Alternative
For developers who don't qualify for GMI Cloud credits, Pollinations.ai offers:
- Free Pollen credits through quests
- OpenAI-compatible API (easy integration)
- Text, image, audio, and video models
- No credit card required
4. Free Tiers Can Build Production Apps
We built Media Guardian entirely on free tiers:
- Backblaze B2 (10GB storage)
- Pollinations.ai (quest-based Pollen)
- Replit (free hosting)
- GitHub (free repository)
5. Building on Mobile is Possible
Using Termux on Android, we developed the entire app on a phone. While challenging, it's a testament to modern development tools.
6. Multi-Provider Architecture is Powerful
The Genblaze pattern - orchestrating multiple AI providers with provenance - is the future of AI media. We proved it works even with free providers.
What's next for Media Guardian
Short-Term Enhancements
- Add More AI Providers: Integrate OpenAI, Google Gemini, and Replicate as additional backends
- Audio Generation: Add text-to-speech and music generation with provenance
- Batch Processing: Generate multiple assets at once with parallel processing
- Shareable Verification Pages: Create public pages where anyone can verify an asset
Medium-Term Vision
- API Endpoints: Expose RESTful API for programmatic content generation
- Webhook Support: Notify users when generation is complete
- User Accounts: Allow users to save and organize their generated assets
- Bulk Export: Export assets and manifests as ZIP files
Long-Term Vision
- Blockchain Integration: Anchor SHA-256 hashes on a blockchain for immutable verification
- C2PA Integration: Embed manifests directly into media files (MP4, PNG, MP3)
- AI Content Marketplace: Platform for creators to buy/sell verified AI-generated content
- Enterprise Version: Self-hosted version for organizations needing internal provenance
How You Can Help
- ⭐ Star the GitHub Repository
- 🐛 Report issues or suggest features
- 🔀 Contribute code via pull requests
- 🚀 Use Media Guardian and share feedback
Links
- Live Demo: Media Guardian on Replit
- GitHub Repository: Sule-Bashir/media-guardian
- Backblaze B2: Storage Provider
- Pollinations.ai: AI Provider
Built With
- Backblaze B2 - Durable cloud storage
- Pollinations.ai - AI generation (text + images)
- Flask - Python web framework
- boto3 - S3-compatible SDK
- OpenAI Python SDK - API client
- Replit - Deployment and hosting
- GitHub - Version control
Log in or sign up for Devpost to join the conversation.