---
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
