selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

ytdlp_web_player logo

Self-host ytdlp_web_player

v1.3.3

Self-hosted video player powered by yt-dlp

ReleaseOpen SourceGPL-2.0
Docker ComposeCompose file & guide
docker compose up
Updated10 hours ago
LanguageJavaScript
Setup difficultyEasy
MobilePWA
Stars
809
Port
5000 (HTTP web interface)
Docker
matszwe02/ytdlp_web_player
Main player pageVertical video supportPhone app (PWA)Browser extension replacing video player

What is ytdlp_web_player?

YT-DLP Web Player is a self-hosted web application that streams videos from any site supported by yt-dlp. It provides a clean, minimalistic video player interface with features like live stream support, vertical video handling, zoom-to-fill, video download and looping, optional music visualizer, and a browser extension that replaces embedded players on websites. The project auto-updates yt-dlp daily to support new sites and codecs. It can be deployed via Docker, Docker Compose, Python directly, or as native Windows/Linux binaries. Hardware-accelerated transcoding via FFmpeg (with NVIDIA NVENC support) ensures reliable playback. The player integrates SponsorBlock for skipping sponsor segments, Media Session API for system playback controls, and Audio Context API for audio amplification and visualization. Configuration is done through environment variables. No user authentication system is built in; it's designed for personal or trusted-network use.

Should you self-host ytdlp_web_player?

ytdlp_web_player scores 55/100 on selfhost.directory (how scoring works) and ranks #12 of 36 in Video Streaming. It has 809 GitHub stars.

It shipped 8 stable releases in the past year. The latest, v1.3.3, came out on 25 October 2026. New versions land roughly every 5 days.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is GPL-2.0-licensed and written mostly in JavaScript.

Its closest alternative on selfhost.directory is piped (70/100, 10 295 stars). It scores higher overall, so compare the two before you pick. See ytdlp_web_player vs piped side by side.

Features

  • Audio over-amplification
  • Browser ExtensionAvailable on Chrome Web Store and Firefox Add-ons
  • Cookie-based authentication for streaming sitesRequires manual cookie file setup
  • Embeddable iframe player
  • Hardware-accelerated transcodingRequires NVIDIA Container Toolkit for GPU acceleration in Docker
  • HTTP proxy support with fallbackConfigured via PROXIES env var
  • Live stream support
  • Media Session API
  • Music visualizerOff by default, enable via AUDIO_VISUALIZER env var
  • Open Graph sharing support
  • Sponsorblock IntegrationConfigured via AUTOSKIP_SB_SEGMENTS env var
  • Vertical video support
  • Video download and loop
  • Video playback from yt-dlp supported sites

ytdlp_web_player README

How to install ytdlp_web_player

Install ytdlp_web_player with Docker

Docker Engine

docker run -p 5000:5000 matszwe02/ytdlp_web_player:stable

Stable version for everyday use. Also available: matszwe02/ytdlp_web_player:latest for experimental features.

How to configure ytdlp_web_player

  • ALWAYS_TRANSCODEfalseAlways transcode videos

    Always transcode videos

    values: true,false

  • AMOLED_BGfalseUse AMOLED black background

    Use AMOLED black background

    values: true,false

  • APP_TITLEYT-DLP PlayerTitle shown in the player UI

    Title shown in the player UI

  • AUDIO_VISUALIZERfalseEnable music visualizer

    Enable music visualizer

    values: true,false

  • AUTO_BG_PLAYBACKtrueKeep playing videos in background after leaving app or locking screen

    Keep playing videos in background after leaving app or locking screen

    values: true,false

  • AUTOPLAYfalseAutoplay videos

    Autoplay videos

    values: true,false

  • AUTOSKIP_SB_SEGMENTSComma-separated SponsorBlock segments to auto-skip (e.g. selfpromo,outro,sponsor,preview,interaction,intro,music_offtopic)

    Comma-separated SponsorBlock segments to auto-skip (e.g. selfpromo,outro,sponsor,preview,interaction,intro,music_offtopic)

  • COOKIES_ONLY_ON_FAILUREtrueOnly use cookies if necessary

    Only use cookies if necessary

    values: true,false

  • DATA_PATH./dataPath for data storage

    Path for data storage

  • DEFAULT_QUALITY720Default video quality

    Default video quality

  • DISABLE_TRANSCODINGfalseDisable transcoding for low-performance machines

    Disable transcoding for low-performance machines

    values: true,false

  • GENERATE_SPRITE_BELOW1800Generate sprites for videos below this duration in seconds (0 to disable)

    Generate sprites for videos below this duration in seconds (0 to disable)

  • IMPERSONATE_BROWSERchromeBrowser TLS fingerprint for yt-dlp requests (chrome, firefox, safari; empty = disabled)

    Browser TLS fingerprint for yt-dlp requests (chrome, firefox, safari; empty = disabled)

    values: chrome,firefox,safari

  • MAX_PROCESSES5Maximum concurrent FFmpeg and yt-dlp processes

    Maximum concurrent FFmpeg and yt-dlp processes

  • MAX_QUALITY2160Maximum video quality

    Maximum video quality

  • MAX_VIDEO_AGE3600Inactivity time in seconds after which video is removed

    Inactivity time in seconds after which video is removed

  • MAX_VIDEO_DURATION36000Maximum video duration in seconds

    Maximum video duration in seconds

  • MIN_LIVE_BUFFER1Minimum buffer for livestreams in seconds (0 to disable)

    Minimum buffer for livestreams in seconds (0 to disable)

  • PLAYLIST_SUPPORTtrueEnable playlist support

    Enable playlist support

    values: true,false

  • PORT5000Port the app listens on

    Port the app listens on

  • PROXIESlocalProxies for accessing videos (e.g. local,http://127.0.0.1:8888; local = no proxy)

    Proxies for accessing videos (e.g. local,http://127.0.0.1:8888; local = no proxy)

  • PUBLISH_WITH_CLOUDFLAREfalseGenerate temporary public HTTPS link via Cloudflare tunnel

    Generate temporary public HTTPS link via Cloudflare tunnel

    values: true,false

  • THEME_COLOR#ff7300Theme color for the UI

    Theme color for the UI

ytdlp_web_player releases & version history

FAQ

Can this app do XYZ?

Check src/example.env for all configuration options. If the feature you want isn't listed, you can file a feature request.

I can't play some videos

Check if the site is supported by yt-dlp at their supported sites list. Also check yt-dlp's issues. Try downloading the video with yt-dlp directly to verify it's supported.

More in Video Streaming

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…