No description
Find a file
X27 76a384e504 Self-update from Xlab Git with Codeberg fallback
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 20:52:15 +02:00
Install-YT-DLP-Easy.sh Self-update from Xlab Git with Codeberg fallback 2026-10-06 20:52:15 +02:00
Readme.md Pull Arch container image from GHCR instead of Docker Hub 2026-10-01 22:14:31 +02:00
YT-DLP-Easy.sh Self-update from Xlab Git with Codeberg fallback 2026-10-06 20:52:15 +02:00

YT-DLP-Easy

YT-DLP-Easy is a simple frontend wrapper for the powerful yt-dlp CLI tool. It’s built for people who don’t want to remember a bunch of flags or deal with complicated commands every time they download something.

The goal is straightforward: make downloading videos (or audio) quick and easy.


How it works

Instead of typing long yt-dlp commands, you run a single script. You can provide a single URL, multiple URLs at once, or even a path to a .txt file containing a list of links.

./YT-DLP-Easy.sh [URL/FILE] [OPTIONS]

The script handles formatting, quality selection, metadata, and output organization for you.

Arguments

  • <URL>: A single YouTube link.
  • <URL1> <URL2> ...: Multiple links passed in one command.
  • <path_to_file.txt>: A text file containing one URL per line (comments starting with # are ignored).

Examples

Download a single video in Video format with metadata:

./YT-DLP-Easy.sh https://www.youtube.com/watch?v=dQw4w9WgXcQ -f video -medata

Batch download multiple specific links at once:

./YT-DLP-Easy.sh https://www.youtube.com/watch?v=djV11Xbc914 https://www.youtube.com/watch?v=dQw4w9WgXcQ -f audio

Download an entire list of links from a text file:

./YT-DLP-Easy.sh /home/X27/links.txt -f video-720 -medata

Change the download directory for a batch process:

./YT-DLP-Easy.sh https://www.youtube.com/watch?v=dQw4w9WgXcQ -dir /mnt/ExternalDrive -f audio

Update yt-dlp, ffmpeg, and the script itself (inside the container):

yt-dlp-easy update

Options

  • -f video Downloads the BEST quality video and remuxes to MP4.

  • -f video-1080 / -f video-720 Downloads video capped at 1080p or 720p.

  • -f x264 Downloads the old legacy format of the video in h264.

  • -f audio Extracts audio from the video and converts it to high-quality MP3.

  • -medata / -metadata Embeds metadata (title, artist, etc.) and includes the thumbnail as cover art.

  • -dir <path> Change the download location. Creates a YT-DLP-Easy-Downloads folder inside the path you provide.

  • -help Show this help message.

  • update Updates yt-dlp, ffmpeg, yt-dlp-ejs, and YT-DLP-Easy.sh itself inside the container to their latest versions. Run it as yt-dlp-easy update from the host.


Features

  • Batch Processing: Support for multiple URLs and .txt file imports.
  • Smart Playlist Detection: Automatically detects playlists and organizes them into dedicated folders.
  • Automatic Quality Selection: Automatically selects the highest available quality unless specified otherwise.
  • Media Conversion: Handles MP4 remuxing for video and MP3 conversion for audio.
  • Metadata Integration: Easily embeds thumbnails and metadata for a clean library.
  • Clean Organization: Keeps playlist order intact and organizes files logically.

Installation & Setup

this project provides a simple setup script that uses Distrobox to create a archlinux container with the dependicies inside the container with the command exposed to the host, you can use the script on most Distros but using it inside of Arch container sandboxes it and provides the best experience, use the provided installation script: Install-YT-DLP-Easy.sh.

The installer works out of the box on Fedora, Debian/Ubuntu and Arch based hosts (and openSUSE). If distrobox or a container runtime (podman) is missing, it installs them automatically using your system's package manager (dnf, apt or pacman), falling back to the official rootless distrobox installer when needed.

What it does:

The installer automates the entire setup process for an Arch Linux-based Distrobox container. It performs the following steps:

  1. Host Prerequisites: Detects your distro's package manager and installs distrobox + podman automatically if they aren't already present.
  2. Container Management: Checks if an Arch Linux container (arch-yt-dlp) exists. If not, it offers to create one using ghcr.io/archlinux/archlinux:latest.
  3. Package Installation: Inside the container, it uses pacman to install all necessary dependencies: yt-dlp, yt-dlp-ejs, ffmpeg, and wget.
  4. Script Deployment: It downloads the latest version of YT-DLP-Easy.sh directly from the official repository into /usr/local/bin/ inside the container.
  5. Host Integration (The Magic): It creates a lightweight wrapper command called yt-dlp-easy in your host's ~/.local/bin/, and automatically adds that directory to your PATH (via .bashrc/.zshrc/.profile/fish config) so the command is available in new terminals without any manual steps.

How it works:

The command yt-dlp-easy uses distrobox enter to jump into the container. It specifically handles directory mapping so that when you run the command from any folder on your host, the downloads are created in your host's current working directory, not inside the container's system folders.

Usage:

Simply run the installer with:

./Install-YT-DLP-Easy.sh

Requirements

  • yt-dlp installed and available in your PATH
  • ffmpeg (required for audio conversion and metadata embedding)
  • Bash-compatible environment

Why this exists

yt-dlp is extremely powerful, but not always convenient for quick use or repetitive batch tasks. This script removes friction and gives you a consistent, simple interface without sacrificing useful features.


Warning

I am in no way responsible for how you use this project. Any consequences that result from its use are entirely your responsibility.


License

Use it, modify it, break it, improve it. Up to you.