Decides where the Courses List row lands: after the last row of this topic's block, with the next Consolidated Order. A new topic goes to the bottom of the sheet for you to place.
⚠️ You must click "Expand All" on the product page first so all lessons are visible. Then click the bookmarklet — you'll see a progress bar as it extracts each lesson's details.
Waiting for bookmarklet data...
Review Extracted Data
#
Title
Section
Post ID
Processing
PendingLeave out lessons that are drafts in Kajabi
PendingInsert course into database
PendingInsert lessons into database
PendingCreate course sheet tab
PendingAdd to scraper_data.courses
PendingAdd to scraper_data.links
PendingUpdate Courses List sheet
PendingUpdate Lessons List sheet
PendingUpload media to Google Drive
PendingPromo (trailer) from Kajabi → Drive promo/ → Courses List
Existing course
For a course that is already in the database and the Lessons List — this card is separate from steps 1–4 above.
Load course shows every lesson by Kajabi Post ID with its DB description, Lessons List row, sheet description and canonical link.
From there you can re-enrich descriptions, video ids and Wistia ids by running the bookmarklet on the product in Kajabi admin, fill empty runtimes from Wistia, restore missing Lessons List rows, find copied lessons and link them to their originals, and copy the lesson media from Kajabi (or from Wistia when Kajabi's copy is gone) into the course's Drive folder with the Drive links written back to the Lessons List.
Nothing is written until you click a button and confirm.
Adding a lesson or a master class to a course that's already here? Follow Adding new content (Kajabi first, then Process with the existing slug, then the missing-media upload below).
Filled from the Kajabi Product card above; edit if different.
1 · Re-enrich descriptions, video ids and Wistia ids from Kajabi
Open the product in Kajabi admin (signed in), click Expand All, then click the same bookmarklet as step 2.
Each post is read in a hidden frame and written to the DB row and the Lessons List row that carries its Post ID (found by header name, so the sheet layout can change).
A post read successfully replaces the description; media links and the Wistia id only ever fill in. A lesson with a Wistia id and no runtime gets its runtime from Wistia as it is enriched.
The browser console prints one [klaw-scrape] line per post with post id + title.
Fill runtime from Wistia does the runtime part on its own for every lesson that already has a Wistia id (W in the table) and an empty runtime; a runtime already in the DB or the sheet is never overwritten.
Finds the same lesson in other courses (same Kajabi video id, same title, or the course named in a "This lesson is from Day N of …" blurb) and proposes it with a confidence.
Nothing is applied until you confirm. Applying marks this lesson's DB row non-canonical pointing at the original and gives it the original's video filename (DB, and the sheet's slug column).
With the box below checked (the default) this course's own video / thumbnail / SRT / attachment links stay exactly as they are, in the sheet and the DB — right when the media was uploaded to Drive under this course's folder.
Unchecked, the original's links are copied into this lesson's sheet row and DB row as well (its sheet row wins over its DB row) — only for a course whose media was never uploaded.
4 · Upload media to Drive
Copies each lesson's video, thumbnail, SRT and attachments from the Kajabi source links stored in the DB into Drive
<slug>/video, thumbnails, srt, copy, audio, named
<slug>_lesson<NN>_… with NN taken from the Lessons List course_order, then writes the Drive links into the
Lessons List rows by Post ID. Files already in the folder are reused, not re-uploaded.
Kajabi source links expire about a week after the last enrich run, so upload soon after enriching.
When the Kajabi video link answers 403/404 (or the DB has none) and the lesson has a Wistia id, the video is taken from Wistia's original upload instead (its best mp4 if there is no original); the preview's Source column says which lessons have that fallback.
5 · Cover image and audio folder links (Courses List)
Saves a durable copy of the course cover: the image behind imageurl ("Cover Image", often a Kajabi link that expires after a week) is uploaded into the course's Drive folder as
<slug>_cover.<ext> and its Drive link written to Cover Image (Drive); the course's audio Drive subfolder is linked in Audio Folder (Drive) if it exists (the media upload above creates it).
A cell that already has a value is kept, imageurl itself is not touched, and running it again changes nothing.