Saves Microsoft Stream videos for offline enjoyment
1.9K
From https://github.com/snobu/destreamer
docker run -it -p 8080:8080 -v $(realpath ./video):/video plachta11b/destreamer:2b09d17 -i 'https://web.microsoftstream.com/video/VIDEO-1' -o /video
Open to login: http://localhost:8080/vnc.html
Video should be in ./video directory
Require XQuartz running: https://www.xquartz.org/
xhost +$(hostname)
# open XQuartz and enable 'Allow connections from network clients'
# WARNING: change VIDEO-1 to hash of your video
docker run -v $(realpath ./video):/video -v /tmp/.X11-unix:/tmp/.X11-unix plachta11b/destreamer:7fc7c47 -i "https://web.microsoftstream.com/video/VIDEO-1" -o /video
docker run -v $(realpath ./video):/video -v /tmp/.X11-unix:/tmp/.X11-unix plachta11b/destreamer:7fc7c47 -f /video/list.txt -o /video
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
nodejs \
npm \
ffmpeg \
libgtk-3-0 \
libgdk-pixbuf2.0-0 \
libcups2-dev \
libatk-adaptor \
libnss3-dev \
x11-apps \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /
RUN git clone https://github.com/snobu/destreamer \
&& git -C /destreamer checkout 7fc7c4733aa9f79a28d163888834c1c01bd93679
WORKDIR /destreamer
RUN npm install
# fix this before code transpilation
# https://github.com/jessfraz/dockerfiles/issues/515
# --ipc=host, --ignore-gpu-blacklist, --use-gl=swiftshader
RUN sed -i "s#'--no-sandbox'#'--no-sandbox','--use-gl=swiftshader'#" /destreamer/src/destreamer.ts
RUN npm run build
WORKDIR /destreamer/node_modules/puppeteer/.local-chromium/linux-722234/chrome-linux
RUN chown root:root chrome_sandbox
RUN chmod 4755 chrome_sandbox
RUN cp -p chrome_sandbox /usr/local/sbin/chrome-devel-sandbox
WORKDIR /destreamer
ENV CHROME_DEVEL_SANDBOX=/usr/local/sbin/chrome-devel-sandbox
RUN apt-get update && apt-get install -y --no-install-recommends \
libxtst6 \
&& rm -rf /var/lib/apt/lists/*
RUN groupadd --gid 5000 ubuntu \
&& useradd --home-dir /home/newuser --create-home --uid 5000 \
--gid 5000 --shell /bin/sh --skel /dev/null ubuntu
USER ubuntu
# modify with param -e DISPLAY=host.docker.internal:0
ENV DISPLAY=host.docker.internal:0
ENTRYPOINT [ "/destreamer/destreamer.sh" ]
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
nodejs \
npm \
ffmpeg \
libgtk-3-0 \
libgdk-pixbuf2.0-0 \
libcups2-dev \
libatk-adaptor \
libnss3-dev \
libxtst6 \
x11-apps \
&& rm -rf /var/lib/apt/lists/*
# Note that destreamer won't run in an elevated (Administrator/root) shell.
RUN groupadd --gid 5000 ubuntu \
&& useradd --home-dir /home/ubuntu --create-home --uid 5000 \
--gid 5000 --shell /bin/sh --skel /dev/null ubuntu
USER ubuntu
WORKDIR /home/ubuntu
RUN git clone https://github.com/snobu/destreamer
# This dockerfile was tested with version 7fc7c4733aa9f79a28d163888834c1c01bd93679
# Checkout to commit above in case of broken dependencies
# RUN git -C /destreamer checkout 7fc7c4733aa9f79a28d163888834c1c01bd93679
WORKDIR /home/ubuntu/destreamer
RUN npm install
# fix this before code transpilation
# https://github.com/jessfraz/dockerfiles/issues/515
# --ipc=host, --ignore-gpu-blacklist, --use-gl=swiftshader
RUN sed -i "s#'--no-sandbox'#'--no-sandbox','--use-gl=swiftshader'#" /home/ubuntu/destreamer/src/destreamer.ts
# Transpile typescript into javascript
RUN npm run build
USER root
RUN apt-get update && apt-get install -y --no-install-recommends \
websockify \
novnc \
x11vnc \
xvfb \
&& rm -rf /var/lib/apt/lists/*
ENV HOME=/home/ubuntu \
LANG=en_US.UTF-8 \
LANGUAGE=en_US.UTF-8 \
LC_ALL=C.UTF-8 \
DISPLAY=:0.0
# exec supervisord -c /app/supervisord.conf &\n\
RUN echo '#!/bin/bash\n\
Xvfb :0 -screen 0 1024x768x24 -listen tcp -ac > /dev/null &\n\
x11vnc -forever -shared > /dev/null &\n\
websockify --web /usr/share/novnc 8080 localhost:5900 > /dev/null &\n\
set -x\n\
su ubuntu -- ./destreamer.sh "$@"' > /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]
For bugs related to this container: [email protected]
Content type
Image
Digest
Size
442 MB
Last updated
almost 6 years ago
docker pull plachta11b/destreamer