npm.io
0.4.0 • Published yesterdayCLI

@quietengines/siphon

Licence
MIT
Version
0.4.0
Deps
4
Size
55 kB
Vulns
0
Weekly
0

siphon

npm

siphon

Pull any video down to disk, from the terminal.

Downloads from YouTube, X, Instagram, Threads, TikTok and 1,800+ other sites. Paste a url, pick a resolution or audio-only mp3, done. No popups, no redirects, no fake download buttons.

siphon home screen

Install

npm install -g @quietengines/siphon

Without installing:

npx @quietengines/siphon

The package lives under the Quiet Engines scope; the installed command is plain siphon.

Requires Node 18+. yt-dlp and ffmpeg are fetched or bundled automatically.

Usage

$ siphon https://youtu.be/dQw4w9WgXcQ    # straight to the format picker
$ siphon                                 # prompts for a url

Siphon takes over the terminal full-screen and restores your scrollback on exit.

Pick a format with the arrow keys and hit enter. esc goes back, ^c quits. The mouse works too: the siphon button, the format list and the footer hints are clickable, and clicking the wordmark returns home.

Files are saved to ~/Downloads. The path is printed to the terminal when the download completes.

siphon format picker

How it works

  • yt-dlp does the extraction. On first run siphon downloads the standalone binary to ~/.siphon/bin. No Python required. An existing yt-dlp on your PATH is used instead.
  • ffmpeg merges high-resolution streams and extracts mp3. Found on your PATH, with ffmpeg-static as a bundled fallback.
  • The interface is Ink, React for the terminal.
  • Url history is kept at ~/.config/siphon/history.json and recalled with the up arrow.

Theme

One theme, hardcoded — the Quiet Engines canon: void-black ground, bone text, stone for secondary chrome, hairline rules for structure, and a single copper signal that marks live state — the cursor, the current selection, the primary action. Amber is reserved for non-fatal warnings and a desaturated red for errors; neither ever fills a block. There is no theme flag and no runtime switching.

Development

npm install
npm run build        # bundle to dist/ with tsup
npm run dev          # rebuild on change
npm run typecheck
npm test
node dist/cli.js <url>

npm link installs it as a global siphon command without publishing.

Fair use

Siphon is a personal-archiving tool. Downloading content may violate a platform's terms of service. Download what you have the right to keep.

License

MIT.

Keywords