29
submitted 1 year ago* (last edited 1 year ago) by arsus5478@lemmy.ml to c/linux@lemmy.ml

debian 13.0, downloaded yt-dlp with wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O ~/.local/bin/yt-dlp

the python script is in that directory, but if I execute yt-dlp on the terminal it returns bash: yt-dlp: command not found

what should I do?

SOLVED: add .local/bin to your $PATH

all 18 comments
sorted by: hot top new old
[-] imsufferableninja@sh.itjust.works 32 points 1 year ago

Is ~.local/bin in your PATH?

[-] 7EP6vuI@feddit.org 3 points 1 year ago

i think this is the correct question to ask. did you just create ~/.local/bin folder? you can look at the end of ~/.profile that this will only be added to $PATH if the folder exists.

the easiest way is to log out and log in (no restart necessary!)

otherwise you can also execute source ~/.profile and then yt-dlp should be available.

the chmod +x tip from the other comments could also be necessary!

[-] onlooker@lemmy.ml 18 points 1 year ago

I'll assume you're new to Debian, so apologies if this is not true. The reason I say this is because generally speaking, "installing with wget" isn't how one is supposed to install software in Debian, using a program called apt is. yt-dlp is available in Debian 13's repositories. What I suggest doing is running apt install yt-dlp as root. That way the app will be installed globally, meaning it'll work without the system spitting out the error you've described. And on another positive note, the app will get updated automatically whenever you upgrade the system.

If this isn't for you, suggestions from other users here are valid and helpful.

[-] data1701d@startrek.website 9 points 1 year ago

Do note that the yt-dlp version in stable will go out of date; I recommend installing it from the backports repo so it keeps updating.

[-] anamethatisnt@sopuli.xyz 11 points 1 year ago* (last edited 1 year ago)

Did you make it executable?
chmod a+rx ~/.local/bin/yt-dlp # Make executable

What is the output of your $PATH? (feel free to anonymise usernames)
echo $PATH

[-] BombOmOm@lemmy.world 9 points 1 year ago* (last edited 1 year ago)

I believe you simply downloaded the file to ~/.local/bin/yt-dlp, you did not install it. You need to either add that location to your path or you need to cd to that folder in terminal, then run the command. It will check things in the current folder when trying to run executables.

[-] ferric_carcinization@lemmy.ml 5 points 1 year ago

Unlike Windows, on Linux you need to run ./<command> instead of just <command> for executables in you current directory.

[-] Tanoh@lemmy.world 6 points 1 year ago

Unless you have . in your $PATH

[-] lemming741@lemmy.world 7 points 1 year ago

What a mad lad idea

[-] joyjoy@lemmy.zip 4 points 1 year ago

You also need to chmod +x path files downloaded from the internet to make it executable.

[-] Nemoder@lemmy.ml 6 points 1 year ago

um, isn't it easier to just:
sudo apt install yt-dlp
yt-dlp -U

[-] Mikelius@lemmy.ml 6 points 1 year ago* (last edited 1 year ago)

Add

PATH="${PATH}:~/.local/bin"

To your .zhrc or .bashrc (whatever you use) and either source the file or open a new terminal. Should be as simple as that (assuming +x permissions)

[-] NauticalNoodle@lemmy.ml 5 points 1 year ago

Have you consulted the 'README' that is both in the yt-dlp directory as well as the github regarding installation?

[-] Vittelius@feddit.org 4 points 1 year ago* (last edited 1 year ago)

I found pipx the easiest way to install and manage a current ytdlp installation

sudo apt install pipx
pipx ensurepath

pipx install yt-dlp

Yes I know, it's an additional package manager, but it actually is a package manager and will therefore ensure the setup is correct

[-] Auster@lemmy.world 0 points 1 year ago

Don't Python scripts need python at the beginning of the command that summons them?

Alternatively, you can make an alias to ~/.bashrc: alias yt-dl="python3 /path/to/yt-dlp [options] " And replace [options] for flags you may want to always use, if any. Or delete if you just want the raw script to be tied to a terminal command.

Then reload .bashrc by running either source .bashrc or . .bashrc

[-] SteveTech@programming.dev 2 points 1 year ago

Don't Python scripts need python at the beginning of the command that summons them?

Not if the script has a python shebang (e.g. #!/usr/bin/env python3), then it will run like any other script.

[-] Auster@lemmy.world 2 points 1 year ago

Wasn't aware of that. Thanks for explaining!

this post was submitted on 20 Aug 2025
29 points (89.2% liked)

Linux

67710 readers
113 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 7 years ago
MODERATORS