Skool Classroom Scraper — Videos, Lessons, Transcripts avatar

Skool Classroom Scraper — Videos, Lessons, Transcripts

Pricing

from $3.00 / 1,000 lot scrapeds

Go to Apify Store
Skool Classroom Scraper — Videos, Lessons, Transcripts

Skool Classroom Scraper — Videos, Lessons, Transcripts

Download Skool classroom videos, lessons, transcripts & attachments from any community. Gets the full course tree, every lesson's video URL (native Mux + Loom/YouTube/Vimeo) and caption transcript. No login for public communities; add your own Skool cookie for member-only classrooms.

Pricing

from $3.00 / 1,000 lot scrapeds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

Skool Classroom Scraper — Videos, Lessons, Transcripts & Attachments

Download Skool classroom videos, lessons, transcripts & attachments from any community. Give it a community and it returns the full course → module → lesson tree — titles, order, descriptions, attachments, the playable video URL for every lesson (Loom, YouTube, Vimeo embeds and Skool's native Mux uploads), and the caption transcript where one exists. Public/free communities need no login. For member-only classrooms, add your own Skool login cookie.

It reads Skool's own server-rendered page data — fast, no browser farm.


What it does

Skool is a Next.js app: every classroom page server-renders the course tree into the page, and ships each selected lesson's native video. This actor walks the whole tree and, for every lesson, returns:

  • 🌳 Full classroom tree — courses → modules → lessons, in original order
  • 📝 Description — clean plain text from each lesson's rich-text body
  • 📎 Attachments — link resources (with the real URL) + uploaded files (name, type, file id)
  • 🎬 Video URL — Loom / YouTube / Vimeo embeds, plus Skool native (Mux) uploads resolved to a playable HLS stream — for every lesson, not just the first
  • 🗣️ Transcript — pulled from the native-video caption track when one exists (else null — never faked)
  • 🔒 needs_auth flag for lessons gated to members

Output fields (one record per lesson)

  • 🏷️ community, course_id, course_title, course_privacy
  • 🧭 module_path, lesson_id, lesson_title, lesson_order
  • 📝 description, 📎 attachments[]
  • ▶️ media_url, media_type (embed | mux), ⏱️ video_length_ms, 🖼️ video_thumbnail
  • 🗣️ transcript, 🔒 needs_auth, ✨ is_new (monitor), 🕒 scraped_at

Each attachments[] entry is either a link ({type:"link", title, url}) or an uploaded file ({type:"file", title, file_name, content_type, file_id}). Skool serves uploaded files behind auth, so files have no public download URL — open the lesson to download them (file_url is null, with a download_note). Link attachments carry the real, public url.


Who it's for

  • 🗄️ Community owners backing up / archiving classroom content
  • 🤖 AI / RAG builders turning course material into clean structured text + transcripts
  • 📚 Course operators auditing structure, lessons, and attachments at scale
  • 🔁 Migration teams moving a classroom's outline + media to another platform

How to use it

  1. Click Try for free.
  2. Enter one or more communities (e.g. ai-automation-society) or full skool.com/<slug> URLs.
  3. (Member-only classrooms) paste your own Skool login cookie into skoolCookie — public communities need nothing.
  4. Click Start, then open the Dataset tab to view/export.
  5. (Optional) set monitorMode + a Schedule to capture new lessons as a classroom grows.

Quick start

{ "communities": ["ai-automation-society"], "maxItems": 25, "resolveMedia": true }

Input

FieldWhat it does
communitiesSkool community slugs or skool.com/<slug> URLs
skoolCookie(optional) your own Skool session cookie for member-only classrooms — never stored or logged
maxItemscap on lessons returned (0 = all)
resolveMediaresolve native-Mux video URL + captions for every lesson
maxMediaResolvescap on native-video resolves per run (0 = no cap)
includeLockedalso list member-only courses you can't access (flagged)
monitorMode, alertOnNewLessonrecurring new-lesson watcher + alerts
webhookUrl, slackWebhookUrl, emailRecipientsalert channels
proxyConfiguration, requestConcurrencyproxy + parallelism

Output

Each lesson is one dataset record (fields above). Export to JSON, CSV, Excel, HTML, or RSS, or fetch via the Apify API.


Pricing

Pay-per-event — you pay for results, not for time:

EventWhat it coversSuggested price
lot-scrapedeach lesson returned~$0.005 / lesson
lot-detail-enrichedeach native-video URL + captions resolved~$0.004 / media
monitor-run-completedeach scheduled watch run~$0.05 / run
new-lot-detectedeach new lesson found~$0.02 / lesson
alert-deliveredeach Slack/email/webhook push~$0.005 / alert

(Final per-event prices are set on the actor's pricing page.)


How it compares

This actorTypical Skool scraperLeading Skool suiteBudget clone
Full course → module → lesson treepartial
Lesson descriptions + attachmentspartial
Native (Mux) video URL for every lessonfirst lesson only
Embed video URLs (Loom/YouTube/Vimeo)partial
Transcript from native captions✅ where present
Bring-your-own-login for member contentsometimes
New-lesson monitor + alertspartial
Pay-per-event (pay per lesson)monthly rentalmonthly rentalper-result

How it gets every lesson's video

Skool only server-renders one lesson's video at a time (the selected one). This actor re-requests each lesson by id (?md=<lesson_id>) so it can resolve the native Mux playback URL and caption track for every lesson — not just the first. Embeds (Loom/YouTube/Vimeo) come straight from the tree with no extra fetch. No headless browser, no speech-to-text compute, no faked data.


FAQ

Do I need a Skool login? No, for public/free communities. For member-only or drip classrooms, paste your own Skool session cookie into skoolCookie.

Where do I get my cookie? From your logged-in browser's auth_token cookie on skool.com. Paste the bare value or the full cookie string. It's used only for the request and never saved or logged.

Does it download the video files? It returns the video URL (Loom/YouTube/Vimeo embed or a playable Mux HLS stream) plus metadata — not a re-hosted copy.

Will every lesson have a transcript? Only native (Mux) videos with a caption track. Skool doesn't store transcripts, so when no caption track exists transcript is null (never faked). Loom/YouTube embeds keep their transcript on the host.

Can it watch for new lessons? Yes — enable monitorMode and add a Schedule; it outputs/alerts only newly added lessons.

How do I export? JSON, CSV, Excel, HTML, or RSS from the Dataset tab, or via the Apify API.


Feedback

Want per-lesson Loom/YouTube transcript enrichment, file downloads, or another output field? Open an issue on the actor.