Five formats,one curriculum tree
Recorded lessons in Edushade are not just videos — they are video, audio, text, PDF and embedded iframes, all sitting in the same curriculum next to live classes and quizzes. Self-host or paste a URL, and the platform's own player tracks watch time, resume position and completion automatically.
Self-paced content, properly tracked
Edushade ships its own player and progress engine — so a video lesson is not just an embedded iframe. Watch position is tracked second by second, resume restores the learner where they left off, and the same engine handles audio, PDFs, rich text and external embeds without separate plugins.
Five Recorded Formats
Video, audio, text, PDF and iframe — each with its own builder, learner viewer and progress shape. One lesson model, five ways to deliver it.
Self-Hosted or Direct URL
Upload video and audio to the platform's storage, or paste any direct URL. Both paths play through the same in-platform player.
Resume from Last Position
Watch position is persisted per learner, both in local storage and on the server, so a half-finished video picks up exactly where it left off — on any device.
Per-Lesson Attachments
Each lesson can carry its own attachments — slides, datasets, worksheets — pulled from the platform's file manager and shown alongside the content.
Built-in Player with Sprite Thumbnails
Vidstack-based video player with seek thumbnails, 10-second skip controls, HLS support and a Plyr skin option — no third-party embed required.
Position-Tracked Progress
Status flows through not_started, in_progress and completed, with last_position in seconds and total time_spent — feeding the same engine that drives certificates.
Five formats for the way recorded content actually works
Most platforms call recorded lessons 'videos' and stop there. Edushade ships five distinct formats — video, audio, text, PDF and iframe — each with its own builder in the admin and its own viewer on the learner side. Mix them inside the same course section: a video lecture, an audio walkthrough, a rich-text recap, a PDF reference and an embedded interactive demo can all sit in one module without juggling tools.
Video — self-hosted file or direct URL, with poster image and seek thumbnails
Audio — for podcasts, narrated lessons and language audio
Text — rich-text editor with formatting, lists, links and embeds
PDF — uploaded documents with a tracked viewer
Iframe — embed external content with progress tracking via postMessage
Self-hosted or direct URL — your choice
For video and audio lessons, pick the host type: Self Hosted means the file lives in the platform's own storage, with sprite thumbnails generated for seeking. Direct URL means you paste any URL — your CDN, an HLS stream, an existing hosted file — and the same player handles it. The learner experience is identical; only the upload step changes.
Self-hosted upload through the integrated file manager
Direct URL support for any video or audio source
HLS streaming detected automatically and routed to native HLS
One in-platform player for both paths — no third-party embed switching
A player built for learning, not just playback
The video player is a Vidstack-based component with sprite thumbnails, 10-second forward and backward seek buttons, and a default skin that fits the platform — plus an optional Plyr skin for a different look. Captions, multiple quality tracks and HLS streams all work out of the box, and the small-screen layout keeps the play button centered with seek controls on either side.
Vidstack-based video and audio players with HLS support
Sprite thumbnails on the seek bar for quick scrubbing
Two skin options — Vidstack default or Plyr — picked per player
10-second skip controls and small-screen layout tuned for mobile
Progress that picks up where the learner left off
Every recorded lesson tracks progress per learner. The status moves through not_started, in_progress and completed; last_position records exactly where the playback or scroll stopped; time_spent accumulates total engagement in seconds. When a learner returns, the lesson resumes from the last position automatically — local storage handles offline-first restore, the server keeps the canonical record across devices.
Three-state progress: not_started, in_progress, completed
Last position in seconds for video and audio resume
Time spent in seconds, accumulated across sessions
Per-attempt metadata stored as JSONB for type-specific data
From upload to enrollable lesson in three steps
The lesson builder lives next to the curriculum tree. Pick the format, drop in the content, save — and the lesson is part of the course immediately.
Pick a lesson format
Open the lesson modal and choose one of the five formats: Video, Audio, Text, PDF or Iframe. The form changes shape based on what you pick.
Add the content
For video and audio, choose Self Hosted to upload or Direct URL to paste a link. For text, write in the rich-text editor. For PDF, upload through the file manager. For iframe, paste the embed URL. Optionally attach files for download.
Save and place in the curriculum
Save the lesson and drag it into the right section of the curriculum tree. Apply drip rules if needed — fixed date, enrollment offset, or completion-based — and the lesson is ready for enrolled learners.
Recorded Lessons FAQ
How recorded lessons work in Edushade — formats, hosting, the in-platform player, progress tracking and resume.
Can't find what you're looking for?
Contact SalesStart Building Learning Your Way
Set up courses, programs, and learning experiences without forcing your process into rigid software. A connected system for students, educators, and administrators.
Build Your Academy