Skool Scraper Pro avatar

Skool Scraper Pro

Pricing

Pay per usage

Go to Apify Store
Skool Scraper Pro

Skool Scraper Pro

๐Ÿ“š FREE Skool Scraper : Extract Skool lessons, ๐ŸŽฅ Mux videos, ๐Ÿ“Ž attachments, PDFs & polls from any community. 4 URL modes: full classroom, single course, lesson, or post. Optional file downloads to storage.

Pricing

Pay per usage

Rating

5.0

(4)

Developer

FlowExtract API

FlowExtract API

Maintained by Community

Actor stats

19

Bookmarked

59

Total users

42

Monthly active users

20 hours ago

Last modified

Share

๐Ÿ“š Skool Scraper Pro

Extract structured data from any Skool community classroom lessons, descriptions, videos, attachments, posts, and polls organized and ready to use.

Perfect for educators, community owners, and researchers who need to archive, analyze, or repurpose their Skool course content without manual effort.


๐Ÿš€ Key Benefits & Use Cases

๐Ÿ“š For Educators & Community Owners

  • Archive your full course library with descriptions, videos, and lesson resources
  • **Download all Videos Hosted on Skool ** as MP4 files with selectable quality (1080p โ†’ 270p)
  • Back up post content, attachments, and PDF handouts before they disappear
  • Generate a searchable index of every lesson across all your courses

๐Ÿ’ผ For Researchers & Analysts

  • Extract poll results and engagement data (upvotes, comment counts) from course posts
  • Build structured databases from community classroom content
  • Analyze content distribution across courses and sections

๐ŸŽฏ For Content Teams

  • Bulk-export lesson descriptions and resource links for repurposing
  • Download all post attachments (images, PDFs) in one automated run
  • Get direct download links for every video click to save the MP4 instantly
  • Map full course structures with sections, positions, and metadata

๐Ÿ” What Gets Extracted

๐Ÿ“– Lesson Data

  • Title, position, section, course
  • Full description (plain text + raw ProseMirror format)
  • Created and updated timestamps
  • Direct lesson URL

๐ŸŽฌ Video Data

  • Hosted Skool videos: playback URL, duration, thumbnail, aspect ratio
  • When downloadVideos is enabled:
    • fileSizeHuman human-readable file size (e.g. "81.2 MB")
    • downloadUrl direct link to the stored MP4 file
    • direct_download same link with &attachment=true for instant browser download

๐Ÿ”— Resources Panel

  • All links from the lesson resources panel with platform detection (YouTube, Google Drive, etc.)
  • Downloadable files (PDFs, images) identified with fileType field
  • Optional download to Key-Value Store with kvKey reference

๐Ÿ“ Post Data (linked to each lesson)

  • Full post content, author, contributors
  • All extracted URLs with platform detection
  • Poll results (option text + vote counts)
  • Upvotes and comment count

๐Ÿ“Ž Post Attachments

  • Images and documents (PNG, JPEG, PDF, Word, Excel, etc.)
  • File name, size, content type, download URL
  • Optional download to Key-Value Store with kvKey reference

๐ŸŽฅ Post Videos

  • Videos Hosted on Skool videos uploaded directly to posts
  • Full playback URL, duration, thumbnail

โš™๏ธ Input Options

๐Ÿ”— URL Modes Four ways to scope your extraction

The actor detects what to extract automatically from the URL format:

URL FormatWhat it does
skool.com/group/classroomExtract all accessible courses
skool.com/group/classroom/38fd1c1dExtract one specific course
skool.com/group/classroom/38fd1c1d?md=lessonIdExtract one specific lesson
skool.com/group/postNameExtract one specific post (post data only)

You can mix multiple URLs of different types in a single run.

{
"communityUrl": [
"https://www.skool.com/my-community/classroom",
"https://www.skool.com/my-community/01"
]
}

๐Ÿ“Š Extraction Limits

lessonsPerCourse (Integer)

  • Default: 10
  • Maximum number of lessons to extract from each course
  • Set to 5 โ†’ extracts up to 5 lessons from each course
  • Set to 1000 (maximum) to extract all lessons from every course
  • Useful for testing before running full extractions on large communities
{
"communityUrl": ["https://www.skool.com/my-community/classroom"],
"lessonsPerCourse": 3
}

