Information relative à l'utilisation des données personnelles

Le site pajagus.fr utilise des cookies pour analyser le trafic sur le site.

Seules les données nécessaires à l'agent Google Analytics sont enregistrées. Ces informations sont utilisées pour générer des rapports de connexions, sessions, pages vues, provenance des visiteurs...

Aucune autre information n'est enregistrée par le site pajaguse.fr.

En utilisant ce site vous acceptez l'utilisation de ces cookies.

Télécharger une vidéo Youtube

youtubeVoici un article qui détaille le code d’un script Bash pour télécharger une vidéo Youtube à l’aide de l’utilitaire Youtude-dl.

Youtube-dl propose un nombre impressionnant d’options. Toutes ne seront pas abordées ici.

Pour installer Youtube-dl sous MacOS il faut passer par les paquets Homebrew. Sous Linux (Debian) l’utilitaire est disponible dans les paquets par défaut.

* Macos : brew install youtube-dl
* Linux : apt-get install youtube-dl

Détail du fonctionnement du script

  • Utilise une url via le presse-papier (sous MacOS) ou directement en paramètre sous Linux
  • Récupère les formats disponible pour la vidéo, formats vidéos et audio
  • Saisie du ou des formats souhaités. Youtube-dl sait mixer la vidéo et l’audio automatiquement
  • Téléchargement du format vidéo
  • Si besoin téléchargement du format audio et création d’un MKV (Vidéo + Audio)

Le script commenté

#!/bin/bash

# script : getVideo.sh

# vitesse max xK ou xM
RATE="500K"

# nom fichier final
OUT="-o %(title)s.%(ext)s"

## Fonction principale, charge la vidéo, et audio séparée si besoin et génére un mkv
## si fichier vidéo seul le format est conservé (mp4...)
function download {
  youtube-dl -F $1
  echo ""
  echo -n "Choix format(s) (22 | 137+140) (choix par défaut 137+140) : "
  read FORMAT
  ## par défaut format 137 (video 1080) + 140 (audio m4a 128K)
  if [ -z "$FORMAT" ]; then
    FORMAT="137+140"
  fi
  echo ""
  ## Titre de la vidéo
  TITRE=`youtube-dl -e $1` ; clear
  echo "Starting download of : $TITRE"
  OPT="--merge-output-format mkv --no-playlist -f $FORMAT -k -r $RATE --no-call-home"
  youtube-dl $OPT $OUT $1
}

clear

## si le premier param est un nom de fichier il sera utilisé comme liste d'url a charger
 if [ -f "$1" ] ; then
   for f in `cat $1`; do
     download $f
   done
 else
   ## Linux => url en param => getVideo.sh "https://www.youtube.com/watch?v=bSkNOrQVhDE"
   if [ -d "/home" ] ; then
     V="$1"
   fi
   ## MacOS => url via CTRL+C dans le presse papier
   if [ -d "/Users" ]; then
     ## recup contenu du presse papier
     V=`pbpaste`
   fi
   download $V
 fi

Suivant votre système le script peut être utilisé de trois manières :

* MacOS => getVideo.sh => l’url est récupérée depuis le presse papier (CTRL+C de l’url avant le lancer le script)
* Linux => getVideo.sh « URL »
* MacOS & Linux => getVideo.sh url.txt => le fichier url.txt doit contenir une url par ligne, les vidéos seront traitées l’une aprés l’autre.

Par défaut le script sélectionne les formats :

* 137 pour la vidéo => 1920×1080
* 140 pour l’audio => m4a 128K

Les deux fichiers sont ensuite combinés dans un mkv. Les fichiers originaux ne sont pas effacés.

L’option –no-playlist ignore les informations de playlist et ne traite que la vidéo concernée. Sans cette option, lorsque la vidéo fait partie d’une playlist Youtube, le logiciel télécharge toutes les vidéos de la playlist…

Le paramètre -r X  permet de limiter la bande passante utilisée. Dans l’exemple la limite est fixée à 500K, soit environs 5Mbits.

Format audio

Youtube-dl est également capable d’exporter le fichier audio en mp3 ou tout autre format (via ffmpeg).

Voici un extrait de l’aide ( youtube-dl -h ) :

-x, --extract-audio 
=> Convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe)

--audio-format FORMAT 
=> Specify audio format: "best", "aac", "flac", "mp3", "m4a", "opus", "vorbis", or "wav"; "best" by default; No effect without
-x

--audio-quality QUALITY
=> Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K
 (default 5)

A vous de jouer…

Pas de Commentaire

Qu'en pensez-vous ?

Votre formulaire contient des erreurs, merci de corriger.