Skip to content

Instantly share code, notes, and snippets.

@scalp42
Last active December 11, 2025 23:56
Show Gist options
  • Select an option

  • Save scalp42/64633b5db6448b501cd5d12de6dd68a9 to your computer and use it in GitHub Desktop.

Select an option

Save scalp42/64633b5db6448b501cd5d12de6dd68a9 to your computer and use it in GitHub Desktop.
Sparc Sponsor Analytics CLI MVP - Demo Output

Comparison: SponsorBlock vs Whisper+Claude

Sponsor 1 (Saily) ✅ MATCH

Field With SponsorBlock Without SponsorBlock
Start 0:00 (0s) 0:00 (0s)
End 1:18 (78s) 1:17 (77s)
Duration 78s 77s
Brand Saily Saily
Promo DANGLE DANGLE
URL saily.com/DANGLE saily.com/DANGLE

~1s difference in end time - both correctly identify the sponsor.

Sponsor 2 (McDonald's) ✅ MATCH

Field With SponsorBlock Without SponsorBlock
Start 36:36 (2196s) 36:37 (2197s)
End 37:54 (2274s) 37:51 (2271s)
Duration 78s 74s
Brand McDonald's McDonald's Canada

1 second difference - timestamps align correctly!

Verification Output

Both paths now show matched text for verification:

With SponsorBlock:

[sponsor_extractor] Saily: "Hey, do you travel"
[sponsor_extractor] McDonald's: "hey canada mcdonald's just dropped"

Without SponsorBlock:

[sponsor_extractor] Saily at 0s: "Hey, do you travel? Yep. Really? Often?"
[sponsor_extractor] McDonald's Canada at 2197s: "hey canada mcdonald's just dropped some brand new breakfast menu items"

Summary

Metric With SponsorBlock Without SponsorBlock
Total time 7.3s 46s
Confidence high high
Timestamp accuracy Crowdsourced AI-detected (verified)
Brand specificity McDonald's McDonald's Canada

Both methods produce consistent, accurate results. The Whisper+Claude pipeline is more specific (identifies "McDonald's Canada" vs generic "McDonald's") and doesn't rely on crowdsourced data.

With SponsorBlock (cached audio + transcript)

Uses SponsorBlock timestamps + Whisper/Claude for brand extraction.

time ./bin/sponsor_cli 'https://www.youtube.com/watch?v=XKQluVKJ0Dw'
[sponsor_analyzer] Analyzing video: XKQluVKJ0Dw
[sponsor_analyzer] Fetching YouTube metadata...
[sponsor_analyzer] Checking SponsorBlock...
[sponsor_analyzer] Found 2 segment(s) in SponsorBlock
[sponsor_analyzer] Running Whisper+Claude to extract brand details...
[sponsor_analyzer] Downloading audio...
[audio_pipeline] Using cached audio: /Users/scalp/northernlabs/projs/whisper/debug/cache/XKQluVKJ0Dw.mp3 (34.0MB)
[sponsor_analyzer] Extracting sponsor segments...
[audio_pipeline] Extracted 2 segment(s): 0.9MB
[sponsor_analyzer] Transcribing with Whisper...
[audio_pipeline] Using cached transcript (2100 segments)
[sponsor_analyzer] Extracting brand details with Claude...
[sponsor_extractor] Saily: "Hey, do you travel"
[sponsor_extractor] McDonald's: "hey canada mcdonald's just dropped"
[sponsor_analyzer] Validating against description...
[sponsor_analyzer] Confidence: high
{
  "video": {
    "id": "XKQluVKJ0Dw",
    "url": "https://www.youtube.com/watch?v=XKQluVKJ0Dw",
    "title": "Ovescratch | The Steve Dangle Podcast",
    "channel": "sdpn",
    "published_at": "2025-03-27T00:18:52+00:00",
    "duration": "1:52:30",
    "duration_seconds": 6750,
    "error": null
  },
  "metrics": {
    "views": 32213,
    "likes": 1096,
    "comments": 178
  },
  "sponsors": [
    {
      "timestamp": "0:00",
      "timestamp_seconds": 0,
      "end_timestamp": "1:18",
      "end_timestamp_seconds": 78,
      "duration": "1:18",
      "duration_seconds": 78,
      "brand": "Saily",
      "promo_code": "DANGLE",
      "url_mentioned": "saily.com/DANGLE",
      "source": "sponsorblock",
      "sponsorblock_uuid": "e0ca3f6f014bf7ed99f26a009374c58ece35f254b8d4492393cb02985e69f67a7",
      "sponsorblock_category": "sponsor"
    },
    {
      "timestamp": "36:36",
      "timestamp_seconds": 2196,
      "end_timestamp": "37:54",
      "end_timestamp_seconds": 2274,
      "duration": "1:18",
      "duration_seconds": 78,
      "brand": "McDonald's",
      "promo_code": null,
      "url_mentioned": null,
      "source": "sponsorblock",
      "sponsorblock_uuid": "b0c9979d79f53aba98c30527022b4425e6714f9ef1a27d706288a82e9f2148237",
      "sponsorblock_category": "sponsor"
    }
  ],
  "summary": {
    "total_sponsor_time": "2:36",
    "total_sponsor_time_seconds": 156,
    "sponsor_count": 2,
    "average_duration_seconds": 78
  },
  "validation": {
    "description_sponsors": [
      {
        "brand": "Saily",
        "promo_code": "DANGLE",
        "url": "https://saily.com/DANGLE"
      },
      {
        "brand": "McDonald's Canada",
        "promo_code": null,
        "url": null
      }
    ],
    "detected_brands": [
      "Saily",
      "McDonald's"
    ],
    "matched": [
      "saily",
      "mcdonald's"
    ],
    "possibly_missed": [],
    "extra_detected": [],
    "confidence": "high"
  }
}

Total time: 7.3s

Without SponsorBlock (full Whisper+Claude pipeline)

Full pipeline: audio download → parallel chunked transcription → Claude extraction.

time ./bin/sponsor_cli 'https://www.youtube.com/watch?v=XKQluVKJ0Dw' --no-sponsorblock
[sponsor_analyzer] Analyzing video: XKQluVKJ0Dw
[sponsor_analyzer] Fetching YouTube metadata...
[sponsor_analyzer] Skipping SponsorBlock (--no-sponsorblock flag)
[sponsor_analyzer] Running full Whisper+Claude pipeline...
[sponsor_analyzer] Downloading audio...
[audio_pipeline] Using cached audio: /Users/scalp/northernlabs/projs/whisper/debug/cache/XKQluVKJ0Dw.mp3 (34.0MB)
[sponsor_analyzer] Transcribing with Whisper...
[audio_pipeline] File 34.0MB exceeds limit, chunking...
[audio_pipeline] Extracting 12 chunks...
[audio_pipeline] Extraction complete (2.3s)
[audio_pipeline] Transcribing 12 chunks in parallel (12 threads)...
[audio_pipeline] Transcribing 3.0MB audio...
[audio_pipeline] Transcribing 3.0MB audio...
[audio_pipeline] Transcribing 3.1MB audio...
[audio_pipeline] Transcribing 3.0MB audio...
[audio_pipeline] Transcribing 3.0MB audio...
[audio_pipeline] Transcribing 3.1MB audio...
[audio_pipeline] Transcribing 3.0MB audio...
[audio_pipeline] Transcribing 3.1MB audio...
[audio_pipeline] Transcribing 0.7MB audio...
[audio_pipeline] Transcribing 3.0MB audio...
[audio_pipeline] Transcribing 3.1MB audio...
[audio_pipeline] Transcribing 3.0MB audio...
[audio_pipeline] Transcription complete (5.1s)
[audio_pipeline] Progress: 1/12 chunks
[audio_pipeline] Transcription complete (23.9s)
[audio_pipeline] Progress: 2/12 chunks
[audio_pipeline] Transcription complete (27.0s)
[audio_pipeline] Progress: 3/12 chunks
[audio_pipeline] Transcription complete (27.9s)
[audio_pipeline] Progress: 4/12 chunks
[audio_pipeline] Transcription complete (28.0s)
[audio_pipeline] Progress: 5/12 chunks
[audio_pipeline] Transcription complete (29.2s)
[audio_pipeline] Progress: 6/12 chunks
[audio_pipeline] Transcription complete (30.2s)
[audio_pipeline] Progress: 7/12 chunks
[audio_pipeline] Transcription complete (33.8s)
[audio_pipeline] Progress: 8/12 chunks
[audio_pipeline] Transcription complete (33.9s)
[audio_pipeline] Progress: 9/12 chunks
[audio_pipeline] Transcription complete (34.1s)
[audio_pipeline] Progress: 10/12 chunks
[audio_pipeline] Transcription complete (34.3s)
[audio_pipeline] Progress: 11/12 chunks
[audio_pipeline] Transcription complete (35.1s)
[audio_pipeline] Progress: 12/12 chunks
[audio_pipeline] Parallel transcription complete: 2100 segments (35.1s)
[audio_pipeline] Cached transcript: /Users/scalp/northernlabs/projs/whisper/debug/cache/XKQluVKJ0Dw_transcript.json
[sponsor_analyzer] Extracting sponsors with Claude...
[sponsor_extractor] Saily at 0s: "Hey, do you travel? Yep. Really? Often?"
[sponsor_extractor] McDonald's Canada at 2197s: "hey canada mcdonald's just dropped some brand new breakfast menu items"
[sponsor_analyzer] Validating against description...
[sponsor_analyzer] Confidence: high
{
  "video": {
    "id": "XKQluVKJ0Dw",
    "url": "https://www.youtube.com/watch?v=XKQluVKJ0Dw",
    "title": "Ovescratch | The Steve Dangle Podcast",
    "channel": "sdpn",
    "published_at": "2025-03-27T00:18:52+00:00",
    "duration": "1:52:30",
    "duration_seconds": 6750,
    "error": null
  },
  "metrics": {
    "views": 32213,
    "likes": 1096,
    "comments": 178
  },
  "sponsors": [
    {
      "timestamp": "0:00",
      "timestamp_seconds": 0,
      "end_timestamp": "1:17",
      "end_timestamp_seconds": 77,
      "duration": "1:17",
      "duration_seconds": 77,
      "brand": "Saily",
      "promo_code": "DANGLE",
      "url_mentioned": "saily.com/DANGLE",
      "source": "whisper+claude"
    },
    {
      "timestamp": "36:37",
      "timestamp_seconds": 2197,
      "end_timestamp": "37:51",
      "end_timestamp_seconds": 2271,
      "duration": "1:14",
      "duration_seconds": 74,
      "brand": "McDonald's Canada",
      "promo_code": null,
      "url_mentioned": null,
      "source": "whisper+claude"
    }
  ],
  "summary": {
    "total_sponsor_time": "2:31",
    "total_sponsor_time_seconds": 151,
    "sponsor_count": 2,
    "average_duration_seconds": 76
  },
  "validation": {
    "description_sponsors": [
      {
        "brand": "Saily",
        "promo_code": "DANGLE",
        "url": "https://saily.com/DANGLE"
      },
      {
        "brand": "McDonald's Canada",
        "promo_code": null,
        "url": null
      }
    ],
    "detected_brands": [
      "Saily",
      "McDonald's Canada"
    ],
    "matched": [
      "saily",
      "mcdonald's canada"
    ],
    "possibly_missed": [],
    "extra_detected": [],
    "confidence": "high"
  }
}

Total time: 46s (with parallel transcription + improved timestamp accuracy)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment