Skip to content

Instantly share code, notes, and snippets.

@travishorn
Last active July 4, 2025 08:49
Show Gist options
  • Save travishorn/c2b6111a4e63efdbf87a1de84c833ab1 to your computer and use it in GitHub Desktop.
Save travishorn/c2b6111a4e63efdbf87a1de84c833ab1 to your computer and use it in GitHub Desktop.
Saving the images and videos from your ClassDojo storyline

Archived

Please see Patrick330's fork of this script.

ClassDojo changes their site regularly, so a script like this needs regular maintenance. I have decided to archive this project and stop providing updates. Patrick330's fork linked above may be a good alternative.

Original Purpose

ClassDojo is a classroom communication app used to share reports between parents and teachers. Teachers track student behavior and upload photos or videos. The gamification style system teaches developmental skills through real-time feedback.

When your child's teacher shares a photo, it goes on your parent "storyline". Unfortunately, ClassDojo does not provide any means of saving these photos. In fact, the photos are displayed in a <div> using style: background-image('...'); so right-clicking and choosing "Save image" is not an option.

@brimaster
Copy link

Loksly's script with sunghin's edits worked perfectly! I just had to start a new Chrome session with web security disabled (do at your own risk!)

On Windows, simply create a shortcut with the target: "[path to chrome]\chrome.exe" --disable-web-security --disable-gpu --user-data-dir=%LOCALAPPDATA%\Google\chromeTemp

@MacManas
Copy link

MacManas commented Jul 4, 2025

If you have more than one kid, you can use:
const FIRST_FEED = "https://home.classdojo.com/api/storyFeed?withStudentCommentsAndLikes=true&studentId=<STUDENT_ID>";
The <STUDENT_ID> is the number that appears in the URL when you select the feed from only one kid.
Also, had to remove withArchived=false since otherwise it tends to mix feeds from the kids for some reason. Since I don't have access to the API docs, I cannot tell why this is the case

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment