Différentes méthodes d’installation d’yt-dlp sont possibles, soit directement en provenance de github, ou par paquet Debian. Une mauvaise installation peut empêcher l’usage correct de nombreuses options, source de confusion.
L’installation d’yt-dlp de Debian offre quelques avantages:
• résolution plus rapide puisque les extracteurs sont décompressés à l’installation à /usr/lib/python3/dist-packages/yt_dlp/extractor/
.
L’exécutable de GIT, sans préparation, doit décompresser les extracteurs à chaque utilisation.
time yt-dlp -s EngW7tLk6R8
github: 5s
Debian: 4s
• le paquet Debian installe man yt-dlp
• permet un contrôle de version directement par apt (pas indispensable, mais pratique)
Fréquence de mise à jour:
yt-dlp contient plus de mille extracteurs video.
Chercher à chaque utilisation la dernière version nightly qui concerne peut-être uniquement le site ‹ OnDemandKoreaProgram › présente peu d’intérêt, et peut aussi apporter des régressions. Le « dernier » paquet yt-dlp disponible de Debian filtre correctement la fréquence utile de mise à jour (observation statistique)
Le problème rencontré pour Debian stable est que yt-dlp n’est mis à jour que dans le dépôt debian-backports. L’ajoût d’un dépôt supplémentaire pour un paquet de 2MB n’est techniquement pas optimum, la mise à jour d’un dépôt étant une opération apt lourde.
Le script dash suivant permet d’obtenir la version du paquet yt-dlp de Debian la plus à jour, indépendamment des sources de dépôts.
Pré-requis, installation de:
python3-{certifi,mutagen,pycryptodome,requests,urllib3,websockets} ffmpeg curl
/usr/local/bin/yt-dlp_update
#!/usr/bin/dash
# yt-dlp_update : Recherche versions yt-dlp GIT+Debian # 20250408-1 #
# Depends: curl ffmpeg
# python3-{certifi,mutagen,pycryptodome,requests,urllib3,websockets}
# ------------
echo 'Versions yt-dlp'
cv=$(yt-dlp --version 2>/dev/null) && \
printf " Installé : $cv -> " && command -v yt-dlp
# ------------
R='http://ftp.fr.debian.org/debian/pool/main/y/yt-dlp'
LV=$(curl -s $R/ |awk -F\" '$2~/^[^~]*b$/{x=$2} END{print x}')
lv=${LV#*_} ; lv=${lv%%-*} ; P=/tmp/$LV
[ ${#lv} -eq 10 ] && echo " Disponible: $lv [debian]" || exit
# ------------
G='https://raw.githubusercontent.com/yt-dlp/yt-dlp/master/Changelog.md'
printf ' Github : '
curl --connect-timeout 5 -sL $G |awk '/20/{print $2;exit 5}' && echo '--'
# ------------
if [ x$lv != x$cv ] ; then
printf " »» Installation yt-dlp $lv [debian] ? [ ↲ / n ] "; read q
[ "$q" = n ] || curl --clobber -so $P $R/$LV && \
dpkg -I $P |grep -qm1 $lv && sudo dpkg -i $P && \
echo " /usr/bin/yt-dlp $lv installé"
fi
# ------------
exit
$ sudo chmod +x /usr/local/bin/yt-dlp_update
$ yt-dlp_update
Versions yt-dlp
Installé : 2025.03.27 -> /usr/bin/yt-dlp
Disponible: 2025.03.31 [debian]
Github : 2025.03.31
Installation yt-dlp 2025.03.31 [debian]
/usr/bin/yt-dlp installé: 2025.03.31
Test:
$ yt-dlp 'https://www.youtube.com/watch?v=EngW7tLk6R8' --get-title --get-id
Sample Videos / Dummy Videos For Demo Use
EngW7tLk6R8
Taille de la video EngW7tLk6R8
$ yt-dlp EngW7tLk6R8 --quiet --skip-download --exec-before-download 'size=$(numfmt --to=iec-i --suffix=B --format="%.2f" $(( %(requested_formats.0.filesize+requested_formats.1.filesize|0)d + %(filesize|0)d ))); echo "Size: $size"'
Size: 770,11KiB
Sans option, la vidéo est téléchargée, format par défaut: ‹ bestvideo*+bestaudio/best
›
mpv utilise directement yt-dlp, si correctement accesssible dans un chemin défini par la variable $PATH
.
$ mpv 'ytdl://ytsearch:fKFbnhcNnjE' --ytdl-format='bv[height<800]+ba/best'
# ou directement:
$ mpv 'https://www.youtube.com/watch?v=fKFbnhcNnjE'
Les options d’yt-dlp:
man yt-dlp
; GitHub - yt-dlp: Options
Une configuration par défaut d’yt-dlp peut-être écrite dans ~/.config/yt-dlp/config
exemple:
--no-mtime
--geo-bypass
--youtube-skip-dash-manifest
--user-agent='Mozilla/5.0 (Linux;)'
Les options de format video d’yt-dlp pour mpv peuvent être écrites dans ~/.config/mpv/mpv.conf
exemple:
ytdl-format='bestvideo[height<800]+bestaudio/best'