🇫🇷 Français · 🇬🇧 English version
Télécharger en lot tous les épisodes d’un podcast radio-podcast.fr dans un seul fichier
.zip.
Trois outils interchangeables :
.zip.python3 scripts/download_episodes.py, aucune dépendance externe../scripts/download_episodes.sh, autonome.
Le site radio-podcast.fr liste des centaines d’épisodes de podcasts France Culture / France Inter / etc., chacun téléchargeable individuellement. Pour un podcast de 100+ épisodes, c’est 100+ clics et 100+ entrées dans la barre de téléchargements Chrome.
Cet outil fait le travail en une opération : il extrait les URLs depuis le DOM, télécharge tous les mp3, et les empaquète en streaming dans une archive ZIP unique avec des noms lisibles 001 - Titre.mp3.
⏳ La publication sur le Chrome Web Store est en cours de soumission.
En attendant, install manuelle (mode développeur) :
chrome://extensions/.chrome-extension/.Rien à installer — les deux scripts utilisent uniquement des outils préinstallés sur macOS (Python 3, Bash, curl, perl).
L’extension s’active sur toute page radio-podcast.fr/podcast/* (pas seulement Les Pieds sur Terre — fonctionne pour n’importe quelle série).
.zip → l’archive se construit en streaming.Tu obtiens un seul fichier nom-du-podcast.zip contenant tous les mp3 nommés NNN - Titre.mp3.
python3 scripts/download_episodes.py # auto-trouve le HTML local
python3 scripts/download_episodes.py path/vers/page.html # ou chemin explicite
Le script cherche un fichier HTML dans ./ ou ./_archives/ (à toi de l’enregistrer depuis le navigateur), extrait les épisodes, et télécharge tout dans ./mp3/. Idempotent.
./scripts/download_episodes.sh # re-fetch depuis radio-podcast.fr
./scripts/download_episodes.sh chemin/vers/page.html # parse un fichier local
./scripts/download_episodes.sh -o ./autre-dossier # destination custom
L’extension fetche chaque mp3 et pipe les octets directement dans un fichier .zip choisi par l’utilisateur via showSaveFilePicker, à travers un writer ZIP maison (mode STORE, data descriptors).
L’utilisation mémoire reste bornée : aucun fichier n’est jamais bufferisé entièrement en RAM, même pour une archive de plusieurs Go.
NNN - Titre.mp3 :
/ → - ; : → ` -` , &, ', …)| Fichier | Rôle |
|---|---|
content.js |
Injecté sur les pages radio-podcast.fr/podcast/* ; bouton flottant + extraction DOM des data-mp3 |
popup.js |
UI alternative via l’icône toolbar |
background.js |
Service worker, ouvre l’onglet de téléchargement avec la liste d’épisodes |
downloader.html + downloader.js |
Page dédiée qui fetch + stream le ZIP via showSaveFilePicker |
zip-writer.js |
Writer ZIP maison (STORE, data descriptors, UTF-8) |
./scripts/build-extension.sh
Produit dans dist/ :
extension-webstore.zip — à uploader sur le Chrome Web Storeextension.crx — version signée pour distribution privée (requiert une chrome-extension.pem locale).
├── README.md # Ce fichier
├── LICENSE # MIT
├── PRIVACY.md # Politique de confidentialité (Web Store)
├── chrome-extension/ # Sources de l'extension (MV3)
├── scripts/
│ ├── build-extension.sh # Build des artefacts dans dist/
│ ├── download_episodes.py # Script Python
│ └── download_episodes.sh # Script Bash + curl
└── store-assets/ # Icône + screenshots pour la fiche Web Store
L’extension ne collecte, ne stocke et ne transmet aucune donnée personnelle. Voir PRIVACY.md ou la version publiée : https://rilax117.github.io/radio-podcast-downloader/PRIVACY
MIT © 2026 rilax117
🇬🇧 English · 🇫🇷 Version française
Bulk-download every episode of a radio-podcast.fr podcast into a single
.zipfile.
Three interchangeable tools:
.zip.python3 scripts/download_episodes.py, zero external dependencies../scripts/download_episodes.sh, self-contained.
The site radio-podcast.fr lists hundreds of episodes per podcast (France Culture, France Inter, etc.), each downloadable individually. For a 100+ episode series, that’s 100+ clicks and 100+ entries in Chrome’s downloads bar.
This tool does the job in a single operation: it extracts URLs from the DOM, downloads every mp3, and packs them as a stream into a single ZIP archive with readable filenames like 001 - Title.mp3.
⏳ Chrome Web Store publication is pending review.
In the meantime, manual install (developer mode):
chrome://extensions/.chrome-extension/ directory.Nothing to install — both scripts only use tools preinstalled on macOS (Python 3, Bash, curl, perl).
The extension activates on any radio-podcast.fr/podcast/* page (not just Les Pieds sur Terre — works for any series on the site).
.zip → the archive is built as a stream.You get a single file podcast-name.zip containing all the mp3s named NNN - Title.mp3.
python3 scripts/download_episodes.py # auto-finds local HTML
python3 scripts/download_episodes.py path/to/page.html # or explicit path
The script looks for an HTML file in ./ or ./_archives/ (saved from the browser by you), extracts the episodes, and downloads everything into ./mp3/. Idempotent.
./scripts/download_episodes.sh # re-fetch from radio-podcast.fr
./scripts/download_episodes.sh path/to/page.html # parse a local file
./scripts/download_episodes.sh -o ./other-folder # custom output dir
The extension fetches each mp3 and pipes the bytes directly into a .zip file the user chose via showSaveFilePicker, through a hand-rolled ZIP writer (STORE mode, data descriptors).
Memory usage stays bounded: no file is ever fully buffered in RAM, even for multi-GB archives.
NNN - Title.mp3:
/ → - ; : → ` -` , &, ', …)| File | Role |
|---|---|
content.js |
Injected on radio-podcast.fr/podcast/* pages; floating button + DOM extraction of data-mp3 |
popup.js |
Alternative UI via the toolbar icon |
background.js |
Service worker, opens the download tab with the episode list |
downloader.html + downloader.js |
Dedicated page that fetches + streams the ZIP via showSaveFilePicker |
zip-writer.js |
Hand-rolled ZIP writer (STORE, data descriptors, UTF-8) |
./scripts/build-extension.sh
Produces in dist/:
extension-webstore.zip — to upload to the Chrome Web Storeextension.crx — signed version for private distribution (requires a local chrome-extension.pem).
├── README.md # This file
├── LICENSE # MIT
├── PRIVACY.md # Privacy policy (Web Store)
├── chrome-extension/ # Extension sources (MV3)
├── scripts/
│ ├── build-extension.sh # Build artifacts into dist/
│ ├── download_episodes.py # Python script
│ └── download_episodes.sh # Bash + curl script
└── store-assets/ # Icon + screenshots for the Web Store listing
The extension does not collect, store, or transmit any personal data. See PRIVACY.md or the published version: https://rilax117.github.io/radio-podcast-downloader/PRIVACY
MIT © 2026 rilax117