5.4 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PodFetch | 2026-06-07 | 2026-06-07 | app |
|
medium | false |
|
🎙️ PodFetch
Gestionnaire de podcasts self-hosted écrit en Rust : téléchargement automatique, lecteur web intégré, avec une UI moderne pensée pour l'écoute en continu.
| Métadonnée | Valeur |
|---|---|
| Site web | https://podfetch.netlify.app |
| GitHub | https://github.com/SamTV12345/PodFetch |
| License | GPL-2.0 |
| Langage | Rust (backend) + React (frontend) |
| Étoiles | 34 ⭐ |
| Dernière MAJ | 2025 |
| Catégorie | cat-downloads |
Description
PodFetch est né comme une alternative moderne à Podgrab, un projet de podcast downloader qui stagnait. L'auteur (Samuel Schwanzer) a voulu reconstruire from scratch avec une stack solide : backend Rust (rapide, peu gourmand, binaire statique) + frontend React (UI réactive), le tout empaqueté en conteneur Docker léger (~80 Mo).
Fonctionnellement, PodFetch fait trois choses : s'abonner à des podcasts via leur flux RSS iTunes-compatible, télécharger automatiquement les nouveaux épisodes (avec stratégie de rétention configurable : ne garder que les N derniers, ou tout l'historique), et lire dans le navigateur via un lecteur web HTML5 avec position de lecture persistée, vitesse variable, et création de playlists manuelles.
Les différenciations clés : multi-utilisateurs (chacun ses abonnements et son historique), chapitres lus depuis le flux (M4A), OPML import/export pour migrer depuis Pocket Casts/AntennaPod, et un mode « anonymous listening » si on veut juste chercher et écouter un épisode sans s'abonner. Le projet supporte aussi le gPodder API pour synchroniser avec des clients mobiles compatibles.
Pour les amateurs de podcasts francophones, c'est une alternative crédible à app-nextcloud (qui fait podcast via app tierce) ou à des services comme Podcast Addict (Android) en mode self-hosted.
Installation
Docker Compose (recommandé)
# docker-compose.yml
services:
podfetch:
image: ghcr.io/samtv12345/podfetch:latest
container_name: podfetch
restart: unless-stopped
ports:
- "8077:8080"
environment:
- TZ=Europe/Paris
- PUID=1000
- PGID=1000
- DATABASE_URL=sqlite:///config/podfetch.db
volumes:
- ./config:/config
- /data/podcasts:/downloads
Installation manuelle
git clone https://github.com/SamTV12345/PodFetch
cd PodFetch
# Backend Rust
cargo build --release
./target/release/podfetch &
# Frontend
cd frontend && npm install && npm run build
# Servir derrière Caddy/Nginx
Configuration
- Abonnement : URL du flux RSS ou recherche iTunes directement dans l'UI.
- Référentiel de podcasts : ajoute automatiquement les nouveaux épisodes selon un cron interne (par défaut, toutes les heures).
- Rétention : choisir entre « garder tout », « N derniers épisodes », ou « effacer après lecture ».
- Multi-users : compte admin + comptes invités avec droits distincts (lecture seule, abonnement personnel).
- OPML : import/export pour migrer depuis un autre podcatcher.
- gPodder API : activable pour synchroniser avec AntennaPod (Android).
- Notifications : webhook optionnel (Discord, Telegram) à chaque nouvel épisode.
Alternatives
Open Source
- Podgrab — ancêtre, plus maintenu, plus de releases.
- Kasts (KDE) — client desktop Linux, pas self-hosted serveur.
- gPodder — serveur + client, mature, UI austère.
- Castopod — plus orienté créateurs de podcasts (statistiques, federation ActivityPub).
- Pinepods — multi-users + listen-sync, stack similaire (Rust + React).
- Audiobookshelf — gère podcasts aussi, mais orienté livres audio avant tout.
Propriétaires (ce que PodFetch remplace)
- Pocket Casts (premium) — multi-device sync, pas self-hosted.
- Podcast Addict (Android) — puissant, mais Android-only et sans serveur perso.
- Spotify Podcasts — non-exportable, dépend d'un abonnement.
- Overcast (iOS) — UX imbattable, pas de backend self-hosted.
Sécurité
- Pas d'auth obligatoire par défaut : à activer dès qu'on expose l'UI ; le lecteur permet de chercher n'importe quel podcast public.
- Volumes en lecture seule pour le frontend, le backend Rust a besoin d'écrire dans
./configet./downloads. - RSS feeds : PodFetch les parse, les malformés peuvent faire planter l'indexeur, garder des logs.
- Bus factor 1 : un seul contributeur principal (SamTV12345), projet en croissance, à surveiller.
- GPL-2.0 : plus restrictif que MIT/Apache, vérifiez la compatibilité avec votre stack si vous voulez forker.
Ressources
- Repository : https://github.com/SamTV12345/PodFetch
- Démo : https://podfetch.netlify.app
- Annonce : https://www.reddit.com/r/selfhosted/comments/126ul2t/
- gPodder API spec : https://gpodder.net/api/
Pages Liées
- cat-downloads — catégorie parente
- app-audiobookshelf — gestion livres audio + podcasts
- app-nextcloud — peut stocker les MP3 aussi
- app-traefik — reverse proxy HTTPS
- app-authentik — SSO multi-users
- recettes-docker-compose — templates
- securisation-home-lab — bonnes pratiques