FROM lscr.io/linuxserver/code-server:4.18.0-ls181

# Needed for phantomjs
ENV OPENSSL_CONF=/etc/ssl

###############################################################################
# YTDL-SUB INSTALL

SHELL ["/bin/bash", "-c"]
COPY root/ /
RUN mkdir -p /config && \
    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 \
      make \
      python3.10-dev \
      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 \
      curl -L -o phantomjs.tar.bz2 https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 && \
      tar -xvf phantomjs.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 phantomjs.tar.bz2 && \
      echo "Phantom JS version:" && \
      phantomjs --version ; \
    fi && \
    # Install ytdl-sub, ensure it is installed properly
    pip install --no-cache-dir ytdl_sub-*.whl && \
      ytdl-sub -h && \
    # Delete unneeded packages after install
    rm ytdl_sub-*.whl && \
    apt-get remove -y \
      g++ \
      make \
      xz-utils \
      bzip2 \
      python3.10-dev \
      python3-venv && \
    apt-get autoremove -y && \
    apt-get purge -y --auto-remove && \
    rm -rf /var/lib/apt/lists/*

###############################################################################
# CONTAINER CONFIGS


ENV YTDL_SUB_TYPE="gui" \
EDITOR="nano" \
HOME="/config" \
DOCKER_MODS=linuxserver/mods:universal-cron \
DEFAULT_WORKSPACE=/config/ytdl-sub-configs

VOLUME /config