๐Ÿ” Authentication

The actor tries authentication in priority order stopping as soon as one method succeeds:

PriorityMethodWhen to use
1Email + PasswordEasiest just enter your Skool credentials
2Browser CookiesFallback if login fails, or if you prefer cookie-based auth
3NonePublic communities only

Set email and password in the actor input. The actor logs into Skool automatically, obtains a fresh session, and proceeds. Your password is stored as a secret and is never logged.

{
"email": "you@example.com",
"password": "your-password"
}

If login fails (wrong credentials, account issue), the actor automatically falls back to browser cookies if you also provided them.

Method 2 Browser Cookies (fallback)

If you prefer not to share your password, or if automatic login fails, you can export your browser session cookies and paste them in.

How to get your cookies:

  1. Install the Cookie-Editor extension

  2. Log in to Skool, then navigate to your community

  3. Open Cookie-Editor โ†’ click Export โ†’ copy the JSON

  4. Paste into the cookies field in actor input:

{
"cookies": [
{ "name": "auth_token", "value": "your-token-value", "domain": ".skool.com" }
]
}

โš ๏ธ Cookies expire. If extraction fails with 403 errors, export fresh cookies and re-run.

โฌ‡๏ธ Download Options

downloadAttachments (Boolean)

  • Default: false
  • Downloads images and document files (PDF, Word, Excel, etc.) attached to lesson posts
  • Saved to Key-Value Store with keys like image-{id}.png / doc-{id}.pdf
  • Each attachment in the dataset gets a kvKey field pointing to its stored file
  • โš ๏ธ Increases run time large communities may have many attachments

downloadResources (Boolean)

  • Default: false
  • Downloads image and document files from the lesson resources panel
  • Web links (YouTube, Chrome extensions, etc.) are automatically skipped only actual files are downloaded
  • Each resource gets a kvKey field when downloaded
  • โš ๏ธ Only useful if the community shares PDF guides or image files in lesson resources

downloadVideos (Boolean)

  • Default: false
  • Downloads Videos Hosted on Skool videos from lessons and posts as MP4 files
  • Saved to Key-Value Store with keys like video-lesson-{id}.mp4
  • Each video gets downloadUrl and direct_download fields in the output
  • โš ๏ธ Increases run time and memory significantly videos can be several hundred MB each

videoQuality (Select)

  • Default: 1080p
  • Preferred video resolution when downloading
  • Options: 1080p (Best), 720p (Good), 480p (Medium), 270p (Low)
  • Automatic fallback: if the selected quality is not available, the scraper picks the next lower quality
  • Example: you select 720p but the video only has 1080p and 480p โ†’ the scraper downloads 480p
  • Only applies when downloadVideos is enabled
{
"communityUrl": ["https://www.skool.com/my-community/classroom"],
"downloadVideos": true,
"videoQuality": "720p",
"lessonsPerCourse": 3
}

๐Ÿ“Š Sample Output

Full lesson row with video download (downloadVideos: true)

{
"extractedAt": "2026-02-27T04:25:30.228Z",
"community": "brendan",
"communityUrl": "https://www.skool.com/brendan",
"course": "โœ… Start Here",
"courseShortId": "7ddee36d",
"section": "",
"lesson": "Who am I? ๐Ÿค”",
"lessonId": "614723a946d645b6bef3145d391ecf24",
"lessonUrl": "https://www.skool.com/brendan/classroom/7ddee36d?md=614723a946d645b6bef3145d391ecf24",
"position": 1,
"descriptionText": "",
"hostedVideo": {
"source": "mux",
"playbackUrl": "https://stream.mux.com/PLAYBACK_ID.m3u8?token=JWT",
"durationMs": 286668,
"aspectRatio": "3:2",
"status": "ready",
"fileSizeHuman": "81.2 MB",
"downloadUrl": "https://api.apify.com/v2/key-value-stores/.../records/video-lesson-614723a9.mp4?signature=...",
"direct_download": "https://api.apify.com/v2/key-value-stores/.../records/video-lesson-614723a9.mp4?signature=...&attachment=true"
},
"resources": [],
"post": null
}

Lesson without video download (downloadVideos: false or no hosted video)

