@fredlackey/devutils 0.0.1 → 0.0.3

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 (259) hide show
  1. package/README.md +5 -5
  2. package/package.json +1 -1
  3. package/src/commands/install.js +374 -36
  4. package/src/installs/adobe-creative-cloud.js +527 -25
  5. package/src/installs/adobe-creative-cloud.md +605 -0
  6. package/src/installs/appcleaner.js +303 -26
  7. package/src/installs/appcleaner.md +699 -0
  8. package/src/installs/apt-transport-https.js +390 -0
  9. package/src/installs/apt-transport-https.md +678 -0
  10. package/src/installs/atomicparsley.js +624 -26
  11. package/src/installs/atomicparsley.md +795 -0
  12. package/src/installs/aws-cli.js +779 -26
  13. package/src/installs/aws-cli.md +727 -0
  14. package/src/installs/balena-etcher.js +688 -26
  15. package/src/installs/balena-etcher.md +761 -0
  16. package/src/installs/bambu-studio.js +912 -26
  17. package/src/installs/bambu-studio.md +780 -0
  18. package/src/installs/bash-completion.js +554 -23
  19. package/src/installs/bash-completion.md +833 -0
  20. package/src/installs/bash.js +399 -26
  21. package/src/installs/bash.md +993 -0
  22. package/src/installs/beyond-compare.js +585 -26
  23. package/src/installs/beyond-compare.md +813 -0
  24. package/src/installs/build-essential.js +511 -26
  25. package/src/installs/build-essential.md +977 -0
  26. package/src/installs/ca-certificates.js +618 -0
  27. package/src/installs/ca-certificates.md +937 -0
  28. package/src/installs/caffeine.js +490 -26
  29. package/src/installs/caffeine.md +839 -0
  30. package/src/installs/camtasia.js +577 -25
  31. package/src/installs/camtasia.md +762 -0
  32. package/src/installs/chatgpt.js +458 -26
  33. package/src/installs/chatgpt.md +814 -0
  34. package/src/installs/chocolatey.js +447 -0
  35. package/src/installs/chocolatey.md +661 -0
  36. package/src/installs/chrome-canary.js +472 -26
  37. package/src/installs/chrome-canary.md +641 -0
  38. package/src/installs/chromium.js +645 -26
  39. package/src/installs/chromium.md +838 -0
  40. package/src/installs/claude-code.js +558 -26
  41. package/src/installs/claude-code.md +1173 -0
  42. package/src/installs/curl.js +361 -26
  43. package/src/installs/curl.md +714 -0
  44. package/src/installs/cursor.js +561 -26
  45. package/src/installs/cursor.md +970 -0
  46. package/src/installs/dbschema.js +674 -26
  47. package/src/installs/dbschema.md +925 -0
  48. package/src/installs/dependencies.md +435 -0
  49. package/src/installs/development-tools.js +600 -0
  50. package/src/installs/development-tools.md +977 -0
  51. package/src/installs/docker.js +1010 -25
  52. package/src/installs/docker.md +1109 -0
  53. package/src/installs/drawio.js +1001 -26
  54. package/src/installs/drawio.md +795 -0
  55. package/src/installs/elmedia-player.js +328 -25
  56. package/src/installs/elmedia-player.md +556 -0
  57. package/src/installs/ffmpeg.js +870 -25
  58. package/src/installs/ffmpeg.md +852 -0
  59. package/src/installs/file.js +464 -0
  60. package/src/installs/file.md +987 -0
  61. package/src/installs/gemini-cli.js +793 -26
  62. package/src/installs/gemini-cli.md +1153 -0
  63. package/src/installs/git.js +382 -26
  64. package/src/installs/git.md +907 -0
  65. package/src/installs/gitego.js +931 -26
  66. package/src/installs/gitego.md +1172 -0
  67. package/src/installs/go.js +913 -26
  68. package/src/installs/go.md +958 -0
  69. package/src/installs/google-chrome.js +801 -25
  70. package/src/installs/google-chrome.md +862 -0
  71. package/src/installs/gpg.js +412 -73
  72. package/src/installs/gpg.md +1056 -0
  73. package/src/installs/homebrew.js +1015 -26
  74. package/src/installs/homebrew.md +988 -0
  75. package/src/installs/imageoptim.js +950 -26
  76. package/src/installs/imageoptim.md +1119 -0
  77. package/src/installs/installers.json +2297 -0
  78. package/src/installs/jq.js +382 -26
  79. package/src/installs/jq.md +809 -0
  80. package/src/installs/keyboard-maestro.js +701 -26
  81. package/src/installs/keyboard-maestro.md +825 -0
  82. package/src/installs/latex.js +771 -26
  83. package/src/installs/latex.md +1095 -0
  84. package/src/installs/lftp.js +338 -26
  85. package/src/installs/lftp.md +907 -0
  86. package/src/installs/lsb-release.js +346 -0
  87. package/src/installs/lsb-release.md +814 -0
  88. package/src/installs/messenger.js +829 -26
  89. package/src/installs/messenger.md +900 -0
  90. package/src/installs/microsoft-office.js +550 -26
  91. package/src/installs/microsoft-office.md +760 -0
  92. package/src/installs/microsoft-teams.js +782 -25
  93. package/src/installs/microsoft-teams.md +886 -0
  94. package/src/installs/node.js +886 -26
  95. package/src/installs/node.md +1153 -0
  96. package/src/installs/nordpass.js +698 -26
  97. package/src/installs/nordpass.md +921 -0
  98. package/src/installs/nvm.js +977 -26
  99. package/src/installs/nvm.md +1057 -0
  100. package/src/installs/openssh.js +734 -64
  101. package/src/installs/openssh.md +1056 -0
  102. package/src/installs/pandoc.js +644 -26
  103. package/src/installs/pandoc.md +1036 -0
  104. package/src/installs/pinentry.js +492 -26
  105. package/src/installs/pinentry.md +1142 -0
  106. package/src/installs/pngyu.js +851 -26
  107. package/src/installs/pngyu.md +896 -0
  108. package/src/installs/postman.js +781 -26
  109. package/src/installs/postman.md +940 -0
  110. package/src/installs/procps.js +425 -0
  111. package/src/installs/procps.md +851 -0
  112. package/src/installs/safari-tech-preview.js +355 -25
  113. package/src/installs/safari-tech-preview.md +533 -0
  114. package/src/installs/sfnt2woff.js +640 -26
  115. package/src/installs/sfnt2woff.md +795 -0
  116. package/src/installs/shellcheck.js +463 -26
  117. package/src/installs/shellcheck.md +1005 -0
  118. package/src/installs/slack.js +722 -25
  119. package/src/installs/slack.md +865 -0
  120. package/src/installs/snagit.js +566 -25
  121. package/src/installs/snagit.md +844 -0
  122. package/src/installs/software-properties-common.js +372 -0
  123. package/src/installs/software-properties-common.md +805 -0
  124. package/src/installs/spotify.js +858 -25
  125. package/src/installs/spotify.md +901 -0
  126. package/src/installs/studio-3t.js +803 -26
  127. package/src/installs/studio-3t.md +918 -0
  128. package/src/installs/sublime-text.js +780 -25
  129. package/src/installs/sublime-text.md +914 -0
  130. package/src/installs/superwhisper.js +687 -25
  131. package/src/installs/superwhisper.md +630 -0
  132. package/src/installs/tailscale.js +727 -26
  133. package/src/installs/tailscale.md +1100 -0
  134. package/src/installs/tar.js +389 -0
  135. package/src/installs/tar.md +946 -0
  136. package/src/installs/termius.js +780 -26
  137. package/src/installs/termius.md +844 -0
  138. package/src/installs/terraform.js +761 -26
  139. package/src/installs/terraform.md +899 -0
  140. package/src/installs/tidal.js +752 -25
  141. package/src/installs/tidal.md +864 -0
  142. package/src/installs/tmux.js +328 -26
  143. package/src/installs/tmux.md +1030 -0
  144. package/src/installs/tree.js +393 -26
  145. package/src/installs/tree.md +833 -0
  146. package/src/installs/unzip.js +460 -0
  147. package/src/installs/unzip.md +879 -0
  148. package/src/installs/vim.js +403 -26
  149. package/src/installs/vim.md +1040 -0
  150. package/src/installs/vlc.js +803 -26
  151. package/src/installs/vlc.md +927 -0
  152. package/src/installs/vscode.js +825 -26
  153. package/src/installs/vscode.md +1002 -0
  154. package/src/installs/wget.js +415 -0
  155. package/src/installs/wget.md +791 -0
  156. package/src/installs/whatsapp.js +710 -25
  157. package/src/installs/whatsapp.md +854 -0
  158. package/src/installs/winpty.js +352 -0
  159. package/src/installs/winpty.md +620 -0
  160. package/src/installs/woff2.js +535 -26
  161. package/src/installs/woff2.md +977 -0
  162. package/src/installs/wsl.js +572 -0
  163. package/src/installs/wsl.md +699 -0
  164. package/src/installs/xcode-clt.js +520 -0
  165. package/src/installs/xcode-clt.md +351 -0
  166. package/src/installs/xcode.js +542 -26
  167. package/src/installs/xcode.md +573 -0
  168. package/src/installs/yarn.js +806 -26
  169. package/src/installs/yarn.md +1074 -0
  170. package/src/installs/yq.js +636 -26
  171. package/src/installs/yq.md +944 -0
  172. package/src/installs/yt-dlp.js +683 -26
  173. package/src/installs/yt-dlp.md +946 -0
  174. package/src/installs/yum-utils.js +297 -0
  175. package/src/installs/yum-utils.md +648 -0
  176. package/src/installs/zoom.js +740 -25
  177. package/src/installs/zoom.md +884 -0
  178. package/src/scripts/README.md +567 -45
  179. package/src/scripts/STATUS.md +208 -0
  180. package/src/scripts/afk.js +395 -7
  181. package/src/scripts/backup-all.js +731 -9
  182. package/src/scripts/backup-source.js +711 -8
  183. package/src/scripts/brewd.js +373 -7
  184. package/src/scripts/brewi.js +505 -9
  185. package/src/scripts/brewr.js +512 -9
  186. package/src/scripts/brews.js +462 -9
  187. package/src/scripts/brewu.js +488 -7
  188. package/src/scripts/c.js +185 -7
  189. package/src/scripts/ccurl.js +325 -8
  190. package/src/scripts/certbot-crontab-init.js +488 -8
  191. package/src/scripts/certbot-init.js +641 -9
  192. package/src/scripts/ch.js +339 -7
  193. package/src/scripts/claude-danger.js +253 -8
  194. package/src/scripts/clean-dev.js +419 -8
  195. package/src/scripts/clear-dns-cache.js +525 -7
  196. package/src/scripts/clone.js +417 -7
  197. package/src/scripts/code-all.js +420 -7
  198. package/src/scripts/count-files.js +195 -8
  199. package/src/scripts/count-folders.js +195 -8
  200. package/src/scripts/count.js +248 -8
  201. package/src/scripts/d.js +203 -7
  202. package/src/scripts/datauri.js +373 -8
  203. package/src/scripts/delete-files.js +363 -7
  204. package/src/scripts/docker-clean.js +410 -8
  205. package/src/scripts/dp.js +426 -7
  206. package/src/scripts/e.js +375 -9
  207. package/src/scripts/empty-trash.js +497 -7
  208. package/src/scripts/evm.js +428 -9
  209. package/src/scripts/fetch-github-repos.js +441 -10
  210. package/src/scripts/get-channel.js +329 -8
  211. package/src/scripts/get-course.js +384 -11
  212. package/src/scripts/get-dependencies.js +290 -9
  213. package/src/scripts/get-folder.js +783 -10
  214. package/src/scripts/get-tunes.js +411 -10
  215. package/src/scripts/get-video.js +352 -9
  216. package/src/scripts/git-backup.js +561 -9
  217. package/src/scripts/git-clone.js +477 -9
  218. package/src/scripts/git-pup.js +303 -7
  219. package/src/scripts/git-push.js +380 -8
  220. package/src/scripts/h.js +607 -9
  221. package/src/scripts/hide-desktop-icons.js +483 -7
  222. package/src/scripts/hide-hidden-files.js +522 -7
  223. package/src/scripts/install-dependencies-from.js +440 -9
  224. package/src/scripts/ips.js +647 -10
  225. package/src/scripts/iso.js +354 -8
  226. package/src/scripts/killni.js +561 -7
  227. package/src/scripts/ll.js +451 -8
  228. package/src/scripts/local-ip.js +310 -8
  229. package/src/scripts/m.js +508 -8
  230. package/src/scripts/map.js +293 -8
  231. package/src/scripts/mkd.js +287 -7
  232. package/src/scripts/ncu-update-all.js +441 -8
  233. package/src/scripts/nginx-init.js +702 -12
  234. package/src/scripts/npmi.js +366 -7
  235. package/src/scripts/o.js +495 -8
  236. package/src/scripts/org-by-date.js +321 -7
  237. package/src/scripts/p.js +208 -7
  238. package/src/scripts/packages.js +313 -8
  239. package/src/scripts/path.js +209 -7
  240. package/src/scripts/ports.js +582 -8
  241. package/src/scripts/q.js +290 -8
  242. package/src/scripts/refresh-files.js +378 -10
  243. package/src/scripts/remove-smaller-files.js +500 -8
  244. package/src/scripts/rename-files-with-date.js +517 -9
  245. package/src/scripts/resize-image.js +523 -9
  246. package/src/scripts/rm-safe.js +653 -8
  247. package/src/scripts/s.js +525 -9
  248. package/src/scripts/set-git-public.js +349 -7
  249. package/src/scripts/show-desktop-icons.js +459 -7
  250. package/src/scripts/show-hidden-files.js +456 -7
  251. package/src/scripts/tpa.js +265 -8
  252. package/src/scripts/tpo.js +264 -7
  253. package/src/scripts/u.js +489 -7
  254. package/src/scripts/vpush.js +422 -8
  255. package/src/scripts/y.js +267 -7
  256. package/src/utils/common/os.js +94 -2
  257. package/src/utils/ubuntu/apt.js +13 -7
  258. package/src/utils/windows/choco.js +82 -26
  259. package/src/utils/windows/winget.js +89 -27
