FROM ghcr.io/linuxserver/baseimage-ubuntu:noble # https://askubuntu.com/questions/972516/debian-frontend-environment-variable ARG DEBIAN_FRONTEND=noninteractive # For phantomjs ENV OPENSSL_CONF="/etc/ssl" # For downloading thumbnails ENV SSL_CERT_DIR="/etc/ssl/certs/" # Working directory used at both build and run times: ENV DEFAULT_WORKSPACE="/config" ############################################################################### # YTDL-SUB INSTALL SHELL ["/bin/bash", "-c"] COPY root/ / RUN mkdir -pv "${DEFAULT_WORKSPACE}" && \ apt-get -y update && \ apt-get -y upgrade && \ apt-get install --no-install-recommends -y \ software-properties-common && \ apt-get -y update && \ apt-get -y upgrade && \ apt-get install --no-install-recommends -y \ vim \ g++ \ nano \ unzip \ make \ python3-pip \ fontconfig \ xz-utils \ bzip2 \ aria2 \ python3-venv && \ if [[ $(uname -m) == "x86_64" ]]; then \ curl -L -o ffmpeg.tar.gz https://github.com/yt-dlp/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl.tar.xz && \ tar -xf ffmpeg.tar.gz && \ chmod +x ffmpeg-master-latest-linux64-gpl/bin/ffmpeg && \ chmod +x ffmpeg-master-latest-linux64-gpl/bin/ffprobe && \ mv ffmpeg-master-latest-linux64-gpl/bin/ffmpeg /usr/bin/ffmpeg && \ mv ffmpeg-master-latest-linux64-gpl/bin/ffprobe /usr/bin/ffprobe && \ rm ffmpeg.tar.gz && \ rm -rf ffmpeg-master-latest-linux64-gpl/ ; \ else \ curl -L -o ffmpeg.tar.gz https://github.com/yt-dlp/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linuxarm64-gpl.tar.xz && \ tar -xf ffmpeg.tar.gz && \ chmod +x ffmpeg-master-latest-linuxarm64-gpl/bin/ffmpeg && \ chmod +x ffmpeg-master-latest-linuxarm64-gpl/bin/ffprobe && \ mv ffmpeg-master-latest-linuxarm64-gpl/bin/ffmpeg /usr/bin/ffmpeg && \ mv ffmpeg-master-latest-linuxarm64-gpl/bin/ffprobe /usr/bin/ffprobe && \ rm ffmpeg.tar.gz && \ rm -rf ffmpeg-master-latest-linuxarm64-gpl/ ; \ fi && \ # Ensure ffmpeg is installed ffmpeg -version && \ # Install phantomjs if using x86_64, ensure it is properly installed if [[ $(uname -m) == "x86_64" ]]; then \ echo "installing phantomjs" && \ tar -xjvf /defaults/phantomjs-2.1.1-linux-x86_64.tar.bz2 && \ mv phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/phantomjs && \ rm -rf phantomjs-2.1.1-linux-x86_64 && \ rm /defaults/phantomjs-2.1.1-linux-x86_64.tar.bz2 && \ echo "Phantom JS version:" && \ phantomjs --version ; \ fi && \ # Install Deno, required for YouTube downloads curl -fsSL https://deno.land/install.sh | DENO_INSTALL=/usr/local sh -s -- -y --no-modify-path && \ deno --help && \ # Configure pip globally echo -e "[global]\nbreak-system-packages = true\nroot-user-action = ignore\nno-cache-dir = true" > /etc/pip.conf && \ # Install ytdl-sub and yt-dlp dependencies, ensure they are installed properly python3 -m pip install ytdl_sub-*.whl curl-cffi yt-dlp-ejs && \ ytdl-sub -h && \ # Delete unneeded packages after install rm ytdl_sub-*.whl && \ apt-get remove -y \ g++ \ make \ xz-utils \ bzip2 && \ apt-get autoremove -y && \ apt-get purge -y --auto-remove && \ rm -rf /var/lib/apt/lists/* && \ python3 -m pip --help ############################################################################### # CONTAINER CONFIGS ENV EDITOR="nano" \ HOME="${DEFAULT_WORKSPACE}" \ DOCKER_MODS=linuxserver/mods:universal-stdout-logs|linuxserver/mods:universal-cron \ CRON_SCRIPT="${DEFAULT_WORKSPACE}/cron" \ CRON_WRAPPER_SCRIPT="${DEFAULT_WORKSPACE}/.cron_wrapper" \ LOGS_TO_STDOUT="${DEFAULT_WORKSPACE}/.cron.log" \ LSIO_FIRST_PARTY=false VOLUME "${DEFAULT_WORKSPACE}" WORKDIR "${DEFAULT_WORKSPACE}"