Skip to content

std66/TomiSoft.YoutubeDownloader.WebUI

Repository files navigation

TomiSoft.YoutubeDownloader.WebUI

Build status BCH compliance

A simple WebUI for youtube-dl.

Requirements

  • Microsoft Visual Studio 2019
  • Microsoft .NET 6.0
  • IIS 8.0 or newer with WebSockets enabled

Run in Docker

The easiest way to get started is to use my Docker image. It is preconfigured and it is immediately ready to use. https://hub.docker.com/r/std66/tomisoft-youtubedownloader-webui

docker run -d -p 28465:80 -p 30000:9000 std66/tomisoft-youtubedownloader-webui

Open http://localhost:28465 for the application. Prometheus metrics are available at http://localhost:30000/metrics

Running in Kubernetes

It will be available in the future. Since the application is heavily stateful, it needs some more refactoring work to be done to fully utilitize the benefits of Kubernetes.

Features available at the moment:

  • Can run in Kubernetes with 1 pod
  • Can be configured using Kubernetes ConfigMap

Manual deploy to IIS

  • Download the executable youtube-dl from https://rg3.github.io/youtube-dl/
  • Download ffmpeg, ffprobe from https://www.ffmpeg.org/download.html and extract them next to the youtube-dl executable.
  • Add IUSR read+execute rights to the folder that contains youtube-dl.
  • Build solution and deploy TomiSoft.YoutubeDownloader.WebUI project to IIS:
    • Create a new IIS website
    • Configure the website's application pool:
      • Set .NET CLR Version to "No managed code".
      • The process model identity must be set to "LocalSystem", otherwise the youtube-dl cannot be executed.
    • Deploy website
    • Configure appsettings.json
      • Set ExecutablePath to the path where the youtube-dl.exe is located.
      • Set MaximumParallelDownloads according to how many downloads can be running simultaneously.
      • Set DeleteFilesAfterMinutesElapsed according to how long do you want to keep downloaded files.
  • Execute IISRESET in cmd.exe

Screenshots

Screenshot 1 Screenshot 2

Contact

Tamás Sinku (sinkutamas@gmail.com)