Ohm comme client de téléchargement Sonarr (API compatible qBittorrent)
- /api/v2/* : login SID (mot de passe = clé Torznab), app/version, torrents/info (progression temps réel), properties (content_path), add (rejoue le grab encodé dans le .torrent de service, dédupliqué par infohash SHA-1), delete (± fichiers), pause/resume - Les grabs Sonarr sont marqués « sonarr:<hash>| » dans source_key → suivis de bout en bout : Sonarr importe, renomme et range les épisodes dans sa bibliothèque, puis retire le torrent de la file Ohm - L'indexeur Torznab embarque les paramètres du grab dans l'announce - README : nouveau mode « client de téléchargement » recommandé (Remote Path Mapping documenté), blackhole en variante minimale - 3 nouveaux tests (flux complet add → suivi → import → delete)
This commit is contained in:
@@ -133,9 +133,10 @@ Variables d'environnement (préfixe `OHM_`, voir `.env.example`) :
|
||||
|
||||
## Intégration Sonarr / Prowlarr (*arr)
|
||||
|
||||
OhmStreaming expose une **API Torznab** : la suite *arr le voit comme un indexeur
|
||||
de plus, et chaque grab Sonarr déclenche l'extraction + le téléchargement dans
|
||||
la file interne (les épisodes arrivent dans la bibliothèque OhmStreaming).
|
||||
OhmStreaming expose une **API Torznab** (indexeur) **et une API compatible
|
||||
qBittorrent** (client de téléchargement) : Sonarr peut lui déléguer toute la
|
||||
chaîne — recherche, téléchargement, puis **import et renommage automatiques**
|
||||
dans la bibliothèque Sonarr.
|
||||
|
||||
### 1. OhmStreaming comme indexeur
|
||||
|
||||
@@ -150,13 +151,34 @@ Dans **Admin → Intégrations Sonarr / Prowlarr**, copier :
|
||||
puis synchroniser vers Sonarr.
|
||||
- **Sonarr** (direct) : Settings → Indexers → Add → *Torznab* → coller URL + clé.
|
||||
Catégories : TV (5000) / Anime (5070).
|
||||
- **Client de téléchargement** : « Torrent Blackhole » — Sonarr enregistre le
|
||||
`.torrent` de service tandis qu'OhmStreaming télécharge réellement l'épisode
|
||||
(extraction embed → HLS/HTTP → mp4 dans `downloads/`).
|
||||
|
||||
Endpoints : `t=caps`, `t=tvsearch` (q, season, ep), `t=search` — auth par
|
||||
`?apikey=` ou en-tête `X-Api-Key`.
|
||||
|
||||
### 2. OhmStreaming comme client de téléchargement (recommandé)
|
||||
|
||||
Dans Sonarr : **Settings → Download Clients → Add → qBittorrent** :
|
||||
|
||||
| Champ | Valeur |
|
||||
|---|---|
|
||||
| Host | `http://<hote-ohm>:8777` |
|
||||
| Username | `ohm` |
|
||||
| Password | la clé API Torznab (Admin → Intégrations) |
|
||||
|
||||
Le flux complet devient : Sonarr grab → Ohm télécharge (progression visible
|
||||
dans la file Sonarr) → Sonarr **importe, renomme et range** l'épisode dans sa
|
||||
bibliothèque selon ses propres règles → le « torrent » est retiré de la file
|
||||
Ohm (fichier inclu si « Remove Completed » est coché).
|
||||
|
||||
**Chemin d'accès** : Ohm annonce les fichiers sous `/downloads/<Animé>/…`
|
||||
(chemin conteneur). Si Sonarr tourne dans Docker sans ce montage, ajouter un
|
||||
*Remote Path Mapping* : hôte = `<hote-ohm>`, distant = `/downloads`, local =
|
||||
le dossier hôte monté (ex. `/plex_videos/ohm`).
|
||||
|
||||
Variante minimale sans import : client « Torrent Blackhole » — Sonarr pose le
|
||||
`.torrent` de service et l'épisode reste dans la bibliothèque OhmStreaming
|
||||
seulement (pas d'import/renommage Sonarr).
|
||||
|
||||
### 2. « Pour toi » personnalisé par Sonarr
|
||||
|
||||
Toujours dans **Admin → Intégrations**, renseigner l'URL Sonarr
|
||||
@@ -187,6 +209,6 @@ app/
|
||||
## Tests
|
||||
|
||||
```bash
|
||||
uv run pytest # 83 tests
|
||||
uv run pytest # 86 tests
|
||||
uv run ruff check . # lint
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user