Skip to main content
 ██████╗ ██╗███╗   ██╗ ██████╗ ███████╗██████╗ ████████╗███████╗ █████╗
██╔════╝ ██║████╗  ██║██╔════╝ ██╔════╝██╔══██╗╚══██╔══╝██╔════╝██╔══██╗
██║  ███╗██║██╔██╗ ██║██║  ███╗█████╗  ██████╔╝   ██║   █████╗  ███████║
██║   ██║██║██║╚██╗██║██║   ██║██╔══╝  ██╔══██╗   ██║   ██╔══╝  ██╔══██║
╚██████╔╝██║██║ ╚████║╚██████╔╝███████╗██║  ██║   ██║   ███████╗██║  ██║
 ╚═════╝ ╚═╝╚═╝  ╚═══╝ ╚═════╝ ╚══════╝╚═╝  ╚═╝   ╚═╝   ╚══════╝╚═╝  ╚═╝

gingertea downloads videos from YouTube and 1,300+ other sites in your terminal. Paste a link and press d to save an MP4, or press c to choose a format and quality. You can also convert videos, audio and images already on your computer. It runs on yt-dlp, ffmpeg and Textual.

Install

On macOS or Linux:

curl -LsSf https://raw.githubusercontent.com/orbitcord/gingertea/main/install.sh | sh

On Windows, run this in PowerShell:

powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/orbitcord/gingertea/main/install.ps1 | iex"

The installer sets up uv, Python, gingertea, and ffmpeg. Set GINGERTEA_NO_FFMPEG=1 to skip the ffmpeg download; gingertea can get it the first time you need it.

If you already use uv or pipx:

uv tool install gingertea
pipx install gingertea          # needs Python 3.10+
gingertea setup                 # optional: get ffmpeg now

To install the current GitHub version:

uv tool install git+https://github.com/orbitcord/gingertea

Use

gingertea                  # open the app
gingertea <url>            # open with a video link loaded
gingertea <file>           # open Convert files with a file loaded
gingertea setup            # get ffmpeg and check available formats
gingertea update           # update yt-dlp
gingertea --version

Paste a link and gingertea shows the title, channel, length, upload date and thumbnail. The footer lists the keyboard shortcuts, and its shortcuts are clickable.

Key Action
d Download the loaded video as MP4
c Choose a format and quality
x Cancel the current job
l or 4 Search supported sites
s or 3 Open Settings
t Choose a theme
v Cycle the Ginger, Dusk and Tide looks
o Reveal the last saved file
u Update yt-dlp
ctrl+t Switch between Download and Convert files
1 / 2 Open Download / Convert files
Tab Leave the URL field so letter shortcuts work
esc Focus the current input field
q Quit

While the URL field has focus, letters go into the link. Press Tab first or click a shortcut in the footer. You can add another link while a download runs; downloads run one at a time in their queue. The tabs, wordmark, thumbnail and shortcuts adapt to compact terminals so the input, actions and queue stay visible.

Download formats

Video Audio
MP4, MKV, WebM, MOV, GIF MP3, M4A, Opus, FLAC, WAV, OGG
best, 2160p … 360p best, 320 / 192 / 128 kbps

The quality list only shows options available for the video. The default MP4 choice prefers H.264 for compatibility. YouTube usually limits H.264 to 1080p; higher MP4 resolutions may use VP9 or AV1, which some older players cannot play.

Convert files on your computer

Open Convert files with ctrl+t or click the tab. Drop files into the terminal, paste their paths, or press f to browse. You can add several files at once and mix videos, audio and images. Dropping a file on the Download tab switches to Convert files.

Press c to choose a format. The dialog shows which files the selection applies to. Use r to remove the selected file and x to cancel a conversion. The Frames tab exports video frames to a folder of images.

Video Audio Image
MP4, MKV, WebM, MOV, M4V, AVI, TS, FLV, WMV, MPG, 3GP, OGV, GIF, animated PNG, animated WebP MP3, M4A, AAC, Opus, OGG, FLAC, ALAC, WAV, AIFF, WMA, AC3, E-AC3, MP2, WavPack, TTA, CAF, AU, MKA JPG, PNG, WebP, AVIF, JPEG XL, HEIC, JPEG 2000, TIFF, BMP, GIF, TGA, QOI, EXR, HDR, PPM, PCX, SGI, DPX

Converted files go next to their originals. gingertea leaves each original unchanged. When the streams already fit the selected format, it copies them without re-encoding. The dialog says whether the conversion will copy or re-encode. Some formats need codecs that an ffmpeg build may lack; unavailable options stay visible with a note about what's missing. Pillow plugins provide support for HEIC and JPEG XL.

