Skool Classroom Scraper — Videos, Lessons, Transcripts
Pricing
from $3.00 / 1,000 lot scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
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
- Click Try for free.
- Enter one or more communities (e.g.
ai-automation-society) or fullskool.com/<slug>URLs. - (Member-only classrooms) paste your own Skool login cookie into
skoolCookie— public communities need nothing. - Click Start, then open the Dataset tab to view/export.
- (Optional) set monitorMode + a Schedule to capture new lessons as a classroom grows.
Quick start
{ "communities": ["ai-automation-society"], "maxItems": 25, "resolveMedia": true }
Input
| Field | What it does |
|---|---|
communities | Skool community slugs or skool.com/<slug> URLs |
skoolCookie | (optional) your own Skool session cookie for member-only classrooms — never stored or logged |
maxItems | cap on lessons returned (0 = all) |
resolveMedia | resolve native-Mux video URL + captions for every lesson |
maxMediaResolves | cap on native-video resolves per run (0 = no cap) |
includeLocked | also list member-only courses you can't access (flagged) |
monitorMode, alertOnNewLesson | recurring new-lesson watcher + alerts |
webhookUrl, slackWebhookUrl, emailRecipients | alert channels |
proxyConfiguration, requestConcurrency | proxy + 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:
| Event | What it covers | Suggested price |
|---|---|---|
lot-scraped | each lesson returned | ~$0.005 / lesson |
lot-detail-enriched | each native-video URL + captions resolved | ~$0.004 / media |
monitor-run-completed | each scheduled watch run | ~$0.05 / run |
new-lot-detected | each new lesson found | ~$0.02 / lesson |
alert-delivered | each Slack/email/webhook push | ~$0.005 / alert |
(Final per-event prices are set on the actor's pricing page.)
How it compares
| This actor | Typical Skool scraper | Leading Skool suite | Budget clone | |
|---|---|---|---|---|
| Full course → module → lesson tree | ✅ | partial | ✅ | ❌ |
| Lesson descriptions + attachments | ✅ | ❌ | partial | ❌ |
| Native (Mux) video URL for every lesson | ✅ | ❌ | first lesson only | ❌ |
| Embed video URLs (Loom/YouTube/Vimeo) | ✅ | ✅ | ✅ | partial |
| Transcript from native captions | ✅ where present | ❌ | ❌ | ❌ |
| Bring-your-own-login for member content | ✅ | sometimes | ✅ | ❌ |
| New-lesson monitor + alerts | ✅ | ❌ | partial | ❌ |
| Pay-per-event (pay per lesson) | ✅ | monthly rental | monthly rental | per-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.