@@ -0,0 +1,946 @@
1
+ # Installing yt-dlp
2
+
3
+ ## Overview
4
+
5
+ yt-dlp is a feature-rich command-line audio and video downloader. It is a fork of the now-discontinued youtube-dl project, with additional features, bug fixes, and active maintenance. yt-dlp supports downloading from YouTube, Vimeo, Twitter, TikTok, and thousands of other websites.
6
+
7
+ Key capabilities include:
8
+
9
+ - **Video downloading**: Download videos in various qualities and formats
10
+ - **Audio extraction**: Extract audio tracks from videos (requires FFmpeg)
11
+ - **Playlist support**: Download entire playlists or channels
12
+ - **Metadata embedding**: Embed thumbnails, subtitles, and metadata into files
13
+ - **Format selection**: Choose specific video/audio quality and codecs
14
+ - **Live stream recording**: Capture live streams as they broadcast
15
+
16
+ **Important**: For full functionality (format conversion, audio extraction, thumbnail embedding), install FFmpeg alongside yt-dlp. See the FFmpeg installation guide for details.
17
+
18
+ ## Dependencies
19
+
20
+ ### macOS (Homebrew)
21
+ - **Required:**
22
+ - Homebrew package manager - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` or `dev install homebrew`
23
+ - Xcode Command Line Tools - Auto-installed by Homebrew if missing, or manually via `xcode-select --install`
24
+ - **Optional:**
25
+ - `ffmpeg` - Install via `brew install ffmpeg` or `dev install ffmpeg` (required for format conversion, audio extraction, and thumbnail embedding)
26
+ - **Auto-installed:**
27
+ - Python - Homebrew automatically installs Python as a dependency of yt-dlp
28
+
29
+ ### Ubuntu (APT/Snap)
30
+ - **Required:**
31
+ - APT package manager (pre-installed on Ubuntu)
32
+ - sudo privileges
33
+ - **Optional:**
34
+ - `ffmpeg` - Install via `sudo apt-get install -y ffmpeg` or `dev install ffmpeg` (required for format conversion and audio extraction)
35
+ - `python3-pip` - Install via `sudo apt-get install -y python3-pip` (only needed for latest version via pip installation method)
36
+ - **Auto-installed:**
37
+ - Python and all required Python dependencies are automatically installed by APT
38
+
39
+ ### Raspberry Pi OS (APT/Snap)
40
+ - **Required:**
41
+ - APT package manager (pre-installed on Raspberry Pi OS)
42
+ - sudo privileges
43
+ - **Optional:**
44
+ - `ffmpeg` - Install via `sudo apt-get install -y ffmpeg` or `dev install ffmpeg` (required for format conversion and audio extraction)
45
+ - `python3-pip` - Install via `sudo apt-get install -y python3-pip` (only needed if yt-dlp package is unavailable in older OS versions)
46
+ - **Auto-installed:**
47
+ - Python and all required Python dependencies are automatically installed by APT
48
+
49
+ ### Amazon Linux (DNF/YUM)
50
+ - **Required:**
51
+ - `python3-pip` - Install via `sudo dnf install -y python3-pip` (AL2023) or `sudo yum install -y python3-pip` (AL2)
52
+ - Python 3.9 or later (usually pre-installed on Amazon Linux 2023)
53
+ - **Optional:**
54
+ - FFmpeg - Not available in Amazon Linux repositories; requires manual installation via static binary from https://github.com/BtbN/FFmpeg-Builds/releases
55
+ - **Auto-installed:**
56
+ - Python dependencies automatically installed via pip when using `pip install "yt-dlp[default]"`
57
+
58
+ ### Windows (Chocolatey)
59
+ - **Required:**
60
+ - Chocolatey package manager - Install via PowerShell script at https://chocolatey.org/install or `dev install chocolatey`
61
+ - Administrator privileges (PowerShell or Command Prompt must be run as Administrator)
62
+ - **Optional:**
63
+ - `ffmpeg` - Install via `choco install ffmpeg -y` or `dev install ffmpeg` (required for format conversion and audio extraction)
64
+ - **Auto-installed:**
65
+ - Python (if needed) - Chocolatey automatically handles Python dependencies
66
+
67
+ ### Git Bash (Manual/Portable)
68
+ - **Required:**
69
+ - `curl` - Install via Git for Windows (usually included) or download from https://curl.se/windows/
70
+ - Git Bash environment (comes with Git for Windows) - Download from https://git-scm.com/download/win
71
+ - **Optional:**
72
+ - FFmpeg - Manual installation required via download from https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip
73
+ - **Auto-installed:**
74
+ - None (this is a fully manual portable installation method)
75
+
76
+ ## Prerequisites
77
+
78
+ Before installing yt-dlp on any platform, ensure:
79
+
80
+ 1. **Internet connectivity** - Required to download packages
81
+ 2. **Administrative privileges** - Required for system-wide installation
82
+ 3. **FFmpeg (recommended)** - Required for format conversion and audio extraction
83
+ 4. **Python 3.9+ (optional)** - Required only for pip installation method
84
+
85
+ ## Platform-Specific Installation
86
+
87
+ ### macOS (Homebrew)
88
+
89
+ #### Prerequisites
90
+
91
+ - macOS 10.15 (Catalina) or later
92
+ - Homebrew package manager installed
93
+ - Xcode Command Line Tools installed
94
+
95
+ If Homebrew is not installed, install it first:
96
+
97
+ ```bash
98
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
99
+ ```
100
+
101
+ #### Installation Steps
102
+
103
+ Run the following command to install yt-dlp:
104
+
105
+ ```bash
106
+ brew install --quiet yt-dlp
107
+ ```
108
+
109
+ The `--quiet` flag suppresses non-essential output for cleaner automation. Homebrew automatically installs Python and other dependencies.
110
+
111
+ To install FFmpeg for full format conversion support:
112
+
113
+ ```bash
114
+ brew install --quiet ffmpeg
115
+ ```
116
+
117
+ #### Verification
118
+
119
+ Confirm the installation succeeded:
120
+
121
+ ```bash
122
+ yt-dlp --version
123
+ ```
124
+
125
+ Expected output (version numbers may vary):
126
+
127
+ ```
128
+ 2025.12.08
129
+ ```
130
+
131
+ Test basic functionality by checking supported extractors:
132
+
133
+ ```bash
134
+ yt-dlp --list-extractors | head -20
135
+ ```
136
+
137
+ #### Troubleshooting
138
+
139
+ **Problem**: `yt-dlp: command not found` after installation
140
+
141
+ **Solution**: Homebrew may not be in your PATH. Add it to your shell profile:
142
+
143
+ For Apple Silicon Macs (M1/M2/M3/M4):
144
+
145
+ ```bash
146
+ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
147
+ source ~/.zshrc
148
+ ```
149
+
150
+ For Intel Macs:
151
+
152
+ ```bash
153
+ echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zshrc
154
+ source ~/.zshrc
155
+ ```
156
+
157
+ **Problem**: Downloads fail with "unable to extract" errors
158
+
159
+ **Solution**: Update yt-dlp to the latest version. Website changes frequently break extractors:
160
+
161
+ ```bash
162
+ brew upgrade yt-dlp
163
+ ```
164
+
165
+ **Problem**: Cannot convert formats or extract audio
166
+
167
+ **Solution**: Install FFmpeg:
168
+
169
+ ```bash
170
+ brew install --quiet ffmpeg
171
+ ```
172
+
173
+ ---
174
+
175
+ ### Ubuntu/Debian (APT)
176
+
177
+ #### Prerequisites
178
+
179
+ - Ubuntu 22.04 LTS or later, or Debian 11 (Bullseye) or later
180
+ - sudo privileges
181
+ - At least 100 MB free disk space
182
+
183
+ **Note**: The yt-dlp package is available in official Ubuntu repositories starting with Ubuntu 22.04. However, repository versions may be outdated. This guide uses the official Ubuntu repositories for simplicity and system integration.
184
+
185
+ #### Installation Steps
186
+
187
+ Run the following commands to update the package index and install yt-dlp:
188
+
189
+ ```bash
190
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
191
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y yt-dlp
192
+ ```
193
+
194
+ The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully unattended installation without prompts.
195
+
196
+ To install FFmpeg for full format conversion support:
197
+
198
+ ```bash
199
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ffmpeg
200
+ ```
201
+
202
+ **Note on Version Currency**: Ubuntu repository versions may lag behind the latest release. Ubuntu 24.04 LTS includes yt-dlp 2024.04.09, while the latest release may be newer. For most use cases, the repository version is sufficient. If you need the latest version, use the pip installation method or download the binary directly (see Git Bash section for binary installation steps).
203
+
204
+ #### Verification
205
+
206
+ Confirm the installation succeeded:
207
+
208
+ ```bash
209
+ yt-dlp --version
210
+ ```
211
+
212
+ Expected output (version numbers vary by distribution):
213
+
214
+ ```
215
+ 2024.04.09
216
+ ```
217
+
218
+ Test that yt-dlp can access the network:
219
+
220
+ ```bash
221
+ yt-dlp --dump-json "https://www.youtube.com/watch?v=dQw4w9WgXcQ" 2>/dev/null | head -1
222
+ ```
223
+
224
+ #### Troubleshooting
225
+
226
+ **Problem**: `E: Unable to locate package yt-dlp`
227
+
228
+ **Solution**: Update the package index:
229
+
230
+ ```bash
231
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
232
+ ```
233
+
234
+ If still unavailable, your Ubuntu version may be too old. Use pip installation instead:
235
+
236
+ ```bash
237
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip
238
+ python3 -m pip install -U "yt-dlp[default]"
239
+ ```
240
+
241
+ **Problem**: Downloads fail with extraction errors
242
+
243
+ **Solution**: Repository versions may be outdated. Update to the latest version using pip:
244
+
245
+ ```bash
246
+ python3 -m pip install -U "yt-dlp[default]"
247
+ ```
248
+
249
+ **Problem**: Audio extraction or format conversion fails
250
+
251
+ **Solution**: Install FFmpeg:
252
+
253
+ ```bash
254
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ffmpeg
255
+ ```
256
+
257
+ ---
258
+
259
+ ### Raspberry Pi OS (APT)
260
+
261
+ #### Prerequisites
262
+
263
+ - Raspberry Pi OS (Bookworm or Bullseye), 32-bit or 64-bit
264
+ - Raspberry Pi 3 or later recommended (earlier models work but may be slow)
265
+ - sudo privileges
266
+ - At least 100 MB free disk space
267
+
268
+ #### Installation Steps
269
+
270
+ Run the following commands to update the package index and install yt-dlp:
271
+
272
+ ```bash
273
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
274
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y yt-dlp
275
+ ```
276
+
277
+ **Note on ARM Architecture**: Raspberry Pi OS is based on Debian, and yt-dlp in the repositories works on ARM processors without modification. The package is architecture-independent (pure Python).
278
+
279
+ To install FFmpeg for full format conversion support:
280
+
281
+ ```bash
282
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ffmpeg
283
+ ```
284
+
285
+ #### Verification
286
+
287
+ Confirm the installation succeeded:
288
+
289
+ ```bash
290
+ yt-dlp --version
291
+ ```
292
+
293
+ Expected output (version numbers may vary):
294
+
295
+ ```
296
+ 2023.03.04
297
+ ```
298
+
299
+ Test basic functionality:
300
+
301
+ ```bash
302
+ yt-dlp --help | head -5
303
+ ```
304
+
305
+ #### Troubleshooting
306
+
307
+ **Problem**: Downloads are very slow
308
+
309
+ **Solution**: Raspberry Pi has limited CPU and network bandwidth. Use lower quality formats:
310
+
311
+ ```bash
312
+ yt-dlp -f "best[height<=720]" "URL"
313
+ ```
314
+
315
+ **Problem**: Out of memory during download or conversion
316
+
317
+ **Solution**: Add swap space:
318
+
319
+ ```bash
320
+ sudo fallocate -l 2G /swapfile
321
+ sudo chmod 600 /swapfile
322
+ sudo mkswap /swapfile
323
+ sudo swapon /swapfile
324
+ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
325
+ ```
326
+
327
+ **Problem**: Package not available on older Raspberry Pi OS
328
+
329
+ **Solution**: Use pip installation:
330
+
331
+ ```bash
332
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip
333
+ python3 -m pip install -U "yt-dlp[default]"
334
+ ```
335
+
336
+ **Problem**: SSL certificate errors during downloads
337
+
338
+ **Solution**: Update certificates:
339
+
340
+ ```bash
341
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates
342
+ ```
343
+
344
+ ---
345
+
346
+ ### Amazon Linux (DNF/YUM)
347
+
348
+ #### Prerequisites
349
+
350
+ - Amazon Linux 2023 (AL2023) or Amazon Linux 2 (AL2)
351
+ - sudo privileges
352
+ - At least 100 MB free disk space
353
+ - Python 3.9 or later
354
+
355
+ **Important**: yt-dlp is not available in the standard Amazon Linux repositories. This guide uses pip installation, which is the recommended approach for Amazon Linux.
356
+
357
+ #### Installation Steps
358
+
359
+ **Step 1: Install Python and pip**
360
+
361
+ For Amazon Linux 2023:
362
+
363
+ ```bash
364
+ sudo dnf install -y python3-pip
365
+ ```
366
+
367
+ For Amazon Linux 2:
368
+
369
+ ```bash
370
+ sudo yum install -y python3-pip
371
+ ```
372
+
373
+ **Step 2: Install yt-dlp using pip**
374
+
375
+ ```bash
376
+ python3 -m pip install -U "yt-dlp[default]"
377
+ ```
378
+
379
+ The `[default]` extra installs recommended dependencies for optimal functionality.
380
+
381
+ **Step 3: Add pip bin directory to PATH (if needed)**
382
+
383
+ ```bash
384
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
385
+ source ~/.bashrc
386
+ ```
387
+
388
+ **Step 4: Install FFmpeg for format conversion (recommended)**
389
+
390
+ FFmpeg is not in Amazon Linux repositories. Install using static builds:
391
+
392
+ For x86_64 (Intel/AMD) instances:
393
+
394
+ ```bash
395
+ cd /tmp
396
+ curl -L -o ffmpeg.tar.xz https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl.tar.xz
397
+ sudo tar -xf ffmpeg.tar.xz -C /opt/
398
+ sudo ln -sf /opt/ffmpeg-master-latest-linux64-gpl/bin/ffmpeg /usr/local/bin/ffmpeg
399
+ sudo ln -sf /opt/ffmpeg-master-latest-linux64-gpl/bin/ffprobe /usr/local/bin/ffprobe
400
+ rm ffmpeg.tar.xz
401
+ ```
402
+
403
+ For ARM64 (Graviton) instances:
404
+
405
+ ```bash
406
+ cd /tmp
407
+ curl -L -o ffmpeg.tar.xz https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linuxarm64-gpl.tar.xz
408
+ sudo tar -xf ffmpeg.tar.xz -C /opt/
409
+ sudo ln -sf /opt/ffmpeg-master-latest-linuxarm64-gpl/bin/ffmpeg /usr/local/bin/ffmpeg
410
+ sudo ln -sf /opt/ffmpeg-master-latest-linuxarm64-gpl/bin/ffprobe /usr/local/bin/ffprobe
411
+ rm ffmpeg.tar.xz
412
+ ```
413
+
414
+ #### Verification
415
+
416
+ Confirm the installation succeeded:
417
+
418
+ ```bash
419
+ yt-dlp --version
420
+ ```
421
+
422
+ Expected output (version numbers may vary):
423
+
424
+ ```
425
+ 2025.12.08
426
+ ```
427
+
428
+ Test that FFmpeg is accessible:
429
+
430
+ ```bash
431
+ ffmpeg -version | head -1
432
+ ```
433
+
434
+ #### Troubleshooting
435
+
436
+ **Problem**: `yt-dlp: command not found` after pip installation
437
+
438
+ **Solution**: The pip bin directory may not be in PATH. Add it:
439
+
440
+ ```bash
441
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
442
+ source ~/.bashrc
443
+ ```
444
+
445
+ **Problem**: pip installation fails with permission errors
446
+
447
+ **Solution**: Use the `--user` flag (which is the default for modern pip) or ensure you are not running as root without sudo:
448
+
449
+ ```bash
450
+ python3 -m pip install --user -U "yt-dlp[default]"
451
+ ```
452
+
453
+ **Problem**: SSL errors during downloads
454
+
455
+ **Solution**: Update certificates:
456
+
457
+ ```bash
458
+ sudo dnf install -y ca-certificates # AL2023
459
+ sudo yum install -y ca-certificates # AL2
460
+ ```
461
+
462
+ ---
463
+
464
+ ### Windows (Chocolatey)
465
+
466
+ #### Prerequisites
467
+
468
+ - Windows 10 or later (64-bit)
469
+ - Administrator PowerShell or Command Prompt
470
+ - Chocolatey package manager installed
471
+
472
+ If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
473
+
474
+ ```powershell
475
+ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
476
+ ```
477
+
478
+ #### Installation Steps
479
+
480
+ Run the following command in an Administrator PowerShell or Command Prompt:
481
+
482
+ ```powershell
483
+ choco install yt-dlp -y
484
+ ```
485
+
486
+ The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
487
+
488
+ To install FFmpeg for full format conversion support:
489
+
490
+ ```powershell
491
+ choco install ffmpeg -y
492
+ ```
493
+
494
+ #### Verification
495
+
496
+ Open a new PowerShell or Command Prompt window (to refresh PATH), then run:
497
+
498
+ ```powershell
499
+ yt-dlp --version
500
+ ```
501
+
502
+ Expected output (version numbers may vary):
503
+
504
+ ```
505
+ 2025.12.08
506
+ ```
507
+
508
+ Test basic functionality:
509
+
510
+ ```powershell
511
+ yt-dlp --help
512
+ ```
513
+
514
+ #### Troubleshooting
515
+
516
+ **Problem**: `yt-dlp: The term 'yt-dlp' is not recognized`
517
+
518
+ **Solution**: Open a new terminal window. Chocolatey updates PATH during installation, but existing terminals do not pick up the change. Alternatively, refresh the environment:
519
+
520
+ ```powershell
521
+ refreshenv
522
+ ```
523
+
524
+ **Problem**: Downloads fail with network errors
525
+
526
+ **Solution**: Windows Defender or antivirus may be blocking the connection. Add yt-dlp to the exclusion list or temporarily disable real-time protection.
527
+
528
+ **Problem**: Cannot extract audio or convert formats
529
+
530
+ **Solution**: Install FFmpeg:
531
+
532
+ ```powershell
533
+ choco install ffmpeg -y
534
+ ```
535
+
536
+ **Problem**: Upgrade fails
537
+
538
+ **Solution**: Uninstall and reinstall:
539
+
540
+ ```powershell
541
+ choco uninstall yt-dlp -y
542
+ choco install yt-dlp -y
543
+ ```
544
+
545
+ ---
546
+
547
+ ### WSL (Ubuntu)
548
+
549
+ #### Prerequisites
550
+
551
+ - Windows 10 version 2004 or higher, or Windows 11
552
+ - WSL 2 enabled with Ubuntu distribution installed
553
+ - sudo privileges within WSL
554
+
555
+ **Note**: yt-dlp installed in Windows is not accessible from WSL. You must install yt-dlp separately within your WSL Ubuntu environment.
556
+
557
+ #### Installation Steps
558
+
559
+ Open your WSL Ubuntu terminal and run:
560
+
561
+ ```bash
562
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
563
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y yt-dlp
564
+ ```
565
+
566
+ The installation process is identical to native Ubuntu since WSL Ubuntu uses the same package repositories.
567
+
568
+ To install FFmpeg for full format conversion support:
569
+
570
+ ```bash
571
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ffmpeg
572
+ ```
573
+
574
+ **Alternative: Latest version via pip**
575
+
576
+ If you need the latest yt-dlp version:
577
+
578
+ ```bash
579
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip
580
+ python3 -m pip install -U "yt-dlp[default]"
581
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
582
+ source ~/.bashrc
583
+ ```
584
+
585
+ #### Verification
586
+
587
+ Confirm the installation succeeded:
588
+
589
+ ```bash
590
+ yt-dlp --version
591
+ ```
592
+
593
+ Expected output (version numbers vary by Ubuntu version):
594
+
595
+ ```
596
+ 2024.04.09
597
+ ```
598
+
599
+ Test basic functionality:
600
+
601
+ ```bash
602
+ yt-dlp --help | head -5
603
+ ```
604
+
605
+ #### Troubleshooting
606
+
607
+ **Problem**: Package installation fails with network errors
608
+
609
+ **Solution**: WSL may have DNS issues. Update the resolv.conf:
610
+
611
+ ```bash
612
+ echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
613
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
614
+ ```
615
+
616
+ **Problem**: Need to download files to Windows filesystem
617
+
618
+ **Solution**: Access Windows files through `/mnt/c/`:
619
+
620
+ ```bash
621
+ # Download to Windows Downloads folder
622
+ yt-dlp -o "/mnt/c/Users/YourUsername/Downloads/%(title)s.%(ext)s" "URL"
623
+ ```
624
+
625
+ **Problem**: Downloads are slower than on Windows
626
+
627
+ **Solution**: WSL filesystem I/O to Windows drives is slower. Download to the WSL filesystem first, then move:
628
+
629
+ ```bash
630
+ yt-dlp -o "~/Downloads/%(title)s.%(ext)s" "URL"
631
+ mv ~/Downloads/*.mp4 /mnt/c/Users/YourUsername/Downloads/
632
+ ```
633
+
634
+ ---
635
+
636
+ ### Git Bash (Manual/Portable)
637
+
638
+ #### Prerequisites
639
+
640
+ - Windows 10 or later (64-bit)
641
+ - Git Bash installed (comes with Git for Windows)
642
+ - Internet access to download binaries
643
+
644
+ **Note**: Git Bash runs in a MinGW environment on Windows. This guide uses direct binary download, which provides a portable installation that works in Git Bash.
645
+
646
+ #### Installation Steps
647
+
648
+ **Step 1: Create a directory for yt-dlp**
649
+
650
+ Open Git Bash and run:
651
+
652
+ ```bash
653
+ mkdir -p ~/bin
654
+ ```
655
+
656
+ **Step 2: Download the yt-dlp executable**
657
+
658
+ ```bash
659
+ curl -L -o ~/bin/yt-dlp.exe https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe
660
+ chmod +x ~/bin/yt-dlp.exe
661
+ ```
662
+
663
+ **Step 3: Add to PATH**
664
+
665
+ ```bash
666
+ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
667
+ source ~/.bashrc
668
+ ```
669
+
670
+ **Step 4: Install FFmpeg (recommended)**
671
+
672
+ ```bash
673
+ cd /tmp
674
+ curl -L -o ffmpeg.zip https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip
675
+ unzip -q ffmpeg.zip -d /tmp/ffmpeg-extract
676
+ mv /tmp/ffmpeg-extract/ffmpeg-*/bin/*.exe ~/bin/
677
+ rm -rf /tmp/ffmpeg.zip /tmp/ffmpeg-extract
678
+ ```
679
+
680
+ #### Verification
681
+
682
+ Confirm the installation succeeded:
683
+
684
+ ```bash
685
+ yt-dlp --version
686
+ ```
687
+
688
+ Expected output (version numbers may vary):
689
+
690
+ ```
691
+ 2025.12.08
692
+ ```
693
+
694
+ Test that FFmpeg is available:
695
+
696
+ ```bash
697
+ ffmpeg -version | head -1
698
+ ```
699
+
700
+ #### Troubleshooting
701
+
702
+ **Problem**: `yt-dlp: command not found`
703
+
704
+ **Solution**: Verify PATH includes `~/bin`:
705
+
706
+ ```bash
707
+ echo $PATH | grep -q "$HOME/bin" && echo "PATH OK" || echo "Missing from PATH"
708
+ ```
709
+
710
+ If missing, add it manually:
711
+
712
+ ```bash
713
+ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
714
+ source ~/.bashrc
715
+ ```
716
+
717
+ **Problem**: Download fails with certificate errors
718
+
719
+ **Solution**: Update ca-certificates or use the `-k` flag (less secure):
720
+
721
+ ```bash
722
+ curl -L -k -o ~/bin/yt-dlp.exe https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe
723
+ ```
724
+
725
+ **Problem**: Permission denied when running yt-dlp
726
+
727
+ **Solution**: Ensure the executable has proper permissions:
728
+
729
+ ```bash
730
+ chmod +x ~/bin/yt-dlp.exe
731
+ ```
732
+
733
+ **Problem**: Path conversion issues with Windows-style paths
734
+
735
+ **Solution**: Use forward slashes or the MSYS_NO_PATHCONV environment variable:
736
+
737
+ ```bash
738
+ MSYS_NO_PATHCONV=1 yt-dlp -o "C:/Users/Me/Downloads/%(title)s.%(ext)s" "URL"
739
+ ```
740
+
741
+ ---
742
+
743
+ ## Post-Installation Configuration
744
+
745
+ After installing yt-dlp on any platform, consider these optional but useful configurations.
746
+
747
+ ### Creating a Configuration File
748
+
749
+ yt-dlp supports a configuration file for persistent settings. Create it at:
750
+
751
+ - **Linux/macOS/WSL**: `~/.config/yt-dlp/config`
752
+ - **Windows**: `%APPDATA%\yt-dlp\config`
753
+
754
+ Example configuration:
755
+
756
+ ```bash
757
+ # Create config directory
758
+ mkdir -p ~/.config/yt-dlp
759
+
760
+ # Create configuration file
761
+ cat > ~/.config/yt-dlp/config << 'EOF'
762
+ # Default format: best quality up to 1080p
763
+ -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]"
764
+
765
+ # Output filename template
766
+ -o "%(title)s.%(ext)s"
767
+
768
+ # Embed metadata
769
+ --embed-metadata
770
+ --embed-thumbnail
771
+
772
+ # Download subtitles if available
773
+ --write-subs
774
+ --sub-langs "en"
775
+ EOF
776
+ ```
777
+
778
+ ### Verifying FFmpeg Integration
779
+
780
+ Check that yt-dlp can find FFmpeg:
781
+
782
+ ```bash
783
+ yt-dlp --verbose 2>&1 | grep -i ffmpeg
784
+ ```
785
+
786
+ You should see the FFmpeg path listed in the output.
787
+
788
+ ### Testing Audio Extraction
789
+
790
+ Verify audio extraction works (requires FFmpeg):
791
+
792
+ ```bash
793
+ yt-dlp --extract-audio --audio-format mp3 --audio-quality 0 "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -o "test-audio.%(ext)s"
794
+ rm -f test-audio.mp3 # Clean up
795
+ ```
796
+
797
+ ### Updating yt-dlp
798
+
799
+ Keep yt-dlp updated to ensure extractors work with website changes:
800
+
801
+ **Homebrew (macOS)**:
802
+ ```bash
803
+ brew upgrade yt-dlp
804
+ ```
805
+
806
+ **APT (Ubuntu/Debian/Raspberry Pi)**:
807
+ ```bash
808
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y yt-dlp
809
+ ```
810
+
811
+ **pip (any platform)**:
812
+ ```bash
813
+ python3 -m pip install -U "yt-dlp[default]"
814
+ ```
815
+
816
+ **Chocolatey (Windows)**:
817
+ ```powershell
818
+ choco upgrade yt-dlp -y
819
+ ```
820
+
821
+ **Binary (Git Bash/manual)**:
822
+ ```bash
823
+ yt-dlp -U
824
+ ```
825
+
826
+ ---
827
+
828
+ ## Common Issues
829
+
830
+ ### Issue: "Unable to extract" or "Video unavailable"
831
+
832
+ **Symptoms**: Downloads fail with extraction errors
833
+
834
+ **Solutions**:
835
+
836
+ - Update yt-dlp to the latest version (websites frequently change their structure)
837
+ - Check if the video is actually available in your region
838
+ - Some videos are age-restricted and require cookies:
839
+
840
+ ```bash
841
+ # Export cookies from your browser using a browser extension
842
+ yt-dlp --cookies cookies.txt "URL"
843
+ ```
844
+
845
+ ### Issue: "ffmpeg not found" or "ffprobe not found"
846
+
847
+ **Symptoms**: Format conversion or audio extraction fails
848
+
849
+ **Solutions**:
850
+
851
+ - Install FFmpeg using the platform-specific instructions above
852
+ - Verify FFmpeg is in PATH:
853
+
854
+ ```bash
855
+ which ffmpeg # Linux/macOS
856
+ where ffmpeg # Windows
857
+ ```
858
+
859
+ ### Issue: Downloads are Slow
860
+
861
+ **Symptoms**: Downloads take much longer than expected
862
+
863
+ **Solutions**:
864
+
865
+ - Use a download speed limit if your connection is unstable:
866
+
867
+ ```bash
868
+ yt-dlp --limit-rate 10M "URL"
869
+ ```
870
+
871
+ - Use concurrent fragment downloads for faster downloads:
872
+
873
+ ```bash
874
+ yt-dlp --concurrent-fragments 5 "URL"
875
+ ```
876
+
877
+ ### Issue: "HTTP Error 429: Too Many Requests"
878
+
879
+ **Symptoms**: Downloads fail with rate limiting errors
880
+
881
+ **Solutions**:
882
+
883
+ - Wait a few minutes before retrying
884
+ - Use a lower rate limit:
885
+
886
+ ```bash
887
+ yt-dlp --sleep-interval 5 --max-sleep-interval 30 "URL"
888
+ ```
889
+
890
+ - Use cookies from a logged-in browser session
891
+
892
+ ### Issue: Output File Already Exists
893
+
894
+ **Symptoms**: Downloads fail because file already exists
895
+
896
+ **Solutions**:
897
+
898
+ - Skip existing files:
899
+
900
+ ```bash
901
+ yt-dlp --no-overwrites "URL"
902
+ ```
903
+
904
+ - Or force overwrite:
905
+
906
+ ```bash
907
+ yt-dlp --force-overwrites "URL"
908
+ ```
909
+
910
+ ### Issue: Subtitles Not Downloaded
911
+
912
+ **Symptoms**: No subtitle files appear alongside video
913
+
914
+ **Solutions**:
915
+
916
+ - Check available subtitles:
917
+
918
+ ```bash
919
+ yt-dlp --list-subs "URL"
920
+ ```
921
+
922
+ - Download all available subtitles:
923
+
924
+ ```bash
925
+ yt-dlp --write-subs --all-subs "URL"
926
+ ```
927
+
928
+ - Download auto-generated subtitles if no manual ones exist:
929
+
930
+ ```bash
931
+ yt-dlp --write-auto-subs "URL"
932
+ ```
933
+
934
+ ---
935
+
936
+ ## References
937
+
938
+ - [yt-dlp GitHub Repository](https://github.com/yt-dlp/yt-dlp)
939
+ - [yt-dlp Installation Wiki](https://github.com/yt-dlp/yt-dlp/wiki/Installation)
940
+ - [yt-dlp Supported Sites](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md)
941
+ - [yt-dlp Configuration Options](https://github.com/yt-dlp/yt-dlp#configuration)
942
+ - [Homebrew Formula - yt-dlp](https://formulae.brew.sh/formula/yt-dlp)
943
+ - [Chocolatey Package - yt-dlp](https://community.chocolatey.org/packages/yt-dlp)
944
+ - [Ubuntu Packages - yt-dlp](https://packages.ubuntu.com/search?keywords=yt-dlp)
945
+ - [FFmpeg Official Website](https://www.ffmpeg.org/)
946
+ - [yt-dlp PyPI Package](https://pypi.org/project/yt-dlp/)