Skip to content

A terrible web ui for yt-dlp 🙄. Designed to be self-hosted.

License

Notifications You must be signed in to change notification settings

nickhoo555/yt-dlp-web-ui

 
 

Repository files navigation

yt-dlp Web UI

A not so terrible web ui for yt-dlp.
Created for the only purpose of fetching videos from my server/nas.

Intended to be used with docker and in standalone mode. 😎👍

Developed to be as lightweight as possible (because my server is basically an intel atom sbc).

The bottleneck remains yt-dlp startup time.

Docker images are available on Docker Hub or ghcr.io.

docker pull marcobaobao/yt-dlp-webui
# latest stable
docker pull ghcr.io/marcopeocchi/yt-dlp-web-ui:latest
# latest dev version
docker pull ghcr.io/marcopeocchi/yt-dlp-web-ui:master

image image

Integrated File browser

Stream or download your content, easily.

Changelog

05/03/22: Korean translation by kimpig

03/03/22: cut-down image size by switching to Alpine linux based container

01/03/22: Chinese translation by deluxghost

03/02/22: i18n enabled! I need help with the translations :/

27/01/22: Multidownload implemented!

26/01/22: Multiple downloads are being implemented. Maybe by next release they will be there.
Refactoring and JSDoc.

04/01/22: Background jobs now are retrieved!! It's still rudimentary but it leverages on yt-dlp resume feature.

05/05/22: Material UI update.

03/06/22: The most requested feature finally implemented: Format Selection!!

08/06/22: ARM builds.

28/06/22: Reworked resume download feature. Now it's pratically instantaneous. It no longer stops and restarts each process, references to each process are saved in memory.

12/01/23: Switched from TypeScript to Golang on the backend. It was a great effort but it was worth it.

Settings

The currently avaible settings are:

  • Server address
  • Switch theme
  • Extract audio
  • Switch language
  • Optional format selection
  • Override the output filename
  • Override the output path
  • Pass custom yt-dlp arguments safely
  • Download queue (limit concurrent downloads)

Format selection

fs1

This feature is disabled by default as this intended to be used to retrieve the best quality automatically.

To enable it just go to the settings page and enable the Enable video/audio formats selection flag!

Future releases will have:

  • Multi download done
  • Exctract audio done
  • Format selection done
  • Download archive done
  • ARM Build done available through ghcr.io
  • Playlist support

Troubleshooting

  • It says that it isn't connected/ip in the header is not defined.
    • You must set the server ip address in the settings section (gear icon).
  • The download doesn't start.
    • As before server address is not specified or simply yt-dlp process takes a lot of time to fire up. (Forking yt-dlp isn't fast especially if you have a lower-end/low-power NAS/server/desktop where the server is running)

Docker installation

# recomended for ARM and x86 devices 
docker pull marcobaobao/yt-dlp-webui
docker run -d -p 3033:3033 -v <your dir>:/downloads marcobaobao/yt-dlp-webui

Or with docker but building the container manually.

docker build -t yt-dlp-webui .
docker run -d -p 3033:3033 -v <your dir>:/downloads yt-dlp-webui

docker run -d -p 3033:3033 \
  -v <your dir>:/downloads \  
  -v <your dir>:/config \ # optional
  yt-dlp-webui

If you opt to add RPC authentication...

docker run -d \
    -p 3033:3033 \
    -e JWT_SECRET randomsecret
    -v /path/to/downloads:/downloads \
    -v /path/for/config:/config \ # optional
    marcobaobao/yt-dlp-webui \
    --auth \
    --user your_username \
    --pass your_pass

If you wish for limiting the download queue size...

e.g. limiting max 2 concurrent download.

docker run -d \
    -p 3033:3033 \
    -e JWT_SECRET randomsecret
    -v /path/to/downloads:/downloads \
    marcobaobao/yt-dlp-webui \
    --qs 2

Prebuilt binaries installation

# download the latest release from the releases page
mv yt-dlp-webui_linux-[your_system_arch] /usr/local/bin/yt-dlp-webui

# /home/user/downloads as an example and yt-dlp in $PATH
yt-dlp-web