Request: Stable hooks for curriculum lesson text (e.g., semantic tags or data attributes) for a lecturer script

Hi FreeCodeCamp team,

I’m building a small “algorithm lecturer” script for personal use that extracts lesson text and reads it aloud (AI voice, subtitles + codeblocks in a separate window). I learn dramatically better with audio support, long text-only lessons are hard for me to process consistently without it (Thank you, Tiktok).

Previously, the video format made FreeCodeCamp my go-to learning platform. With videos gone, I’m trying to recreate a similar learning flow on my own so I can keep studying here instead of bouncing between platforms.

Right now, the only reliable selectors I can use are things like data-playwright-test-label, which I understand are intended for testing and may change or disappear at any time. Rebuilding the script every time the DOM shifts would make this pretty fragile.

Dev request: would it be possible to expose more “stable hooks” for lesson content, such as:

  • Semantic classes (e.g. <article class="lesson-content">)
  • Stable data attributes (e.g. data-lesson-id="slug")
  • Consistent JS IDs (lessonContent, lessonTitle)
  • Or, ideally, a lightweight lesson content API

This wouldn’t be used for scraping or redistribution, purely as a personal learning aid to make the platform more accessible to different learning styles.

Why not browser readers?

  1. Default TTS voices are hard to listen to for long study sessions
  2. Poor UX around code blocks (they get read code line-by-line, which disrupts learning flow)
  3. The friction adds up quickly and makes it hard to stay consistent

I really want to keep learning on FreeCodeCamp. The structure you’ve built is still one of the best out there, I’m just trying to adapt to the new format in a way that works for me.

Thanks for all the work you do, and for considering this request.

Best Regards, Futuraura

this seems something you should open an issue on github for

1 Like

Could you share the link, please?

it’s the official freeCodeCamp repository, you can’t miss it if you search for it

1 Like

Sorry, I thought there might be other repos or places :sweat_smile:

Issue opened!

have you tried getting the text from the .md lesson files? in this way you don’t even need to scrape the live site