{
"extractedAt": "2026-02-27T04:25:58.132Z",
"community": "brendan",
"communityUrl": "https://www.skool.com/brendan",
"course": "โœ… Start Here",
"courseShortId": "7ddee36d",
"section": "",
"lesson": "Community Intro ๐Ÿ‘‹",
"lessonId": "06e51099aa5443e3bc4bf3663be62f8e",
"lessonUrl": "https://www.skool.com/brendan/classroom/7ddee36d?md=06e51099aa5443e3bc4bf3663be62f8e",
"position": 2,
"descriptionText": "",
"hostedVideo": null,
"resources": [],
"post": null
}

Full lesson with post, attachments, and resources

{
"extractedAt": "2026-02-22T15:30:38.866Z",
"community": "my-community",
"communityUrl": "https://www.skool.com/my-community",
"course": "Course Title",
"courseShortId": "38fd1c1d",
"section": "Section Name",
"lesson": "Lesson 01",
"lessonId": "2a25cd8ad2664da78894b8290dd25b43",
"lessonUrl": "https://www.skool.com/my-community/classroom/38fd1c1d?md=2a25cd8...",
"position": 12,
"descriptionText": "Lesson 01 - Introduction\nThis lesson covers...",
"hostedVideo": {
"source": "mux",
"playbackUrl": "https://stream.mux.com/PLAYBACK_ID.m3u8?token=JWT",
"durationMs": 5143300,
"thumbnailUrl": "https://assets.skool.com/...",
"aspectRatio": "16:9",
"status": "ready",
"fileSizeHuman": "450.3 MB",
"downloadUrl": "https://api.apify.com/v2/key-value-stores/.../records/video-lesson-2a25cd8a.mp4?signature=...",
"direct_download": "https://api.apify.com/v2/key-value-stores/.../records/video-lesson-2a25cd8a.mp4?signature=...&attachment=true"
},
"resources": [
{
"title": "Lesson on YouTube",
"url": "https://www.youtube.com/watch?v=...",
"platform": "youtube",
"fileType": null,
"kvKey": null
},
{
"title": "PDF Guide",
"url": "https://assets.skool.com/.../guide.pdf",
"platform": "other",
"fileType": "doc",
"kvKey": "doc-2a25cd8ad266-r1.pdf"
}
],
"post": {
"postId": "5b00705d9cf54ae7ae9273a64cffb9b7",
"postName": "01",
"postUrl": "https://www.skool.com/my-community/post/01",
"title": "Lesson 01 - Introduction",
"author": { "firstName": "John", "lastName": "Doe", "fullName": "John Doe" },
"contributors": [],
"content": "Watch the lesson here:\n[https://youtube.com/...](https://youtube.com/...)",
"links": [{ "url": "https://youtube.com/...", "platform": "youtube" }],
"attachments": [
{
"id": "6fe0d721...",
"fileName": "handout.png",
"contentType": "image/png",
"url": "https://assets.skool.com/...",
"fileSizeBytes": 6033806,
"fileType": "image",
"kvKey": "image-6fe0d721....png"
}
],
"videos": [
{
"source": "mux",
"playbackUrl": "https://stream.mux.com/....m3u8?token=JWT",
"durationMs": 1220880,
"thumbnailUrl": "https://assets.skool.com/..."
}
],
"poll": {
"entries": [
{ "text": "Yes, very clear", "count": 10 },
{ "text": "Somewhat clear", "count": 1 }
]
},
"upvotes": 15,
"commentsCount": 7
}
}

๐Ÿ’พ Key-Value Store

When download options are enabled, files are saved to the actor's Key-Value Store organized by type:

Key prefixContentsTrigger
image-{id}.{ext}JPEG, PNG, GIF, WebP, SVG, BMP, TIFFdownloadAttachments or downloadResources
doc-{id}.{ext}PDF, Word, Excel, CSV, TXT, JSON, XMLdownloadAttachments or downloadResources

Each downloaded file is referenced by kvKey on its parent object in the dataset, so you can always trace a file back to its lesson.


๐Ÿค Support & Resources

Social Media


๐ŸŽฌ Video & Media

๐Ÿ› ๏ธ Developer Tools

๐Ÿ“ฑ Social & Ads