Removing Podcasts folder

This commit is contained in:
2025-10-05 15:11:10 +02:00
parent 44829d6efb
commit 0b962d4242
4 changed files with 17 additions and 3 deletions

View File

@@ -68,3 +68,12 @@ TRANSCRIPTS_HOST_DIR=/mnt/nfs/transcripts
# MODELS_HOST_DIR=./models
# MEILI_DATA_HOST_DIR=./data/meili
# REDIS_DATA_HOST_DIR=./data/redis
# RSS / Podcast downloads
# Where to save downloaded podcast audio (inside the container mount)
PODCASTS_ROOT=/library
# Organize under per-show subfolders (true/false)
PODCASTS_PER_SHOW=true
# Scan interval (minutes) for rss_ingest; set RSS_ONCE=1 for one-shot
# RSS_SCAN_MINUTES=120
# RSS_ONCE=0

View File

@@ -66,13 +66,15 @@ By default we build from `python:3.11-slim`. You can override the base image at
- `MEDIA_NORMALIZE_KEEP_ORIGINAL` (default `0`): Preserve the source file alongside the normalised copy (appends `.orig*`).
- `VIDEO_NORMALIZE_*`: Fine-tune video conversion (`VIDEO_NORMALIZE_CODEC`, `VIDEO_NORMALIZE_EXTENSION`, `VIDEO_NORMALIZE_CRF`, `VIDEO_NORMALIZE_PRESET`, `VIDEO_NORMALIZE_AUDIO_CODEC`, `VIDEO_NORMALIZE_AUDIO_BITRATE`).
- `AUDIO_NORMALIZE_*`: Control audio conversion (`AUDIO_NORMALIZE_CODEC`, `AUDIO_NORMALIZE_EXTENSION`, `AUDIO_NORMALIZE_BITRATE`, `AUDIO_NORMALIZE_CHANNELS`).
- `PODCASTS_ROOT` (default `/library`): Target directory inside the container where RSS podcast audio is saved.
- `PODCASTS_PER_SHOW` (default `true`): Organize episodes into per-show subfolders under `PODCASTS_ROOT`.
## RSS Ingestion
PodX supports automated podcast ingestion via RSS feeds:
- Add your podcast RSS feed URLs to a `feeds.txt` file, one URL per line.
- The `rss_ingest` component reads this list periodically, downloads new episodes, and places them into the `library/podcasts` folder.
- The `rss_ingest` component reads this list periodically, downloads new episodes, and places them into `PODCASTS_ROOT` (default `/library`), optionally into per-show subfolders if `PODCASTS_PER_SHOW=true`.
- Downloaded podcasts are then processed by the scanner and worker to generate transcripts, metadata, and thumbnails.
## Refresh Mechanism

View File

@@ -24,7 +24,8 @@ MEDIA_EXTS = {".mp3", ".m4a", ".flac", ".wav", ".ogg", ".opus", ".mp4", ".m4v",
TITLE_MATCH_THRESHOLD = float(os.getenv("RSS_TITLE_MATCH_THRESHOLD", "0.60"))
# Download podcast audio (enclosures) to a local library
PODCASTS_ROOT = Path(os.getenv("PODCASTS_ROOT", str(LIB / "Podcasts")))
# Default to saving directly under LIB (no extra "Podcasts" subfolder)
PODCASTS_ROOT = Path(os.getenv("PODCASTS_ROOT", str(LIB)))
PODCASTS_PER_SHOW = os.getenv("PODCASTS_PER_SHOW", "true").lower() in {"1","true","yes","y"}
DOWNLOAD_AUDIO = os.getenv("RSS_DOWNLOAD_AUDIO", "true").lower() in {"1","true","yes","y"}
@@ -457,4 +458,4 @@ if __name__ == "__main__":
print(f"[rss] build error: {e}", flush=True)
if RSS_ONCE:
break
time.sleep(max(1, RSS_SCAN_MINUTES) * 60)
time.sleep(max(1, RSS_SCAN_MINUTES) * 60)

View File

@@ -306,6 +306,8 @@ services:
REDIS_URL: redis://redis:6379/0
LIBRARY_ROOT: /library
TRANSCRIPT_ROOT: /library
PODCASTS_ROOT: /library
PODCASTS_PER_SHOW: ${PODCASTS_PER_SHOW:-true}
FEEDS_FILE: /library/feeds.txt
RSS_STATE_FILE: /library/.rss_state.json
RSS_SCAN_MINUTES: ${RSS_SCAN_MINUTES:-120}