@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.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
- package/src/utils/windows/choco.js +82 -26
- 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/)
|