@maxedgar/yeet 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +96 -0
  3. package/dist/cli.js +1352 -0
  4. package/package.json +59 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Maxmilliano Edgar
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,96 @@
1
+ # Yeet
2
+
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.svg">
5
+ <img src="assets/logo-light.svg" alt="yeet" width="288">
6
+ </picture>
7
+
8
+ Yeet any video. paste. yeet. done.
9
+
10
+ Download videos from YouTube, X/Twitter, Instagram, Threads, TikTok and
11
+ 1,800+ other sites — right from your terminal. Paste a url, pick a
12
+ resolution (or audio-only mp3), done. No popups, no fake download buttons,
13
+ no sketchy redirects.
14
+
15
+ <img src="assets/home.png" alt="yeet home screen — paste a link and hit yeet" width="100%">
16
+
17
+ ## Install
18
+
19
+ ```sh
20
+ npm install -g yeet
21
+ ```
22
+
23
+ Or try it without installing anything:
24
+
25
+ ```sh
26
+ npx yeet
27
+ ```
28
+
29
+ Requires Node 18+. Everything else (yt-dlp, ffmpeg) is fetched or bundled
30
+ automatically.
31
+
32
+ ## Usage
33
+
34
+ ```sh
35
+ $ yeet https://youtu.be/dQw4w9WgXcQ # straight to the format picker
36
+ $ yeet # prompts for a url
37
+ $ yeet --theme light # force the light palette
38
+ ```
39
+
40
+ Yeet takes over the terminal (full-screen, centered — and restores your
41
+ scrollback on exit). Pick a format with ↑/↓ (or j/k, or number keys) and
42
+ hit enter. `esc` goes back, `^c` quits. Or just use the mouse — the yeet
43
+ button, the format list and the footer hints are all clickable, and
44
+ clicking the logo takes you back home. Files are saved to `~/Downloads`,
45
+ and the file path is printed to your terminal when you're done.
46
+
47
+ The default `auto` theme uses your terminal's own foreground and background,
48
+ so it follows light and dark terminal themes without guessing. Press `^t` or
49
+ click the theme control in the footer to cycle through `auto`, `light`, and
50
+ `dark` for the current session. Use `--theme auto`, `--theme light`, or
51
+ `--theme dark` to choose the starting theme for one launch.
52
+
53
+ <img src="assets/download-options.png" alt="yeet format picker — resolutions with estimated file sizes, plus audio-only mp3" width="100%">
54
+
55
+ ## How it works
56
+
57
+ - Powered by [yt-dlp](https://github.com/yt-dlp/yt-dlp). On first run,
58
+ yeet downloads the standalone yt-dlp binary to `~/.yeet/bin` —
59
+ no Python required. If you already have yt-dlp installed, it uses yours.
60
+ - ffmpeg (needed for merging high-res streams and mp3 extraction) is found
61
+ on your PATH, with `ffmpeg-static` as a bundled fallback.
62
+ - The UI is [Ink](https://github.com/vadimdemedes/ink) — React for the
63
+ terminal.
64
+
65
+ ## Development
66
+
67
+ ```sh
68
+ npm install
69
+ npm run build # bundle to dist/ with tsup
70
+ npm run dev # rebuild on change
71
+ node dist/cli.js <url>
72
+ npm run typecheck
73
+ ```
74
+
75
+ To try it as a global command without publishing: `npm link`, then run
76
+ `yeet` anywhere.
77
+
78
+ ## Roadmap
79
+
80
+ - [ ] `--best` / `--mp3` flags to skip the picker (scriptable mode)
81
+ - [ ] `-o <dir>` to choose the output folder
82
+ - [ ] Playlist / thread-with-multiple-videos support
83
+ - [ ] Clipboard detection: launch bare and auto-suggest the url you copied
84
+ - [ ] Self-update for the bundled yt-dlp binary (`yt-dlp -U`)
85
+ - [x] Publish to npm (`npm i -g yeet` / `npx yeet`)
86
+ - [ ] `curl yeet.sh | sh` installer
87
+
88
+ ## A note on fair use
89
+
90
+ Yeet is a personal-archiving tool. Downloading content may violate a
91
+ platform's terms of service — only download what you have the right to
92
+ keep, and be excellent to creators.
93
+
94
+ ## License
95
+
96
+ [MIT](LICENSE)