TrackMyCourse β YouTube Playlist Progress Tracker
Turn YouTube playlists into courses. Track your playlist with checkmarks, progress bar, total and watched duration, and completion percentage.
TrackMyCourse helps you stay organized while learning from YouTube playlists.
Instead of passively watching videos and forgetting your progress, you can turn any playlist into a structured online course. The extension integrates directly into YouTube, showing a progress bar, completion percentage, watched and total duration, and checkmarks for finished videos β giving you a clear view of your learning journey.
π Table of Contents
- Why TrackMyCourse?
- β¨ Features
- π Installation & Usage
- π οΈ For Developers
- π Permissions Explained
- π License
Why TrackMyCourse?
YouTube is a powerful place for self-learning β from coding tutorials to full university lectures.
But since YouTube is designed for entertainment, not structured courses, itβs easy to lose progress, skip videos, or lose consistency.
TrackMyCourse solves this by adding a clean progress-tracking layer to YouTube playlists, showing completion percentage, durations, and checkmarks to keep your learning organized, consistent, and motivating.
Ready to use TrackMyCourse? Install now and start tracking your playlists.
β¨ Features
- π Visual Progress Bar β Instantly see how much of a playlist youβve completed.
- β Video Checkmarks β Mark videos as finished to keep your learning on track.
- β±οΈ Duration Tracking β Know your watched and total time to plan your study sessions better.
- π Dynamic Playlist Scanning β Automatically detects videos in the playlist.
- πΎ Saved Locally β Your progress stays saved in your browser, no sign-up needed.
All features appear seamlessly inside YouTubeβs interface.
Preview of Features:
π Installation & Usage
- Install TrackMyCourse
- Go to any YouTube playlist page.
- Click the "Start Course" button near the playlist title.
Once enabled, the progress bar and checkboxes will automatically appear for that playlist.
π οΈ For Developers
This section provides information for anyone who wants to contribute to the project or run it locally.
Contributing
Contributions are welcome! Bug fixes, feature suggestions, and pull requests are appreciated. For major changes, please open an issue first to discuss your ideas.
Running Locally
Follow these steps to set up the project on your local machine.
- Clone the repository:
git clone https://github.com/AlokYadavCodes/track-my-course.git
- Install dependencies:
npm install
- Open Chrome Extensions: Navigate to
chrome://extensions/
in your browser. - Enable Developer Mode: Ensure the Developer mode toggle is switched on.
- Load the extension: Click "Load unpacked" and select the
track-my-course
folder you cloned.
Note: Changes to the source code will only reflect after you reload the extension on the
chrome://extensions/
page.
Building browser bundles
There is a script (scripts/build.js)
that generates the Chrome and Firefox bundles into the dist/
folder.
Run the build commands:
# build Chrome bundle
npm run build:chrome
# build Firefox bundle
npm run build:firefox
# build both Chrome and Firefox
npm run build
The script will copy icons/
and src/
into dist/<browser>/
and include the appropriate manifest (manifest.chrome.json
or manifest.firefox.json
) for each browser.
Project Structure
track-my-course/
βββ icons/ # Contains all extension icons.
βββ src/ # Contains the main source code.
β βββ background/ # Handles background tasks.
β βββ content/ # Injects scripts directly into web pages.
β βββ popup/ # Code for the extension's popup window.
β βββ styles/ # Contains CSS files for UI elements injected onto pages.
βββ manifests/ # Browser-specific manifests
β βββ manifest.chrome.json
β βββ manifest.firefox.json
βββ .prettierrc # Prettier configuration for consistent formatting
βββ package.json # Project dependencies and scripts
βββ package-lock.json # Locked dependency versions
π Permissions Explained
TrackMyCourse requests only the permissions it needs to function, nothing more.
Permission | Why It's Needed |
---|---|
storage |
To save your playlist progress locally in the browser. |
webNavigation |
To detect playlist pages so the extension can apply the correct logic. |
host_permissions |
To display the progress UI only on YouTube pages. |
Privacy first: No personal data is collected, stored, or transmitted.
π License
This project is licensed under the GNU GPLv3 License.
See the LICENSE file for full details.