@fredlackey/devutils 0.0.18 → 0.1.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 (447) hide show
  1. package/README.md +214 -141
  2. package/package.json +8 -83
  3. package/src/api/loader.js +229 -0
  4. package/src/api/registry.json +62 -0
  5. package/src/cli.js +293 -60
  6. package/src/commands/ai/index.js +16 -0
  7. package/src/commands/ai/launch.js +112 -0
  8. package/src/commands/ai/list.js +54 -0
  9. package/src/commands/ai/resume.js +70 -0
  10. package/src/commands/ai/sessions.js +121 -0
  11. package/src/commands/ai/set.js +131 -0
  12. package/src/commands/ai/show.js +74 -0
  13. package/src/commands/ai/tools.js +46 -0
  14. package/src/commands/alias/add.js +93 -0
  15. package/src/commands/alias/helpers.js +107 -0
  16. package/src/commands/alias/index.js +14 -0
  17. package/src/commands/alias/list.js +55 -0
  18. package/src/commands/alias/remove.js +62 -0
  19. package/src/commands/alias/sync.js +109 -0
  20. package/src/commands/api/disable.js +73 -0
  21. package/src/commands/api/enable.js +148 -0
  22. package/src/commands/api/index.js +15 -0
  23. package/src/commands/api/list.js +66 -0
  24. package/src/commands/api/update.js +87 -0
  25. package/src/commands/auth/index.js +15 -0
  26. package/src/commands/auth/list.js +49 -0
  27. package/src/commands/auth/login.js +384 -0
  28. package/src/commands/auth/logout.js +111 -0
  29. package/src/commands/auth/refresh.js +184 -0
  30. package/src/commands/auth/services.js +169 -0
  31. package/src/commands/auth/status.js +104 -0
  32. package/src/commands/config/export.js +224 -0
  33. package/src/commands/config/get.js +52 -0
  34. package/src/commands/config/import.js +308 -0
  35. package/src/commands/config/index.js +17 -0
  36. package/src/commands/config/init.js +143 -0
  37. package/src/commands/config/reset.js +57 -0
  38. package/src/commands/config/set.js +93 -0
  39. package/src/commands/config/show.js +35 -0
  40. package/src/commands/help.js +338 -0
  41. package/src/commands/identity/add.js +133 -0
  42. package/src/commands/identity/index.js +17 -0
  43. package/src/commands/identity/link.js +76 -0
  44. package/src/commands/identity/list.js +48 -0
  45. package/src/commands/identity/remove.js +72 -0
  46. package/src/commands/identity/show.js +65 -0
  47. package/src/commands/identity/sync.js +172 -0
  48. package/src/commands/identity/unlink.js +57 -0
  49. package/src/commands/ignore/add.js +165 -0
  50. package/src/commands/ignore/index.js +14 -0
  51. package/src/commands/ignore/list.js +89 -0
  52. package/src/commands/ignore/markers.js +43 -0
  53. package/src/commands/ignore/remove.js +164 -0
  54. package/src/commands/ignore/show.js +169 -0
  55. package/src/commands/machine/detect.js +122 -0
  56. package/src/commands/machine/index.js +14 -0
  57. package/src/commands/machine/list.js +74 -0
  58. package/src/commands/machine/set.js +106 -0
  59. package/src/commands/machine/show.js +35 -0
  60. package/src/commands/schema.js +152 -0
  61. package/src/commands/search/collections.js +134 -0
  62. package/src/commands/search/get.js +71 -0
  63. package/src/commands/search/index-cmd.js +54 -0
  64. package/src/commands/search/index.js +21 -0
  65. package/src/commands/search/keyword.js +60 -0
  66. package/src/commands/search/qmd.js +70 -0
  67. package/src/commands/search/query.js +64 -0
  68. package/src/commands/search/semantic.js +62 -0
  69. package/src/commands/search/status.js +46 -0
  70. package/src/commands/status.js +224 -171
  71. package/src/commands/tools/check.js +79 -0
  72. package/src/commands/tools/index.js +14 -0
  73. package/src/commands/tools/install.js +110 -0
  74. package/src/commands/tools/list.js +91 -0
  75. package/src/commands/tools/search.js +60 -0
  76. package/src/commands/update.js +83 -112
  77. package/src/commands/util/add.js +151 -0
  78. package/src/commands/util/index.js +15 -0
  79. package/src/commands/util/list.js +97 -0
  80. package/src/commands/util/remove.js +76 -0
  81. package/src/commands/util/run.js +79 -0
  82. package/src/commands/util/show.js +67 -0
  83. package/src/commands/version.js +21 -88
  84. package/src/installers/_template.js +104 -0
  85. package/src/installers/git.js +150 -0
  86. package/src/installers/homebrew.js +190 -0
  87. package/src/installers/node.js +223 -0
  88. package/src/installers/registry.json +29 -0
  89. package/src/lib/config.js +125 -0
  90. package/src/lib/detect.js +74 -0
  91. package/src/lib/errors.js +114 -0
  92. package/src/lib/github.js +315 -0
  93. package/src/lib/installer.js +225 -0
  94. package/src/lib/output.js +239 -0
  95. package/src/lib/platform.js +112 -0
  96. package/src/lib/platforms/amazon-linux.js +41 -0
  97. package/src/lib/platforms/gitbash.js +46 -0
  98. package/src/lib/platforms/macos.js +45 -0
  99. package/src/lib/platforms/raspbian.js +41 -0
  100. package/src/lib/platforms/ubuntu.js +39 -0
  101. package/src/lib/platforms/windows.js +45 -0
  102. package/src/lib/prompt.js +161 -0
  103. package/src/lib/schema.js +211 -0
  104. package/src/lib/shell.js +75 -0
  105. package/src/patterns/gitignore/claude-code.txt +25 -0
  106. package/src/patterns/gitignore/docker.txt +15 -0
  107. package/src/patterns/gitignore/go.txt +24 -0
  108. package/src/patterns/gitignore/java.txt +38 -0
  109. package/src/patterns/gitignore/jetbrains.txt +26 -0
  110. package/src/patterns/gitignore/linux.txt +18 -0
  111. package/src/patterns/gitignore/macos.txt +27 -0
  112. package/src/patterns/gitignore/node.txt +51 -0
  113. package/src/patterns/gitignore/python.txt +55 -0
  114. package/src/patterns/gitignore/rust.txt +14 -0
  115. package/src/patterns/gitignore/terraform.txt +30 -0
  116. package/src/patterns/gitignore/vscode.txt +15 -0
  117. package/src/patterns/gitignore/windows.txt +25 -0
  118. package/src/utils/clone/index.js +165 -0
  119. package/src/utils/git-push/index.js +230 -0
  120. package/src/utils/git-status/index.js +116 -0
  121. package/src/utils/git-status/unix.sh +75 -0
  122. package/src/utils/registry.json +41 -0
  123. package/bin/dev.js +0 -16
  124. package/files/README.md +0 -0
  125. package/files/claude/.claude/commands/setup-context.md +0 -3
  126. package/files/monorepos/_archive/README.md +0 -36
  127. package/files/monorepos/_legacy/README.md +0 -36
  128. package/files/monorepos/ai-docs/README.md +0 -33
  129. package/files/monorepos/apps/README.md +0 -24
  130. package/files/monorepos/docs/README.md +0 -40
  131. package/files/monorepos/packages/README.md +0 -25
  132. package/files/monorepos/research/README.md +0 -29
  133. package/files/monorepos/scripts/README.md +0 -24
  134. package/src/commands/README.md +0 -41
  135. package/src/commands/configure.js +0 -199
  136. package/src/commands/identity.js +0 -1630
  137. package/src/commands/ignore.js +0 -247
  138. package/src/commands/install.js +0 -526
  139. package/src/commands/setup.js +0 -246
  140. package/src/completion.js +0 -284
  141. package/src/constants.js +0 -45
  142. package/src/ignore/claude-code.txt +0 -10
  143. package/src/ignore/docker.txt +0 -18
  144. package/src/ignore/linux.txt +0 -23
  145. package/src/ignore/macos.txt +0 -36
  146. package/src/ignore/node.txt +0 -55
  147. package/src/ignore/terraform.txt +0 -37
  148. package/src/ignore/vscode.txt +0 -18
  149. package/src/ignore/windows.txt +0 -35
  150. package/src/index.js +0 -0
  151. package/src/installs/README.md +0 -399
  152. package/src/installs/adobe-creative-cloud.js +0 -546
  153. package/src/installs/adobe-creative-cloud.md +0 -605
  154. package/src/installs/appcleaner.js +0 -321
  155. package/src/installs/appcleaner.md +0 -699
  156. package/src/installs/apt-transport-https.js +0 -390
  157. package/src/installs/apt-transport-https.md +0 -678
  158. package/src/installs/atomicparsley.js +0 -642
  159. package/src/installs/atomicparsley.md +0 -795
  160. package/src/installs/aws-cli.js +0 -797
  161. package/src/installs/aws-cli.md +0 -727
  162. package/src/installs/balena-etcher.js +0 -710
  163. package/src/installs/balena-etcher.md +0 -761
  164. package/src/installs/bambu-studio.js +0 -1143
  165. package/src/installs/bambu-studio.md +0 -780
  166. package/src/installs/bash-completion.js +0 -575
  167. package/src/installs/bash-completion.md +0 -833
  168. package/src/installs/bash.js +0 -417
  169. package/src/installs/bash.md +0 -993
  170. package/src/installs/beyond-compare.js +0 -603
  171. package/src/installs/beyond-compare.md +0 -813
  172. package/src/installs/brave-browser.js +0 -968
  173. package/src/installs/brave-browser.md +0 -650
  174. package/src/installs/build-essential.js +0 -529
  175. package/src/installs/build-essential.md +0 -977
  176. package/src/installs/ca-certificates.js +0 -618
  177. package/src/installs/ca-certificates.md +0 -937
  178. package/src/installs/caffeine.js +0 -508
  179. package/src/installs/caffeine.md +0 -839
  180. package/src/installs/camtasia.js +0 -596
  181. package/src/installs/camtasia.md +0 -762
  182. package/src/installs/chatgpt.js +0 -476
  183. package/src/installs/chatgpt.md +0 -814
  184. package/src/installs/chocolatey.js +0 -456
  185. package/src/installs/chocolatey.md +0 -661
  186. package/src/installs/chrome-canary.js +0 -419
  187. package/src/installs/chrome-canary.md +0 -641
  188. package/src/installs/chromium.js +0 -667
  189. package/src/installs/chromium.md +0 -838
  190. package/src/installs/claude-code.js +0 -576
  191. package/src/installs/claude-code.md +0 -1173
  192. package/src/installs/cloudflare-warp.js +0 -900
  193. package/src/installs/cloudflare-warp.md +0 -1047
  194. package/src/installs/comet-browser.js +0 -588
  195. package/src/installs/comet-browser.md +0 -731
  196. package/src/installs/curl.js +0 -379
  197. package/src/installs/curl.md +0 -714
  198. package/src/installs/cursor.js +0 -579
  199. package/src/installs/cursor.md +0 -970
  200. package/src/installs/dbeaver.js +0 -924
  201. package/src/installs/dbeaver.md +0 -939
  202. package/src/installs/dbschema.js +0 -692
  203. package/src/installs/dbschema.md +0 -925
  204. package/src/installs/dependencies.md +0 -453
  205. package/src/installs/development-tools.js +0 -600
  206. package/src/installs/development-tools.md +0 -977
  207. package/src/installs/docker.js +0 -1029
  208. package/src/installs/docker.md +0 -1109
  209. package/src/installs/drawio.js +0 -1019
  210. package/src/installs/drawio.md +0 -795
  211. package/src/installs/elmedia-player.js +0 -347
  212. package/src/installs/elmedia-player.md +0 -556
  213. package/src/installs/ffmpeg.js +0 -889
  214. package/src/installs/ffmpeg.md +0 -852
  215. package/src/installs/file.js +0 -464
  216. package/src/installs/file.md +0 -987
  217. package/src/installs/gemini-cli.js +0 -811
  218. package/src/installs/gemini-cli.md +0 -1153
  219. package/src/installs/git.js +0 -400
  220. package/src/installs/git.md +0 -907
  221. package/src/installs/gitego.js +0 -949
  222. package/src/installs/gitego.md +0 -1172
  223. package/src/installs/go.js +0 -931
  224. package/src/installs/go.md +0 -958
  225. package/src/installs/google-antigravity.js +0 -913
  226. package/src/installs/google-antigravity.md +0 -1075
  227. package/src/installs/google-chrome.js +0 -833
  228. package/src/installs/google-chrome.md +0 -862
  229. package/src/installs/gpg.js +0 -480
  230. package/src/installs/gpg.md +0 -1056
  231. package/src/installs/homebrew.js +0 -1028
  232. package/src/installs/homebrew.md +0 -988
  233. package/src/installs/imageoptim.js +0 -968
  234. package/src/installs/imageoptim.md +0 -1119
  235. package/src/installs/installers.json +0 -4032
  236. package/src/installs/installers.json.tmp +0 -3953
  237. package/src/installs/jq.js +0 -400
  238. package/src/installs/jq.md +0 -809
  239. package/src/installs/keyboard-maestro.js +0 -719
  240. package/src/installs/keyboard-maestro.md +0 -825
  241. package/src/installs/kiro.js +0 -864
  242. package/src/installs/kiro.md +0 -1015
  243. package/src/installs/latex.js +0 -789
  244. package/src/installs/latex.md +0 -1095
  245. package/src/installs/lftp.js +0 -356
  246. package/src/installs/lftp.md +0 -907
  247. package/src/installs/lsb-release.js +0 -346
  248. package/src/installs/lsb-release.md +0 -814
  249. package/src/installs/messenger.js +0 -847
  250. package/src/installs/messenger.md +0 -900
  251. package/src/installs/microsoft-office.js +0 -568
  252. package/src/installs/microsoft-office.md +0 -760
  253. package/src/installs/microsoft-teams.js +0 -801
  254. package/src/installs/microsoft-teams.md +0 -886
  255. package/src/installs/moom.js +0 -326
  256. package/src/installs/moom.md +0 -570
  257. package/src/installs/node.js +0 -904
  258. package/src/installs/node.md +0 -1153
  259. package/src/installs/nordpass.js +0 -716
  260. package/src/installs/nordpass.md +0 -921
  261. package/src/installs/nordvpn.js +0 -892
  262. package/src/installs/nordvpn.md +0 -1052
  263. package/src/installs/nvm.js +0 -995
  264. package/src/installs/nvm.md +0 -1057
  265. package/src/installs/ohmyzsh.js +0 -529
  266. package/src/installs/ohmyzsh.md +0 -1094
  267. package/src/installs/openssh.js +0 -804
  268. package/src/installs/openssh.md +0 -1056
  269. package/src/installs/pandoc.js +0 -662
  270. package/src/installs/pandoc.md +0 -1036
  271. package/src/installs/parallels-desktop.js +0 -431
  272. package/src/installs/parallels-desktop.md +0 -446
  273. package/src/installs/pinentry.js +0 -510
  274. package/src/installs/pinentry.md +0 -1142
  275. package/src/installs/pngyu.js +0 -869
  276. package/src/installs/pngyu.md +0 -896
  277. package/src/installs/postman.js +0 -799
  278. package/src/installs/postman.md +0 -940
  279. package/src/installs/procps.js +0 -425
  280. package/src/installs/procps.md +0 -851
  281. package/src/installs/safari-tech-preview.js +0 -374
  282. package/src/installs/safari-tech-preview.md +0 -533
  283. package/src/installs/sfnt2woff.js +0 -658
  284. package/src/installs/sfnt2woff.md +0 -795
  285. package/src/installs/shellcheck.js +0 -481
  286. package/src/installs/shellcheck.md +0 -1005
  287. package/src/installs/slack.js +0 -741
  288. package/src/installs/slack.md +0 -865
  289. package/src/installs/snagit.js +0 -585
  290. package/src/installs/snagit.md +0 -844
  291. package/src/installs/software-properties-common.js +0 -372
  292. package/src/installs/software-properties-common.md +0 -805
  293. package/src/installs/spotify.js +0 -877
  294. package/src/installs/spotify.md +0 -901
  295. package/src/installs/studio-3t.js +0 -823
  296. package/src/installs/studio-3t.md +0 -918
  297. package/src/installs/sublime-text.js +0 -804
  298. package/src/installs/sublime-text.md +0 -914
  299. package/src/installs/superwhisper.js +0 -706
  300. package/src/installs/superwhisper.md +0 -630
  301. package/src/installs/tailscale.js +0 -745
  302. package/src/installs/tailscale.md +0 -1100
  303. package/src/installs/tar.js +0 -389
  304. package/src/installs/tar.md +0 -946
  305. package/src/installs/termius.js +0 -798
  306. package/src/installs/termius.md +0 -844
  307. package/src/installs/terraform.js +0 -779
  308. package/src/installs/terraform.md +0 -899
  309. package/src/installs/tfenv.js +0 -778
  310. package/src/installs/tfenv.md +0 -1091
  311. package/src/installs/tidal.js +0 -771
  312. package/src/installs/tidal.md +0 -864
  313. package/src/installs/tmux.js +0 -346
  314. package/src/installs/tmux.md +0 -1030
  315. package/src/installs/tree.js +0 -411
  316. package/src/installs/tree.md +0 -833
  317. package/src/installs/unzip.js +0 -460
  318. package/src/installs/unzip.md +0 -879
  319. package/src/installs/vim.js +0 -421
  320. package/src/installs/vim.md +0 -1040
  321. package/src/installs/vlc.js +0 -821
  322. package/src/installs/vlc.md +0 -927
  323. package/src/installs/vscode.js +0 -843
  324. package/src/installs/vscode.md +0 -1002
  325. package/src/installs/wget.js +0 -420
  326. package/src/installs/wget.md +0 -791
  327. package/src/installs/whatsapp.js +0 -729
  328. package/src/installs/whatsapp.md +0 -854
  329. package/src/installs/winpty.js +0 -352
  330. package/src/installs/winpty.md +0 -620
  331. package/src/installs/woff2.js +0 -553
  332. package/src/installs/woff2.md +0 -977
  333. package/src/installs/wsl.js +0 -572
  334. package/src/installs/wsl.md +0 -699
  335. package/src/installs/xcode-clt.js +0 -520
  336. package/src/installs/xcode-clt.md +0 -351
  337. package/src/installs/xcode.js +0 -560
  338. package/src/installs/xcode.md +0 -573
  339. package/src/installs/yarn.js +0 -824
  340. package/src/installs/yarn.md +0 -1074
  341. package/src/installs/yq.js +0 -654
  342. package/src/installs/yq.md +0 -944
  343. package/src/installs/yt-dlp.js +0 -701
  344. package/src/installs/yt-dlp.md +0 -946
  345. package/src/installs/yum-utils.js +0 -297
  346. package/src/installs/yum-utils.md +0 -648
  347. package/src/installs/zoom.js +0 -759
  348. package/src/installs/zoom.md +0 -884
  349. package/src/installs/zsh.js +0 -455
  350. package/src/installs/zsh.md +0 -1008
  351. package/src/scripts/README.md +0 -617
  352. package/src/scripts/STATUS.md +0 -208
  353. package/src/scripts/afk.js +0 -411
  354. package/src/scripts/backup-all.js +0 -746
  355. package/src/scripts/backup-source.js +0 -727
  356. package/src/scripts/brewd.js +0 -389
  357. package/src/scripts/brewi.js +0 -520
  358. package/src/scripts/brewr.js +0 -527
  359. package/src/scripts/brews.js +0 -477
  360. package/src/scripts/brewu.js +0 -504
  361. package/src/scripts/c.js +0 -201
  362. package/src/scripts/ccurl.js +0 -341
  363. package/src/scripts/certbot-crontab-init.js +0 -504
  364. package/src/scripts/certbot-init.js +0 -657
  365. package/src/scripts/ch.js +0 -355
  366. package/src/scripts/claude-danger.js +0 -268
  367. package/src/scripts/clean-dev.js +0 -435
  368. package/src/scripts/clear-dns-cache.js +0 -541
  369. package/src/scripts/clone.js +0 -435
  370. package/src/scripts/code-all.js +0 -437
  371. package/src/scripts/count-files.js +0 -211
  372. package/src/scripts/count-folders.js +0 -211
  373. package/src/scripts/count.js +0 -264
  374. package/src/scripts/d.js +0 -219
  375. package/src/scripts/datauri.js +0 -389
  376. package/src/scripts/delete-files.js +0 -380
  377. package/src/scripts/docker-clean.js +0 -426
  378. package/src/scripts/dp.js +0 -442
  379. package/src/scripts/e.js +0 -390
  380. package/src/scripts/empty-trash.js +0 -513
  381. package/src/scripts/evm.js +0 -444
  382. package/src/scripts/fetch-github-repos.js +0 -456
  383. package/src/scripts/get-channel.js +0 -345
  384. package/src/scripts/get-course.js +0 -399
  385. package/src/scripts/get-dependencies.js +0 -306
  386. package/src/scripts/get-folder.js +0 -799
  387. package/src/scripts/get-tunes.js +0 -426
  388. package/src/scripts/get-video.js +0 -367
  389. package/src/scripts/git-backup.js +0 -577
  390. package/src/scripts/git-clone.js +0 -493
  391. package/src/scripts/git-pup.js +0 -319
  392. package/src/scripts/git-push.js +0 -396
  393. package/src/scripts/h.js +0 -622
  394. package/src/scripts/hide-desktop-icons.js +0 -499
  395. package/src/scripts/hide-hidden-files.js +0 -538
  396. package/src/scripts/install-dependencies-from.js +0 -456
  397. package/src/scripts/ips.js +0 -663
  398. package/src/scripts/iso.js +0 -370
  399. package/src/scripts/killni.js +0 -577
  400. package/src/scripts/ll.js +0 -467
  401. package/src/scripts/local-ip.js +0 -325
  402. package/src/scripts/m.js +0 -524
  403. package/src/scripts/map.js +0 -309
  404. package/src/scripts/mkd.js +0 -351
  405. package/src/scripts/ncu-update-all.js +0 -457
  406. package/src/scripts/nginx-init.js +0 -718
  407. package/src/scripts/npmi.js +0 -382
  408. package/src/scripts/o.js +0 -511
  409. package/src/scripts/org-by-date.js +0 -338
  410. package/src/scripts/p.js +0 -224
  411. package/src/scripts/packages.js +0 -330
  412. package/src/scripts/path.js +0 -225
  413. package/src/scripts/ports.js +0 -597
  414. package/src/scripts/q.js +0 -305
  415. package/src/scripts/refresh-files.js +0 -394
  416. package/src/scripts/remove-smaller-files.js +0 -516
  417. package/src/scripts/rename-files-with-date.js +0 -533
  418. package/src/scripts/resize-image.js +0 -539
  419. package/src/scripts/rm-safe.js +0 -669
  420. package/src/scripts/s.js +0 -540
  421. package/src/scripts/set-git-public.js +0 -365
  422. package/src/scripts/show-desktop-icons.js +0 -475
  423. package/src/scripts/show-hidden-files.js +0 -472
  424. package/src/scripts/tpa.js +0 -280
  425. package/src/scripts/tpo.js +0 -280
  426. package/src/scripts/u.js +0 -505
  427. package/src/scripts/vpush.js +0 -437
  428. package/src/scripts/y.js +0 -283
  429. package/src/utils/README.md +0 -95
  430. package/src/utils/common/apps.js +0 -143
  431. package/src/utils/common/display.js +0 -157
  432. package/src/utils/common/network.js +0 -185
  433. package/src/utils/common/os.js +0 -294
  434. package/src/utils/common/package-manager.js +0 -301
  435. package/src/utils/common/privileges.js +0 -138
  436. package/src/utils/common/shell.js +0 -261
  437. package/src/utils/macos/apps.js +0 -228
  438. package/src/utils/macos/brew.js +0 -315
  439. package/src/utils/ubuntu/apt.js +0 -307
  440. package/src/utils/ubuntu/desktop.js +0 -292
  441. package/src/utils/ubuntu/snap.js +0 -344
  442. package/src/utils/ubuntu/systemd.js +0 -286
  443. package/src/utils/windows/choco.js +0 -465
  444. package/src/utils/windows/env.js +0 -246
  445. package/src/utils/windows/registry.js +0 -269
  446. package/src/utils/windows/shell.js +0 -240
  447. package/src/utils/windows/winget.js +0 -489
@@ -1,946 +0,0 @@
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/)