--- title: PodFetch created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, downloads, podcast, rust, web-player, audio] confidence: medium contested: false sources: - https://selfh.st/apps/?tag=downloads - https://github.com/SamTV12345/PodFetch --- # 🎙️ 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é) ```yaml # 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 ```bash 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 `./config` et `./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