Sign inSign up

plachta11b/destreamer

By plachta11b

•Updated almost 6 years ago

Saves Microsoft Stream videos for offline enjoyment

Image
0

1.9K

plachta11b/destreamer repository overview

⁠destreamer

From https://github.com/snobu/destreamer⁠

⁠How to run no X11 version (should be multiplatform but not tested)

⁠Run container
docker run -it -p 8080:8080 -v $(realpath ./video):/video plachta11b/destreamer:2b09d17 -i 'https://web.microsoftstream.com/video/VIDEO-1' -o /video
⁠Log in

Open to login: http://localhost:8080/vnc.html⁠

⁠Enjoy

Video should be in ./video directory

⁠How to run (tested on MACOS)

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

⁠Dockerfile

Dockerfile plachta11b/destreamer:7fc7c47
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" ]
Dockerfile latest
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]⁠

Tag summary

Content type

Image

Digest

Size

442 MB

Last updated

almost 6 years ago

docker pull plachta11b/destreamer