youtube-dl VS pytube

Compare youtube-dl vs pytube and see what are their differences.

youtube-dl

Command-line program to download videos from YouTube.com and other video sites (by ytdl-org)

pytube

A lightweight, dependency-free Python library (and command-line utility) for downloading YouTube Videos. (by tfdahlin)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
youtube-dl pytube
1,082 2
128,341 3
0.8% -
8.5 0.0
7 days ago over 2 years ago
Python Python
The Unlicense The Unlicense
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

youtube-dl

Posts with mentions or reviews of youtube-dl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-30.

pytube

Posts with mentions or reviews of pytube. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-18.
  • YouTube-DL core maintainer moves self to inactive list
    8 projects | news.ycombinator.com | 18 Dec 2021
    Quicker explanation of how Youtube is doing it is at the source code of pytube: https://github.com/tfdahlin/pytube/blob/bb890af3b271a616bbe1...

    This is linked from the description of PR 30184 of youtube-dl but @varenc linked to a specific comment (talking about patching Windows builds, AFAICT) which might confuse some people.

    I'll even save you the click:

    > YouTube's strategy to restrict downloading videos is to send a ciphered version

  • A cross platform front-end GUI of the popular YouTube-dl written in wxPython
    13 projects | news.ycombinator.com | 1 Nov 2021
    There are workarounds (detailed very nicely in dirkf’s pull request for youtube-dl):

    https://github.com/ytdl-org/youtube-dl/pull/30184

    Pasting the content here for convenience:

    Since summer 2021, YouTube has started serving media URLs with a query parameter such as …&n=SXiXBH-xzrjeioPN&…. This now appears to be the default behaviour. Unless the value of this parameter is transformed according to an algorithm delivered in the site player JS, the download speed for the URL is throttled to ~50kB/s.

    Solutions for this include:

    • implementing a more complete JS interpreter, eg based on PR [jsinterp] Actual JS interpreter¹ #11272;

    • using an external JS interpreter (PhantomJS, now unmaintained, is used by some extractors);

    • spoofing the Android or iOS client to acquire unthrottled links, as successfully implemented in yt-dlp².

    This PR takes a different approach derived from the successful solution used in VLC's youtube.lua (also implemented differently in pytube³). The approach relies on the fact that the challenge algorithm is served in a mini-language within the minified player JS and therefore the specific algorithm can be extracted and executed by interpreting the mini-language without actually running the JS itself. [In parallel with this PR, a separate implementation of this approach was added to yt-dlp⁴.]

    The implementation of the mini-language interpreter is directly translated from VLC's n_descramble() Lua function⁵. The result sufficiently resembles the original that it should be straightforward to share changes between the two implementations.

    ――――――

    ¹ — https://github.com/ytdl-org/youtube-dl/pull/11272

    ² — https://github.com/yt-dlp/yt-dlp/commit/c888ffb95ab0ab4f4cd1...

    ³ — https://github.com/tfdahlin/pytube/blob/bb890af3b271a616bbe1...

    ⁴ — https://github.com/yt-dlp/yt-dlp/commit/404f611f1c4aa516fbc4...

    ⁵ — https://code.videolan.org/videolan/vlc/-/blob/4fb284e5af69aa...

What are some alternatives?

When comparing youtube-dl and pytube you can also consider the following projects:

spotify-downloader - Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found).

yt-dlp - A feature-rich command-line audio/video downloader

youtube-dl-gui - A cross platform front-end GUI of the popular youtube-dl written in wxPython.

you-get - :arrow_double_down: Dumb downloader that scrapes the web

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

udemy-dl - A cross-platform python based utility to download courses from udemy for personal offline use.

one-click-youtube-dl - Small tool to allow one-click downloading videos with youtube-dl

twitch-dl - CLI tool for downloading videos from Twitch.

youtube-dl-gui - A cross platform front-end GUI of the popular youtube-dl written in wxPython.

Monkey-DL (Anime Downloader) - Bulk download your favourite anime episodes from your favourite anime websites

tartube - A GUI front-end for youtube-dl, partly based on youtube-dl-gui and written in Python 3 / Gtk 3