FROM python:3.11-slim-bookworm

ARG YTDLP_URL=https://github.com/yt-dlp/yt-dlp/releases/download/2026.10.26/yt-dlp
ARG YTDLP_SHA256=e51e69e89489f199530f13d32a4342da3ddb2cf34842f364603a066db05afbf3
ARG DENO_VERSION=2.9.8

ENV DEBIAN_FRONTEND=noninteractive \
    PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PATH="/usr/local/bin:${PATH}" \
    YTDL=yt-dlp \
    OUT_DIR=/output

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        ca-certificates \
        curl \
        ffmpeg \
        unzip \
        default-mysql-client \
    && rm -rf /var/lib/apt/lists/*

RUN set -eux; \
    arch="$(dpkg --print-architecture)"; \
    case "$arch" in \
      amd64) deno_target="x86_64-unknown-linux-gnu" ;; \
      arm64) deno_target="aarch64-unknown-linux-gnu" ;; \
      *) echo "unsupported arch: $arch" >&2; exit 1 ;; \
    esac; \
    curl -fsSL "https://github.com/denoland/deno/releases/download/v${DENO_VERSION}/deno-${deno_target}.zip" \
        -o "/tmp/deno-${deno_target}.zip"; \
    curl -fsSL "https://github.com/denoland/deno/releases/download/v${DENO_VERSION}/deno-${deno_target}.zip.sha256sum" \
        -o "/tmp/deno-${deno_target}.zip.sha256sum"; \
    (cd /tmp && sha256sum -c "deno-${deno_target}.zip.sha256sum"); \
    unzip -q "/tmp/deno-${deno_target}.zip" -d /usr/local/bin; \
    chmod +x /usr/local/bin/deno; \
    rm -f /tmp/deno-*; \
    deno --version

RUN curl -fsSL "${YTDLP_URL}" -o /usr/local/bin/yt-dlp \
    && echo "${YTDLP_SHA256}  /usr/local/bin/yt-dlp" | sha256sum -c - \
    && chmod +x /usr/local/bin/yt-dlp \
    && yt-dlp --version

COPY egea-youtube-check.sh /usr/local/bin/egea-youtube-check
RUN chmod +x /usr/local/bin/egea-youtube-check

RUN useradd --create-home --uid 1000 --shell /bin/bash app \
    && mkdir -p /downloads /output \
    && chown -R app:app /downloads /output

USER app
WORKDIR /downloads

ENTRYPOINT ["yt-dlp"]
CMD ["--help"]
