DougBarry / yt-dlp-web-ui

A terrible web ui for yt-dlp πŸ™„ Designed to be self-hosted. Docker ARM builds available through ghcr.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 but standalone is fine too. πŸ˜ŽπŸ‘

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

The bottleneck remains yt-dlp startup time (until yt-dlp will provide a rpc interface).

I strongly recomend the ghcr build instead of docker hub one.

docker pull ghcr.io/marcopeocchi/yt-dlp-web-ui:master

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/02/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.

Now with dark mode

Settings

The avaible settings are currently only:

  • Server address
  • Switch theme
  • Extract audio
  • Switch language
  • Optional format selection

Format selection

fs1

This feature is disabled by default as this WebUI/Wrapper/Software/Bunch of Code is intended to be used to retrieve the best quality automatically.

To enable it go to the settings page:

fs2

And set it :D

Future releases will have:

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

Troubleshooting

  • It says that it isn't connected/ip in the footer 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)
  • Background jobs are not retrieved.
    • As before forking yt-dlp isn't fast so resuming n background jobs takes n*time to exec yt-dlp Just have patience. Fixed.

Docker installation

# recomended for ARM and x86 devices 
docker pull ghcr.io/marcopeocchi/yt-dlp-web-ui:master
docker run -d -p 3022:3022 -v <your dir>:/usr/src/yt-dlp-webui/downloads ghcr.io/marcopeocchi/yt-dlp-web-ui:master

# or even
docker pull ghcr.io/marcopeocchi/yt-dlp-web-ui:master
docker create --name yt-dlp-webui -p 8082:3022 -v <your dir>:/usr/src/yt-dlp-webui/downloads ghcr.io/marcopeocchi/yt-dlp-web-ui:master

or

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

Manual installation

# the dependencies are: python3, ffmpeg, nodejs, psmisc.

npm i
npm run build-all

# edit the settings.json specifying port and download path or 
# it will default to the following created folder

mkdir downloads

node dist/main.js

FAQ

  • Will it availabe for Raspberry Pi/ generic ARM devices?
    • Yes, it's currently available through ghcr.io
      docker pull ghcr.io/marcopeocchi/yt-dlp-web-ui:master
      
      If you plan to use it on a Raspberry Pi ensure to have fast and durable storage.
  • Why the docker image is so heavy?
    • Originally it was 1.8GB circa, now it has been slimmed to ~340MB compressed. This is due to the fact that it encapsule a basic Alpine linux image + FFmpeg + Node.js + Python3 + yt-dlp.
  • Am I forced to run it on port 3022?
    • Well, yes (until now).
  • Why is it so slow to start a download?
    • I genuinely don't know. I know that standalone yt-dlp is slow to start up even on my M1 Mac, so....

About

A terrible web ui for yt-dlp πŸ™„ Designed to be self-hosted. Docker ARM builds available through ghcr.


Languages

Language:TypeScript 98.8%Language:Dockerfile 0.5%Language:HTML 0.4%Language:Shell 0.3%