Podcast ad-removal proxy: fetch feed -> find ad spans -> cut -> re-host clean feed, so AntennaPod (or any player) needs zero changes. M0 ingest and M1 chapter-marker detection are working; transcribe/detect/cut/serve (Whisper transcription, LLM ad-span classification, ffmpeg cutting, feed re-hosting) are stubbed with clear milestones in docs/PLAN.md. Shaped to match hark's conventions (uv/src layout, SQLite, CLI) since this is a candidate for later merging into hark as a module.
10 lines
374 B
Bash
10 lines
374 B
Bash
#!/bin/sh
|
|
# Runs as root just long enough to fix ownership of the mounted /app/data
|
|
# (Docker creates bind mounts and anonymous volumes as root, which the
|
|
# unprivileged `adscrub` user can't write to), then execs into that user for
|
|
# everything else. No application code ever runs as root.
|
|
set -e
|
|
mkdir -p /app/data
|
|
chown -R adscrub:adscrub /app/data
|
|
exec gosu adscrub "$@"
|