Creator Spark
Inspiration
Creators told us two clear things: they want to see how earnings are calculated, and they need simple protections against fraud. Creator Spark brings those into one clear, familiar dashboard.
What it does
- Fair bonuses. Every video gets two signals:
- Engagement grade: a score (0–1) mapped to a letter grade (A, B, …).
- Originality:
1(original) or0(copied/near-duplicate).
- Bonus rules. Only Grade B or better earns a bonus.
- Grade A → +0.20× base pay
- Grade B → +0.10× base pay
- Original videos get the full bonus; non-original get half the bonus.
- Example: base payout $100, Grade A, original ⇒ $100 + $20 = $120.
- Grade A → +0.20× base pay
- Fraud protection. Continuous checks for suspicious user agents, referrer tricks, burst spikes, bulk account creation, shared devices, and unusual gifting. If flagged, payouts freeze and the creator gets a clear report with an appeal path.
- Creator dashboard.
- Overview: total earnings, followers, views, weekly earnings chart, active fraud alerts.
- Posts: per-video views/likes/comments/saves/shares, grades, and an earnings breakdown. Click into a post to see the score details, bonus math, and any fraud alerts.
How we built it (simple)
- Originality scoring: sample frames from each video, create compact image hashes (“fingerprints”), store them, and compare new videos against the library to estimate similarity.
- Fraud checks: look for fast, unnatural patterns and metadata mismatches; freeze and flag when thresholds are crossed.
- Dashboard: mirrors a TikTok-style profile, but adds transparent scoring and payouts.
Tech we used (selected)
- FastAPI + Uvicorn + Pydantic: clean, fast API with input validation.
- yt-dlp, OpenCV, Pillow, ImageHash, NumPy: download videos, sample frames, make perceptual hashes, and compare fingerprints.
- SQLite: lightweight store for video fingerprints.
- Flask + Supabase: simple fraud-alert API and storage (timestamps, alert states, joins to posts/profiles).
- Logging & Datetime: clear audit trail and alert timelines.
Challenges we ran into
- Setting bonus thresholds that feel fair across niches and lengths.
- Keeping originality strict enough to matter without blocking trends/remixes.
- Spotting fake spikes without punishing real virality.
- Explaining the why behind earnings in language creators actually read.
Accomplishments we’re proud of
- A working flow end-to-end: upload → score → bonus → earnings view → fraud alert & appeal.
- A clear, example-driven bonus breakdown that matches backend math.
- Originality analyzer with nearest-match hints to help creators understand scores.
- Fraud alerts that freeze payouts and produce a plain-English report.
What we learned
- Transparency builds trust. Short, concrete explanations beat long rules.
- A few strong signals (watch time, saves, real comments) carry more weight than huge metric lists.
- “Fair and firm” fraud rules work best when appeals are easy and specific.
What’s next for Creator Spark
- Creator app tips: “before you post” hints using the same rules.
- Appeals UX: in-app resolution with clearer evidence views.
- More platforms: carry your grade/bonus history across apps.
- Independent review: external checks on bias and thresholds.
- Education hub: simple guides on improving engagement quality and originality.
Appendix (for judges/devs)
Originality detection (how it works in brief)
- Download video (URL) → sample frames → convert to images.
- Compute perceptual hashes per frame (pHash/dHash/aHash).
- Aggregate into a single fingerprint vector and store in SQLite.
- For new videos, build the fingerprint, compare to stored vectors, and return an originality score plus nearest matches.
Key libraries: FastAPI, Uvicorn, Pydantic, yt-dlp, OpenCV, Pillow, ImageHash, NumPy, sqlite3.
Fraud detection (signals & endpoints)
- Signals: odd user agents, referrer manipulation, burst spikes, bulk account creation, shared devices, suspicious gifting.
- Actions: generate alert → freeze payout → notify creator → allow appeal → resolve.
Simple API (prototype):
POST /api/detect_fraud– run checks and create alertsGET /api/fraud_alerts– list alerts with post/profile contextPOST /api/fraud_alerts/{id}/resolve– mark resolved with timestamp
Stack: Flask backend, Supabase for storage/query, plus logging and timestamps.
Built With
- css
- fastapi
- flask
- imagehash
- javascript
- numpy
- opencv
- pil
- python
- radix
- react
- sql
- sqlite
- supabase
- tailwind
- typescript
- vite
- yt-dlp
Log in or sign up for Devpost to join the conversation.