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) or 0 (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.
  • 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)

  1. Download video (URL) → sample frames → convert to images.
  2. Compute perceptual hashes per frame (pHash/dHash/aHash).
  3. Aggregate into a single fingerprint vector and store in SQLite.
  4. 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 alerts
  • GET /api/fraud_alerts – list alerts with post/profile context
  • POST /api/fraud_alerts/{id}/resolve – mark resolved with timestamp

Stack: Flask backend, Supabase for storage/query, plus logging and timestamps.

Built With

Share this project:

Updates