All I wanted is to install the current yt-dlp (2024.07.16-1) on debian 12.6.
Suggested way to that according to https://packages.debian.org/sid/all/yt-dlp/download is to add that line to that file (etc/apt/sources.list), but do I really need to download the 1600 files that upgrade would entail?
I don’t want to download the tar.gz 'cause upgrading that would be a pain.
I would advise just creating
~/.bin
or~/.local/share/bin
and dropping it in there. As long as you have permission to that directory, yt-dlp should be able to easily update itself.this is the way. easy. no install. no extra steps. update when you want.
or you can add the ppa that’s listed in the yt-dlp install instructions (scroll down to third-party package managers > apt) and use apt to install it like any other package.
pipx install yt-dlp
This will install yt-dlp with everything it needs but without fucking anything else up, both system-wise and for your user (because installing python packages in your home manually can cause problems). You must have your
$HOME/.local/bin
in$PATH
to then be able to runyt-dlp
, but I think pipx will check and warn you.pipx upgrade yt-dlp
to update it (or upgrade-all)That’s what I do, except I straight up create the python venv in a folder, activate it and then do
pip install yt-dlp
. No messing up with my system.pipx
does that without this manual process - it’s meant for these standalone apps that are in your$PATH
.It’s a good concept, I just have to look it up and understand exactly what it is doing before I start using it.
Debian sid is their unstable branch; it contains all new packages before they are tested. As such, if you try to install updates from it, you’ll likely get a very unstable system.
You can set it up so that you only get a specific package ( https://wiki.debian.org/DebianUnstable#Can_I_use_Sid_packages_on_.22testing.22.3F ), but honestly, if you need the very latest version, I’d recommend just grabbing it from github or wherever. Iirc, yt-dlp has a
-U
flag which will automatically update it.In best scenario you’ll turn your Debian to SID. Worst case scenario you’ll break your system.
I do not suggest this operation unless you’re sure what you’re doing.
Alternatively you can install
yt-dlp
using snap or using Nix Package managerThe latest yt-dlp is in bookworm-backports.
Do not do this. You’ll create a Frankendebian and your updates could (and probably will) break your system. Try to use a PPA instead, since Ubuntu is Debian-based.
If you want the latest version of most python apps, I’d recommend using
pipx
, since it’ll create python virtual environments for each app installed, and won’t mess with system packages.You’re adding the full repository of Debian unstable to your system. This wouldn’t just enable you to install yt-dlp but it would also turn your whole system from Debian stable to Debian unstable on the next update. Total overkill for one package.
Wanting latest packages on debian
It’s best to install yt-dlp manually and let it self update. It needs to be kept on the latest version since youtube is constantly breaking things. It’s only a single file and it can be installed in any directory in your
$PATH
.This is the way.
@merompetehla If you’re not running sid, do not look for install instructions on the sid page. If you’re on 12.6, that’s Bookworm (current stable name), look there for help with 12 stuff.
Best way to use the current #yt-dlp is to uninstall the one from the repo, and grab the current release from the github page and drop it in
$PATH
somewhere.https://github.com/yt-dlp/yt-dlp/wiki/Installation
Normally I try to use apt for everything, but yt-dlp is an exception since when you want it, you probably do actually want the latest version. I think the only thing it depends on is python, so simple enough to get it from git one way or another.
PS: Now that I actually look at that page I linked to, I see there’s a PPA repo you could use. I don’t know who runs it or how up-to-date it is, but it’s probably a better bet than what you were trying.
PPA shouldn’t be used on Debian.
Just install it via
pip
and then symlink its binary file to/usr/bin
.t. Am running a live stream 24/7 on my orange pi zero 3 (via ffplay/yt-dlp) since forever.
“Why not simply add
$HOME/.local/bin
to$PATH
?”Because it breaks things. While symlinking it does not.
“Why?”
No idea, honestly.
Also, you can take a step further and make a tmpfs partition @
$HOME/.local
and then add the following line to your .bash_profile file:TMPDIR=$HOME/.local pip install --break-system-packages -I --no-input yt-dlp &&
.If you want something easier to manage you can use Parabolic which is a graphical interface for yt-dlp that you can install as a flatpak.