Project / CLI Tool

Projet / Outil en ligne de commande

Keep
your notes.
Garder
ses cours.

cdp-scraper

A command line tool that connects with the student's own credentials, walks the class documents folder on cahier-de-prepa.fr, and copies it identically to disk: same folders, same file names, private lesson schedules included.

Un outil en ligne de commande qui se connecte avec les identifiants de l'utilisateur, explore l'arborescence des documents de la classe sur cahier-de-prepa.fr, et la recopie à l'identique sur le disque : mêmes dossiers, mêmes noms de fichiers, programmes de colles compris.

PythonCLIRGPDOpen Source

Courses that
outlive the account.
Des cours qui
survivent au compte.

cdp-scraper starts from a simple fact: documents posted on cahier-de-prepa.fr disappear the moment account access ends, at the end of the year. The tool logs in with the student's own credentials, downloads only what that account already sees, and rebuilds the exact same folder structure locally. A local viewer ships alongside it to browse lessons afterward, without a browser or a connection.

cdp-scraper part d'un constat simple : les documents déposés sur cahier-de-prepa.fr disparaissent avec l'accès au compte, une fois l'année finie. L'outil se connecte avec les identifiants de l'utilisateur, ne télécharge que ce que ce compte voit déjà, et recrée la même arborescence en local. Un visualiseur local l'accompagne pour parcourir ensuite ses cours, sans navigateur ni connexion.

3.8+
Python required
Python requis
1
External dependency
Dépendance externe
2026
Year released
Année de sortie
CeCILL
License
Licence
01

Launch and log in

Lancer et se connecter

Run the script, enter the class URL and credentials. Password entry is masked and never stored or sent anywhere else.

Lancer le script, indiquer l'URL de la classe et les identifiants. La saisie du mot de passe est masquée et n'est jamais stockée ni transmise ailleurs.

02

The tool explores the tree

L'outil explore l'arborescence

It walks the class documents folder one request at a time, respecting the server's pace.

Il parcourt le dossier de documents de la classe une requête à la fois, au rythme du serveur.

03

Files land identically

Les fichiers arrivent à l'identique

Same folders, same names, private lesson schedules included, copied exactly as they appear online.

Mêmes dossiers, mêmes noms, programmes de colles compris, copiés exactement comme en ligne.

04

Browse them locally

Les parcourir en local

cdp_viewer.py opens a local site to read everything back: syntax highlighting for code, PDF and image previews, nothing ever leaves the machine.

cdp_viewer.py ouvre un site local pour tout relire : coloration syntaxique du code, aperçu PDF et images, rien ne quitte jamais la machine.

Python 3.8+ A single external dependency, requests. Une seule dépendance externe, requests.
Local server cdp_viewer.py serves only on 127.0.0.1, no network exposure at all. cdp_viewer.py sert uniquement sur 127.0.0.1, aucune exposition réseau.
tokenize (stdlib) Syntax highlighting for Python files, no dependency, works offline. Coloration syntaxique des fichiers Python, sans dépendance, fonctionne hors ligne.
Personal backup, not collection
Sauvegarde personnelle, pas collecte
The tool only reaches content the account already sees, it breaks no access control and cracks no password.
L'outil n'accède qu'au contenu déjà visible par le compte, il ne contourne aucun contrôle d'accès ni ne casse de mot de passe.
Privacy taken seriously
Vie privée prise au sérieux
Credentials are never stored or sent to a third party, no data ever leaves the machine for an external server.
Les identifiants ne sont jamais stockés ni transmis à un tiers, aucune donnée ne part vers un serveur externe.
Copyright respected
Droit d'auteur respecté
Terms of use are shown and must be accepted on first launch: strictly personal, educational use only.
Les conditions d'usage s'affichent et doivent être acceptées au premier lancement : usage strictement personnel et pédagogique.