Skip to main content

gingertea

Download videos and audio in your terminal. Convert local media files in batches.

Paste a link, press d to save an MP4, or press c to choose a format and quality. gingertea uses yt-dlp, ffmpeg, and Textual.

gingertea in the Tea House theme

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. The app can fetch it later.

If you already use uv or pipx:

uv tool install gingertea
# Or, with Python 3.10 or newer:
pipx install gingertea

To install the current GitHub version:

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

Use

gingertea                  # Open the app
gingertea <url>            # Load a video link
gingertea <file>           # Add a local file to Convert files
gingertea setup            # Download ffmpeg and check available formats
gingertea update           # Update yt-dlp
gingertea --version

Download and Convert files have separate queues. Each queue runs one job at a time. You can add another link while a download runs.

Keyboard controls

Press Tab to leave the input field before using letter or number shortcuts. The footer also has clickable shortcuts.

Key Action
1 Open Download
2 Open Convert files
3 or s Open Settings
4 or l Search supported sites
ctrl+t Switch between Download and Convert files
d Download the loaded video as MP4
c Choose a format and quality
f Browse local files
r Remove the selected local file
x Cancel the current job
o Reveal the last saved file
u Update yt-dlp
t Choose a theme
esc Focus the current input field
q Quit

Download and Convert files use full-width tabs. The text wordmark and thumbnail collapse in compact terminals to keep the input, actions, and queue visible. The shortcut bar stays centered at the bottom.

Download formats

Media Formats
Video MP4, MKV, WebM, MOV, GIF
Audio MP3, M4A, Opus, FLAC, WAV, OGG

The quality picker lists the resolutions available for the loaded video. The default MP4 choice selects H.264 for compatibility. YouTube usually limits H.264 to 1080p. Higher MP4 resolutions may contain VP9 or AV1 and need a compatible player.

Downloads go to your Downloads folder. Change the folder in Settings. Existing files keep their names. A new download gets a numbered suffix if needed.

Convert local files

Open Convert files. Drop files into the terminal, paste their paths, or press f to browse. Press c to select an output format. You can mix video, audio, and images in one batch. The dialog shows which files the selection applies to.

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

The Frames tab exports video frames to a folder of images. Converted files go next to each original. gingertea leaves the original file unchanged. When the streams fit the output format, it copies them without re-encoding. The dialog explains whether the selected conversion will copy or re-encode.

Some formats need codecs that your ffmpeg build may lack. Unavailable formats stay visible with a note about the missing codec. Pillow plugins handle HEIC and JPEG XL.

Themes

Masala Chai is the default dark theme, with warm spice-gold accents. Press v to switch between the Ginger, Dusk and Tide looks. Press t or click themes in the footer to choose Tea House, Matcha, Earl Grey, Masala Chai, Hibiscus, gingertea light, or a built-in Textual theme. gingertea saves your choice.

The text wordmark uses terminal block characters and follows the selected theme. No image protocol is needed.

Videos that require a login

For age-restricted or members-only videos, choose a browser in Settings where you are signed in to the site. gingertea reads its cookies through yt-dlp. Cookies remain off until you choose a browser. macOS may show a Keychain prompt.

If a site blocks a download, update yt-dlp with u and try again. Browser cookies may help with authentication errors. The Sites screen can check whether yt-dlp has a dedicated extractor for a link.

Settings and updates

Settings live in these locations:

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

gingertea checks for newer yt-dlp and gingertea releases at startup. With a uv tool or pipx install, it can update itself after you quit. Set GINGERTEA_NO_AUTO_UPDATE=1 to disable that behavior.

Development

git clone https://github.com/orbitcord/gingertea
cd gingertea
uv sync --locked
uv run gingertea
uv run pytest -q
uv run ruff check src tests
uv run ruff format --check src tests
uv build --no-sources

The default tests replace network downloads with fakes. Set GINGERTEA_LIVE=1 to include tests that download real videos.

For a release, update the version in pyproject.toml, run uv lock, and push a matching vX.Y.Z tag. Configure PyPI Trusted Publishing for owner orbitcord, repository gingertea, workflow release.yml, and environment pypi first. The release workflow runs checks, builds the package, publishes it, and creates a GitHub release.

Uninstall

uv tool uninstall gingertea
# Or:
pipx uninstall gingertea

The cached ffmpeg binary stays outside the Python environment. To remove it, delete the gingertea data directory. On macOS it is ~/Library/Application Support/gingertea/ffmpeg. On Linux it is ~/.local/share/gingertea/ffmpeg. On Windows it is %LOCALAPPDATA%\gingertea\ffmpeg.

License

MIT. The source copyright notices remain in LICENSE.

Metadata

Release files for gingertea 0.1.2

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.2
File Size Uploaded Provenance
gingertea-0.1.2.tar.gz 55.8 kB With provenance Details

Built distribution (wheel)

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

Total release size: 122.3 kB

Release files / gingertea-0.1.2.tar.gz

Download URL gingertea-0.1.2.tar.gz
Size 55.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f24c0db908d743cb0ab7d14fd24cd14cccce3f76932bee6b1b0702e3df38a8e1
BLAKE2b-256 checksum
How to use checksums
6c1f4f2f24df31bf092ad2b3d49fd08fac68f41b2457c7891790f3364dbb2c78
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.2-py3-none-any.whl

Download URL gingertea-0.1.2-py3-none-any.whl
Size 66.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8578e6bfd3c5cab5d11525ca8a25ff589ab79089260e135044c85722a030e233
BLAKE2b-256 checksum
How to use checksums
510b92b0bb1b4d1b31fd6cdacf74da5ee9061fbff106a5e17dc5f44430cf4bf1
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.2

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.2.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