Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Command-Line Apps
  3. youtube-dl

youtube-dl

UnlicensePython2021.12.17

A command-line program to download videos from YouTube and over a thousand other sites.

Visit WebsiteGitHubGitHub
141.4k stars10.7k forks0 contributors

What is youtube-dl?

youtube-dl is a command-line program written in Python that downloads videos from YouTube and a wide variety of other video hosting websites. It solves the problem of accessing and archiving online video content by providing a robust, scriptable interface that works across many platforms.

Target Audience

Developers, system administrators, and power users who need to automate video downloads, archive content, or integrate video downloading into scripts and workflows.

Value Proposition

Developers choose youtube-dl for its unparalleled site support, extensive customization options, and reliability. Its open-source nature and active community ensure it stays updated with site changes, making it the most comprehensive tool of its kind.

Overview

Command-line program to download videos from YouTube.com and other video sites

Use Cases

Best For

  • Downloading YouTube videos or playlists for offline viewing
  • Archiving video content from a wide range of websites
  • Extracting audio from videos to create MP3 or other audio files
  • Batch downloading videos using scripts or automation
  • Downloading videos with specific quality or format requirements
  • Grabbing subtitles and metadata along with video files

Not Ideal For

  • End-users who want a simple, graphical interface for one-click video downloads without using the command line.
  • Applications requiring real-time video streaming or playback without downloading files to local storage.
  • Environments with strict software restrictions that prevent installing Python, ffmpeg, or other dependencies.
  • Mobile app development where a command-line tool cannot be integrated directly due to platform limitations.

Pros & Cons

Pros

Vast Site Compatibility

Supports downloads from YouTube and over 1000 other video platforms, with extractor descriptions available via --list-extractors, ensuring wide coverage.

Granular Format Control

Allows precise selection of video and audio formats using codes and filters, and can merge bestvideo+bestaudio with ffmpeg for optimal quality, as detailed in the format selection section.

Powerful Automation Features

Enables batch downloads from playlists, channels, or files with options like --batch-file and configurable output templates, making it scriptable for workflows.

Extensive Post-processing

Integrates with ffmpeg to extract audio, embed subtitles, add metadata, and convert formats, providing a complete media handling suite as per the post-processing options.

Cons

Dependency-Heavy Setup

Requires external tools like ffmpeg for full post-processing capabilities and rtmpdump for RTMP streams, adding installation complexity and potential points of failure.

Command-Line Barrier

Lacks a graphical user interface, making it inaccessible for non-technical users who are unfamiliar with terminal commands and extensive option syntax.

Frequent Update Needs

Must be updated regularly to avoid breakage due to site changes, as highlighted in the FAQ where outdated versions cause errors like 'Unable to extract OpenGraph title'.

Frequently Asked Questions

Quick Stats

Stars141,370
Forks10,663
Contributors0
Open Issues3,624
Last commit8 months ago
CreatedSince 2010

Tags

#video-downloader#audio-extraction#batch-download#command-line-tool#media-download#python#youtube#cli

Built With

P
Python

Links & Resources

Website

Included in

Command-Line Apps19.2k
Auto-fetched 1 day ago

Related Projects

yt-dlpyt-dlp

A feature-rich command-line audio/video downloader

Stars200,164
Forks17,450
Last commit1 day ago
streamlinkstreamlink

Streamlink is a CLI utility which pipes video streams from various services into a video player

Stars11,862
Forks1,210
Last commit2 days ago
mps-youtubemps-youtube

yewtube, forked from mps-youtube , is a Terminal based YouTube player and downloader. No Youtube API key required.

Stars8,802
Forks671
Last commit7 months ago
editlyeditly

Slick, declarative command line video editing & API

Stars5,537
Forks386
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub