fix(somedl): install yt-dlp nightly to avoid YouTube 403 errors
このコミットが含まれているのは:
@@ -21,7 +21,8 @@ RUN curl -fsSL https://deno.land/install.sh | sh
|
||||
ENV PATH="/root/.deno/bin:${PATH}"
|
||||
|
||||
# Installazione SomeDL
|
||||
RUN pip install --no-cache-dir somedl
|
||||
RUN pip install --no-cache-dir somedl && \
|
||||
python -m pip install --no-cache-dir -U --pre "yt-dlp[default]"
|
||||
|
||||
# Entrypoint: genera la config al primo avvio e lancia la WebUI
|
||||
COPY entrypoint.sh /app/entrypoint.sh
|
||||
|
||||
@@ -14,5 +14,18 @@ if [ ! -f "$CONFIG_FILE" ]; then
|
||||
sed -i 's|^open_browser = true|open_browser = false|' "$CONFIG_FILE"
|
||||
fi
|
||||
|
||||
# `SOMEDL_COOKIES` deve essere un percorso visibile *nel container* (ad esempio
|
||||
# un file presente nel volume di configurazione). L'opzione viene aggiunta solo
|
||||
# quando il file esiste, così il container resta utilizzabile senza cookie.
|
||||
SOMEDL_ARGS=()
|
||||
if [ -n "${SOMEDL_COOKIES:-}" ]; then
|
||||
if [ -r "$SOMEDL_COOKIES" ]; then
|
||||
SOMEDL_ARGS+=(--cookies "$SOMEDL_COOKIES")
|
||||
else
|
||||
echo "[entrypoint] Avviso: file cookie non leggibile: $SOMEDL_COOKIES" >&2
|
||||
fi
|
||||
fi
|
||||
|
||||
# Avvia la WebUI
|
||||
exec somedl web --no-browser --host "${SOMEDL_HOST:-0.0.0.0}" --port "${SOMEDL_PORT:-5000}"
|
||||
exec somedl "${SOMEDL_ARGS[@]}" web --no-browser \
|
||||
--host "${SOMEDL_HOST:-0.0.0.0}" --port "${SOMEDL_PORT:-5000}"
|
||||
|
||||
@@ -23,6 +23,17 @@ mkdir -p /srv/containers/somedl/config /srv/containers/somedl/downloads
|
||||
La directory `config` può restare vuota: il file `somedl_config.toml` viene
|
||||
generato automaticamente dall'entrypoint al primo avvio.
|
||||
|
||||
Per usare cookie esportati da un account YouTube verificato per i contenuti
|
||||
age-restricted, salvare `cookies.txt` nella directory `config` e aggiungere al
|
||||
quadlet (il percorso è quello visto dal container):
|
||||
|
||||
```ini
|
||||
Environment=SOMEDL_COOKIES=/root/.config/SomeDL/cookies.txt
|
||||
```
|
||||
|
||||
Il file viene passato automaticamente a SomeDL come `--cookies`. I cookie sono
|
||||
credenziali sensibili: proteggerne i permessi e usarli solo quando necessario.
|
||||
|
||||
### 2. Copiare il file quadlet
|
||||
|
||||
```bash
|
||||
@@ -62,6 +73,9 @@ podman exec somedl somedl -f flac "Daft Punk - One More Time"
|
||||
|
||||
# Piu' input in un colpo solo
|
||||
podman exec somedl somedl "Artist - Song 1" "Artist - Song 2"
|
||||
|
||||
# Cookie per contenuti age-restricted (percorso nel container)
|
||||
podman exec somedl somedl --cookies /root/.config/SomeDL/cookies.txt "Artist - Song"
|
||||
```
|
||||
|
||||
### Visualizzare la configurazione corrente
|
||||
@@ -81,6 +95,9 @@ podman logs somedl
|
||||
|
||||
# Aggiornare l'immagine
|
||||
podman build -t localhost/somedl:latest .
|
||||
# Ricreare il container per usare la nuova immagine
|
||||
systemctl --user stop somedl
|
||||
podman rm somedl
|
||||
systemctl --user restart somedl
|
||||
|
||||
# Rimuovere il container
|
||||
@@ -95,9 +112,14 @@ podman rm somedl
|
||||
| `/srv/containers/somedl/config/` | `/root/.config/SomeDL/` | Config (`somedl_config.toml`, generata al primo avvio) |
|
||||
| `/srv/containers/somedl/downloads/` | `/app/downloads/` | Brani scaricati |
|
||||
|
||||
`SOMEDL_COOKIES` è opzionale e deve indicare un percorso interno al container;
|
||||
non viene creato alcun volume aggiuntivo.
|
||||
|
||||
## Note
|
||||
|
||||
- ffmpeg (richiesto da yt-dlp) e Deno (raccomandato da yt-dlp) sono installati nell'immagine
|
||||
- `yt-dlp` viene installato nella versione nightly per ridurre i problemi di download
|
||||
causati da `HTTP Error: 403 Forbidden`
|
||||
- Il formato predefinito è MP3; formato, cartella e template di output si cambiano
|
||||
nel file di config o dalla WebUI
|
||||
- Serve connessione internet per cercare e scaricare i brani
|
||||
|
||||
@@ -16,6 +16,10 @@ PublishPort=5000:5000
|
||||
Volume=/srv/containers/somedl/config:/root/.config/SomeDL
|
||||
Volume=/srv/containers/somedl/downloads:/app/downloads
|
||||
|
||||
# Opzionale: percorso del file cookies.txt già visibile nel container.
|
||||
# Esempio: Environment=SOMEDL_COOKIES=/root/.config/SomeDL/cookies.txt
|
||||
Environment=SOMEDL_COOKIES=
|
||||
|
||||
[Service]
|
||||
Restart=on-failure
|
||||
TimeoutStartSec=5m
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする