Skip to main content

yt-stash

Download YouTube videos and playlists from your terminal. Any quality, parallel downloads, members-only videos, subtitles, and a friendly arrow-key menu.

CI PyPI Python License: MIT

yt-stash is a cross-platform (Linux, macOS, Windows) command-line downloader for single videos, several videos and whole playlists, including members-only and private videos. It is a thin, heavily tested workflow layer on top of yt-dlp, the best-maintained YouTube extraction library, so it keeps working when YouTube changes.

Features

  • Every quality: detects all resolutions (144p … 8K, high frame rate, HDR) and lets you choose once for a whole batch. Defaults to 1080p, or the highest available.
  • Videos and playlists: one or many links, a text file of links, or every video of a playlist.
  • Parallel downloads: several videos at once, plus parallel fragments per video.
  • Members-only, private and age-restricted videos through your browser's signed-in session, a cookies.txt file, or cookies pasted for one run (never saved).
  • Audio only (m4a, mp3, opus) and subtitles (save or embed, any language, auto-generated too).
  • Resume and skip: interrupted downloads continue; files you already have are skipped; transient errors and rate limits are retried automatically.
  • Interactive or scriptable: arrow-key menus with an explanation under every entry, or --yes plus flags for cron and CI, with documented exit codes.
  • English and Turkish interface.

Quickstart

# 1. Install (details for every system: docs/installation.md)
pipx install yt-stash

# 2. Open the interactive menu
yt-stash

# 3. Or download straight away
yt-stash video URL                    # asks for quality and folder
yt-stash video URL -q 720 -o ~/Videos                            # no questions
yt-stash video URL1 URL2 URL3 -j 3                               # three at once
yt-stash playlist "https://www.youtube.com/playlist?list=PL..."  # a whole playlist
yt-stash video URL -a mp3                                        # audio only
yt-stash video URL --subs en,tr --embed-subs                     # with subtitles
yt-stash video URL --cookies-from-browser firefox                # members-only video
$ yt-stash
yt-stash 1.0.0  Download YouTube videos and playlists

▶ What do you want to do? (↑↓ to move, Enter to choose)
 ❯ Download videos
   Download a playlist
   Download links from a text file
   Show available qualities

   Sign-in (off)
   Language (English)
   Check setup
   Command-line options
   Quit
  Description: Paste one or more video links.

Installation

yt-stash needs Python 3.10+; install ffmpeg and deno too for full quality.

System Install
macOS brew install python pipx ffmpeg deno && pipx ensurepath, then pipx install yt-stash
Windows (PowerShell) winget install Python.Python.3.13, winget install Gyan.FFmpeg, winget install DenoLand.Deno, reopen PowerShell, py -m pip install --user pipx, py -m pipx ensurepath, reopen, then pipx install yt-stash
Debian / Ubuntu sudo apt install python3 pipx ffmpeg && pipx ensurepath, install deno, then pipx install yt-stash
Fedora / Arch / openSUSE / uv / pip / source see the installation guide

Check it: yt-stash --version. If downloads suddenly fail, update first: pipx upgrade yt-stash.

Documentation

Guide What is in it
Installation Step by step for macOS, Windows and Linux; updating and uninstalling
Using yt-stash Every feature: menus, videos, playlists, quality, audio, subtitles, resume, language, scripting, all options, recipes
Members-only videos Sign-in with browser cookies, a cookies file or pasted cookies
Troubleshooting Common problems and fixes
Translating Add or improve a language
Architecture How the code is organised and why
Changelog What changed in each release

Quick reference: yt-stash --help, yt-stash video --help, yt-stash playlist --help.

Exit codes: 0 everything downloaded or already present · 1 at least one video failed · 2 invalid usage · 130 interrupted with Ctrl+C.

Getting help

  • Question or idea? Open a Discussion.
  • Found a bug? Open an issue; the form asks for the details that make it fixable.
  • Security problem? Please don't open an issue; follow the security policy.

yt-stash is maintained by one volunteer in their spare time. Replies may take a few days; thank you for your patience.

Contributing

Contributions of every size are welcome: bug reports, documentation fixes, translations and code. Read CONTRIBUTING.md first; issues labelled good first issue are a good place to start. By taking part you agree to the Code of Conduct.

git clone https://github.com/ilkerkeklik01/yt-stash.git && cd yt-stash
python -m venv .venv && source .venv/bin/activate     # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
pytest && ruff check . && ruff format --check .

yt-stash is released under the MIT License. It is an independent project, not affiliated with or endorsed by YouTube or Google. Only download content you have the right to download, and respect YouTube's Terms of Service and the creators' rights. You are responsible for how you use this tool.

yt-stash does not remove DRM, bypass paywalls or circumvent access controls of its own; it drives yt-dlp, and sign-in works only through cookies you already have. It collects no data and has no telemetry: the only thing it stores is the language you choose, in a local settings file. Everything that goes over the network is done by yt-dlp, to YouTube and its video servers.

yt-stash builds on yt-dlp (Unlicense), rich (MIT), questionary (MIT) and prompt_toolkit (BSD-3-Clause). Thank you to their authors.

Metadata

Release files for yt-stash 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yt-stash 1.0.1
File Size Uploaded
yt_stash-1.0.1.tar.gz 109.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yt-stash 1.0.1
File Interpreter ABI Platform
yt_stash-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 183.7 kB

Release files / yt_stash-1.0.1.tar.gz

Download URL yt_stash-1.0.1.tar.gz
Size 109.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fa4e49b695e89a9b84bd4da3b7d3116a575ccdc23b3d70402665460b7f9db8a3
BLAKE2b-256 checksum
How to use checksums
e0fdb7b5afe18faef801989231087613cf3608e84a672c51905035f4d7501491
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / yt_stash-1.0.1-py3-none-any.whl

Download URL yt_stash-1.0.1-py3-none-any.whl
Size 74.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92cfabfb8d7d07585da3ed6fb3a2e984aee25ec7b3c38a8f00d55578b7472b8f
BLAKE2b-256 checksum
How to use checksums
d0a4ac84e88b5d13017cbf228515567813087662d27c2448135dff55b10341b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page