On this page
Where you can upload video on Skool
Skool supports video in four places, each with slightly different limits.
Classroom lessons. The main video destination. Up to roughly 5 GB per file, native player with playback speed and full-screen. Best for course content where you want full control.
Community posts. Up to roughly 500 MB per file. Native player, auto-plays muted in the feed. Best for short clips, behind-the-scenes content, member wins.
DMs. Up to roughly 100 MB per file. Smaller because DMs are not the main video destination. Best for one-to-one tutorials or feedback videos.
Event recordings (replays). Same limits as Classroom (roughly 5 GB). Attached to the event in the Calendar tab after the live call.
The limits are approximate, Skool has changed them over time and the published numbers do not always match observed behavior. As a rule, anything under 2 GB uploads reliably, anything between 2 and 5 GB sometimes fails on weak connections, anything above 5 GB needs to be hosted elsewhere and embedded.
Stop doing this by hand. Automate it in 2 minutes.
Welcome DMs, churn-saver, pipeline, member exports. Free plan forever, paid tiers from $29/mo.
Format and size specs that work
Safe video specs for any Skool upload:
- Container: MP4
- Video codec: H.264 (also called AVC). H.265 (HEVC) sometimes works but transcoding is unreliable, stick with H.264.
- Audio codec: AAC at 128 to 256 kbps, mono or stereo
- Resolution: 1080p (1920x1080) is the standard. 720p is fine for low-bandwidth content. 4K is overkill and produces huge files for negligible quality gain on most viewer screens.
- Frame rate: 30 fps. 60 fps works but doubles the file size for content that does not need it.
- Bitrate: 5 to 10 Mbps for 1080p, 2 to 5 Mbps for 720p. Higher than this is wasted bandwidth.
- Aspect ratio: 16:9 (landscape) for most content. 9:16 (vertical) only if your audience is mobile-first and you specifically want vertical, the Skool player letterboxes vertical video in horizontal containers.
- Length: No hard cap. 5 to 15 minutes per lesson is the sweet spot for completion. 60 to 90 minutes for live call replays. Anything over 2 hours starts hitting upload limits on weak connections.
What does not work:
- MKV, AVI, WMV containers (sometimes upload, sometimes silently fail)
- VP9 or AV1 codecs (Skool does not transcode these)
- Variable frame rate (VFR), causes audio sync issues, always export with constant frame rate
- Audio-only files (no MP3 or M4A upload as a fake video, use a tool to create a static-image MP4)
- 1Export video as MP4 H.264
From your editor, export as 1080p MP4, H.264 codec, AAC audio, constant frame rate 30 fps, target bitrate 5 to 10 Mbps. Keep file under 2 GB if possible.
- 2Open the destination on Skool
Classroom lesson, community post, DM thread, or event Recording section. Click the video icon or Add video button.
- 3Browse or drag to upload
Select the file. Skool shows upload progress. Keep the tab open and connection stable until upload completes.
- 4Wait for transcoding
After upload, Skool transcodes the video. Time is roughly 1 to 3x video length. The lesson or post shows Processing until ready.
- 5Add captions if needed
If your plan supports SRT, upload the .srt file alongside the video. If not, embed from YouTube for auto-captions, or burn captions into the export.
- 6Test playback as a member
Open the lesson or post in an incognito window logged in as a test member. Check playback, audio, captions, and mobile rendering.
- 7Use embed or batch tools at scale
For 10+ videos a month, switch to Loom embeds for quick lessons or install tools4skool.com for batch upload, scheduled video posting, and transcode status tracking.
Direct upload to Skool, step by step
Uploading to a Classroom lesson (the most common case):
- Open your community as owner
- Click Classroom, open the course, click the lesson you want to add video to (or create a new lesson)
- Click the Add video button or video icon in the lesson editor
- Browse to the file or drag and drop into the upload area
- Skool shows an upload progress bar. Do not close the tab while it uploads.
- After upload, Skool transcodes the video. Transcode time is roughly 1 to 3x the video length (a 30-minute video takes 30 to 90 minutes to transcode).
- The video shows as Processing until transcode completes. Members cannot watch until it is ready.
- When ready, the video appears in the lesson with native playback controls.
Uploading to a community post:
- Click the new post box, select the video icon, browse to file
- Upload progress shows inline in the post draft
- Transcoding happens after you publish the post
- Members see Processing if they open the post before transcode is done
Uploading as an event recording:
- Open the event in the Calendar tab
- Scroll to Recording, click upload, browse to file
- Same transcoding flow as Classroom
- RSVPed members get an auto-email when the replay is available
Embed from Loom, YouTube, Vimeo (often better than direct upload)
Direct upload gives you Skool's native player and keeps everything inside Skool. Embedding outsources the player to the source platform. Each has trade-offs.
When to embed:
- Video is over 2 GB and you want a more reliable player
- You need chapter markers (Loom and YouTube both support, Skool native player does not)
- You want closed captions auto-generated (YouTube generates them for free)
- You produce in batches and Loom or Vimeo workflows fit your team
- You want analytics beyond what Skool shows (Loom and Vimeo both have detailed viewer analytics)
When to upload directly:
- You want everything inside Skool, no external dependencies
- The video is short and high-quality
- You need to gate the video specifically by tier (embeds can leak via the source URL)
- Closed captions are not critical (or you have SRT files ready)
How to embed:
- Get the video URL from Loom, YouTube, or Vimeo (use Unlisted on YouTube for private content)
- In the lesson or post body, paste the URL on its own line
- Skool auto-detects and inserts an embedded player
- For YouTube, use the URL format youtube.com/watch?v=xxx, not youtu.be/xxx (sometimes more reliable)
- For Loom, the share URL works directly
- For Vimeo, the URL works directly, including password-protected videos
Loom is the most popular workflow for community owners because record-and-paste is faster than export-and-upload. The Loom Chrome extension records, generates a URL, and you paste in seconds. Quality is good enough for screen-share lessons. For face-on-camera flagship content, direct upload usually wins.
Captions and accessibility
Roughly 40 to 60 percent of video viewers in 2026 watch with sound off, especially on mobile or in shared spaces. No captions equals roughly half your audience missing the audio content.
Skool's native player has limited caption support. As of 2026, some plans allow SRT file upload alongside the video, which the player displays as toggleable captions. Other plans do not, and you have to bake captions into the video itself (burnt-in subtitles).
Options for captions:
Generate SRT and upload. Use Whisper (free, open source), Descript, or Rev to transcribe the audio into an SRT file. Whisper runs locally and is free, quality is excellent in 2026. Rev costs roughly $1 to $5 per video and gives human-quality transcripts. Upload the SRT alongside the video in the lesson editor.
Embed YouTube instead of direct upload. YouTube auto-generates captions for free, members can toggle them, no extra work. The trade-off is your content lives on YouTube, which has its own discoverability implications.
Burn captions into the video. Export the video with subtitles permanently visible. Tools like Submagic, Captions.ai, or CapCut produce this output. Best for short-form clips where viewers cannot toggle. Worst for long-form because the captions are not removable and clutter the screen.
For community owners producing 4+ lessons a week, the Whisper-to-SRT workflow saves the most time long term. Set up once, run it on every export, upload the SRT alongside the MP4.
When uploads fail, the common causes
Connection drops mid-upload. The most common cause. Skool does not have resumable uploads in all builds, so a dropped connection means you start over. For files over 1 GB on a flaky connection, plug into ethernet or move to a stable wifi. Avoid uploading from a coffee shop.
File format Skool cannot transcode. Usually MKV or VP9 codec. Symptom: upload completes but stays as Processing for hours. Re-export as MP4 H.264 from your editor (HandBrake is the free fallback if you do not have an editor).
File size above the limit. Symptom: upload bar reaches 100 percent then errors out. Trim the video, lower the bitrate, or host externally and embed.
Browser cache or session issue. Symptom: upload starts and immediately fails. Hard refresh (Cmd+Shift+R), clear Skool cookies, try again. If still failing, try an incognito window.
Variable frame rate (VFR). Symptom: video uploads, transcodes, plays back with audio out of sync. Re-export with constant frame rate (CFR) at 30 fps.
Audio codec issue. Symptom: video plays but audio is silent. Re-export with AAC audio codec, not AC3 or MP3-in-MP4.
Skool service degradation. Symptom: all uploads failing across the board. Check Skool's status page or community feeds for outage reports. If it is platform-wide, wait an hour and retry.
Upload workflow at scale
For community owners producing 10+ videos a month, manual one-at-a-time uploads through the Skool UI become a real time sink. Each upload requires you to browse the file, watch the progress bar, wait for transcode, then open the next lesson and repeat.
Strategies that save time:
Batch record, batch upload. Record 4 weeks of content in one session, export overnight, queue all uploads in the morning. Even if you have to click upload one at a time, the parallel transcoding cuts the total wait.
Use Loom for quick lessons. Loom records in the cloud, the URL is available 30 seconds after you stop recording, you paste into Skool. Total time per lesson under 5 minutes including the recording itself.
Pre-transcode locally. Export from your editor at 1080p H.264 with a target bitrate of 8 Mbps. This gives Skool's transcoder a clean source and roughly halves the transcode wait time.
Schedule uploads overnight. If your internet is faster overnight (off-peak), queue uploads before bed. Skool keeps uploading even with the browser tab open in the background.
Use a Chrome extension for batch operations. tools4skool.com adds batch video upload to multiple lessons in one queue, scheduled video posting to the community feed, and a video-management view that shows transcoding status across all your content. Useful for owners running courses with 20+ lessons or producing weekly community videos.
The rule: if you find yourself spending more than 2 hours a week on video upload housekeeping, the workflow is broken. Either move to embeds, batch better, or automate.
Stop leaving DMs, churn, and revenue on the table.
tools4skool plugs the holes Skool ships with. Free plan forever, paid tiers from $29/mo.
Frequently asked
Keep reading
Ready when you are.
Drop your email — we'll loop you in the day access opens.