Skip to main content

Fastest YouTube downloader. Zero dependencies. Pure Python.

Project description

ytdwnld

Fastest YouTube downloader. Zero dependencies. Pure Python.

Faster than yt-dlp. No throttling. 16 parallel connections. No pip dependencies needed.

Install

pip install ytdwnld

Usage

CLI

# Download best quality (1080p AV1 + audio, merged)
ytdwnld "https://www.youtube.com/watch?v=VIDEO_ID"

# Specific quality
ytdwnld "https://www.youtube.com/watch?v=VIDEO_ID" --quality 720p

# Audio only
ytdwnld "https://www.youtube.com/watch?v=VIDEO_ID" --audio-only

# List available formats
ytdwnld "https://www.youtube.com/watch?v=VIDEO_ID" --list-formats

# Playlist
ytdwnld "https://www.youtube.com/playlist?list=PLAYLIST_ID"

# More connections = faster (default 16)
ytdwnld URL --connections 32

Python API

from ytdwnld import YouTube

# Basic
yt = YouTube("https://www.youtube.com/watch?v=VIDEO_ID")
print(yt.title)
print(yt.author)
yt.download()  # 1080p, full speed

# Audio only
yt.download(audio_only=True)

# Specific quality
yt.download(quality="720p")

# Custom location
yt.download(output_dir="~/Videos", filename="my_video")

# Access streams directly
for stream in yt.streams:
    print(stream)

# Filter streams
best_audio = yt.streams.filter(audio_only=True).order_by("bitrate", reverse=True).first()
yt.download(stream=best_audio)

Playlist

from ytdwnld import Playlist

pl = Playlist("https://www.youtube.com/playlist?list=PLxxxxxxx")
print(f"{pl.count} videos")
pl.download_all(output_dir="./my_playlist")

Why faster than yt-dlp?

ytdwnld yt-dlp
Speed 5.5 MB/s constant 3.5 MB/s (stutters)
Time (1080p, 27min video) 40s 61s
Dependencies 0 20+
Throttled? No Yes

How: 16 parallel HTTP Range connections bypass YouTube's per-connection throttle. AV1 codec by default (same quality, half the file size). Pure Python stdlib — no requests, no js2py, nothing.

Requirements

  • Python 3.8+
  • ffmpeg (optional, for merging 1080p video+audio — without it you get 360p)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ytdwnld-0.1.0.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ytdwnld-0.1.0-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file ytdwnld-0.1.0.tar.gz.

File metadata

  • Download URL: ytdwnld-0.1.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for ytdwnld-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d565aba300eaa5df38d37f01f3e748e5ba7e6e3633e07527d307134f49f8d3c7
MD5 657b5587d36fd6853fcd4e0e74116f1b
BLAKE2b-256 67ab68a4008cf59441a43fece29c00fa93c0106c3391efd6deb26dab8402726e

See more details on using hashes here.

File details

Details for the file ytdwnld-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ytdwnld-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for ytdwnld-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 396e8fa2e3bd629adbdb2eacc9a5e3e2ecda99ee2c17baa3589fb5c5d0b14d31
MD5 1753c902b9d09a91e3c6ac5aedff318e
BLAKE2b-256 aefa81350f409fd281d9f3d7da06822bd2efbf97031ad20f663df69d7a5a4329

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page