Where files go

Downloads go to your Downloads folder. Names use the video title and ID, such as Title [video-id].mp4. If a file with that name already exists, gingertea adds a number, for example Title [video-id] (2).mp4. Press s to choose another folder.

Settings, including your theme and download folder, live in:

Platform File
macOS ~/Library/Application Support/gingertea/config.toml
Linux ~/.config/gingertea/config.toml
Windows %LOCALAPPDATA%\gingertea\config.toml

Themes

Masala Chai is the default dark theme. Press v to cycle the Ginger, Dusk and Tide looks, which change the wordmark, colors and borders together. Press t or click Themes to choose Tea House, Matcha, Earl Grey, Masala Chai, Hibiscus, gingertea light, or a built-in Textual theme. gingertea remembers your choice.

Videos that need you signed in

For age-restricted or members-only videos, choose a browser in Settings where you are signed in. gingertea can read cookies from Chrome, Firefox, Safari, Edge, Brave, Opera, Vivaldi or Chromium through yt-dlp. Cookies stay off until you choose a browser. On macOS, expect a Keychain prompt the first time.

When downloads break

Sites change how they serve video, and yt-dlp ships updates to keep up. gingertea checks for a newer yt-dlp at startup. Press u or run gingertea update to install it, then try the link again. The Sites screen can check whether yt-dlp has a dedicated extractor for a link. Browser cookies may help with login errors.

Updates

With a uv tool or pipx install, gingertea checks PyPI for a newer release while it is open. If one is available, the update runs in the background after you quit, and the next launch uses the new version. Set GINGERTEA_NO_AUTO_UPDATE=1 to turn this off.

ffmpeg, Deno and image formats

Converting needs ffmpeg, and some YouTube downloads need Deno to run JavaScript. The installer downloads gingertea's own ffmpeg build; gingertea setup installs it now, or the app can get it the first time it is needed. If ffmpeg is already on your PATH, gingertea uses it too. Deno and the Pillow plugins for HEIC and JPEG XL install with the Python package. If a format still needs a codec your machine doesn't have, the Convert dialog shows it as unavailable and names the missing codec.

Uninstall

uv tool uninstall gingertea       # or: pipx uninstall gingertea

The cached ffmpeg binary stays outside the Python environment so updates don't download it again. To remove it too, delete the ffmpeg folder next to the settings file: ~/Library/Application Support/gingertea/ffmpeg on macOS, ~/.local/share/gingertea/ffmpeg on Linux, or %LOCALAPPDATA%\gingertea\ffmpeg on Windows.

Development

git clone https://github.com/orbitcord/gingertea && cd gingertea
uv sync --locked
uv run gingertea
uv run pytest -q                   # offline tests
GINGERTEA_LIVE=1 uv run pytest -q   # also download real videos
uv run ruff check src tests
uv run ruff format --check src tests
uv build --no-sources

To release, update the version in pyproject.toml, run uv lock, then push the matching vX.Y.Z tag. GitHub Actions runs the checks, builds the package, publishes to PyPI, and creates a GitHub release. PyPI Trusted Publishing must be configured for owner orbitcord, repository gingertea, workflow release.yml, and environment pypi.

Please be considerate

Only download videos you have the right to download, and follow each site's terms.

License

MIT. Source copyright notices remain in LICENSE.

Metadata

Release files for gingertea 0.1.3

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

Source distribution (sdist)

Source distribution for gingertea 0.1.3
File Size Uploaded Provenance
gingertea-0.1.3.tar.gz 57.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for gingertea 0.1.3
File Interpreter ABI Platform
gingertea-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 125.1 kB

Release files / gingertea-0.1.3.tar.gz

Download URL gingertea-0.1.3.tar.gz
Size 57.3 kB
Tags Source
SHA-256 checksum
How to use checksums
59b3e8b445d99a8cacf3f378244f7c71ae4e92d65ea807a2d61640bdd0791413
BLAKE2b-256 checksum
How to use checksums
7a904373c258506b1332e6515f6d3996a186ea61e0479b242fab4dec81bf087d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

Release files / gingertea-0.1.3-py3-none-any.whl

Download URL gingertea-0.1.3-py3-none-any.whl
Size 67.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c2d06c44df57a31eaaf85d4005bf7da3a1051193e0a108b2479724f0e972dbd2
BLAKE2b-256 checksum
How to use checksums
7e535af85727e8a0f6c60393585241825851dd7f2db7bfab20e4a57da452a7a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 21, 2026.

Transparency log

Security for gingertea 0.1.3

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for gingertea-0.1.3.tar.gz

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 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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