Table des matières

Lire / Télécharger Youtube

Lire Youtube

On peut facilement lire des vidéos avec le lecteur mpv, comme ceci par exemple :

mpv https://www.youtube.com/watch?v=Ut6d6SaS3e4

Par contre, il se peut que la résolution de la vidéo vous bouffe toute votre petite bande passante misérable… alors pas de panique, voici la solution :

~/.config/mpv/mpv.conf
[1080p]
ytdl-format=bestvideo[height<=?1080]+bestaudio/best
 
[720p]
ytdl-format=bestvideo[height<=?720]+bestaudio/best
 
[480p]
ytdl-format=bestvideo[height<=?480]+bestaudio/best
 
[360p]
ytdl-format=bestvideo[height<=?360]+bestaudio/best

Je vous propose aussi d'insérer ces alias dans votre .bashrc :

alias ytmpv1080='mpv --profile=1080p'
alias ytmpv720='mpv --profile=720p'
alias ytmpv480='mpv --profile=480p'
alias ytmpv360='mpv --profile=360p'

Télécharger Youtube

Mais en voilà un wiki intéressant :p sachez que grâce à l'outil yt-dlp (dispos dans une majorité de dépots officiels, mais aussi avec python-pip) vous pouvez télécharger n'importe quelle vidéo de youtube dans n'importe quel format :)

Quelques exemples

yt-dlp URL # télécharge la vidéo URL comme elle est. Donc résolution audio/video au max
yt-dlp -x --audio-format mp3 URL # télécharge la vidéo au format mp3 (conversion avec ffmpeg)
 
yt-dlp -F URL # liste tous les format disponibles pour la vidéo
yt-dlp -f 22 URL # télécharge la vidéo dans le format n°22 listé précédemment
yt-dlp -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" URL # Numérote les titres téléchargés dans l'ordre de la playlist, et les met dans un dossier portant le nom de la playlist
 
yt-dlp -x --audio-format mp3 -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" URL # Combinaison permettant de télécharger une playlist complète au format mp3 (+numérote +dossier avec le nom de la playlist)

Enjoie ;)

Convertion Video / Audio

type convertionCommande
Caméscope MTS → MKV
ffmpeg -threads 8 -i "file.MTS" -codec:s copy -codec:v libx264 -codec:a copy "file.mkv"
WebM → MP3
ffmpeg -i "file.webm" -vn -ab 128k -ar 44100 -y "file.mp3"
mp3/m4a → wav
ffmpeg -i "file.mp3/m4a" "file.wav"
mp4 → mp3
ffmpeg -i "file.mp4" "file.mp3"
m4a → mp3
ffmpeg -i "file.m4a" -acodec libmp3lame -ab 128k "file.mp3"
wav → mp3
ffmpeg -i "file.wav" -acodec libmp3lame -ac 2 -ar 44100 -ab 256k -f mp3 "file.mp3"
mkv → mp4
ffmpeg -i "file.mkv" -c copy "file.mp4"

Boucle for pour convertir un ensemble de fichiers

Pour faire une convertion d'un ensemble de fichier, on utilise for. On récupère la commande dans le tableau au dessus, qu'on insère juste après for file in *.ext_in; do (en remplaçant .ext_in par l'extension source qui nous intéresse), à la place du file.ext_in source on met “$file”, à la place du file.ext_out destination on met “${file%.ext_in}.ext_out” et on ajoute ; done.

Je refais quand même un petit tableau :

type convertionCommande avec une boucle for pour traiter plusieurs fichiers
Caméscope MTS → MKV
for file in *.mts; do ffmpeg -threads 8 -i "$file" -codec:s copy -codec:v libx264 -codec:a copy "${file%.mts}.mkv"; done
WebM → MP3
for file in *.webm; do ffmpeg -i "$file" -vn -ab 128k -ar 44100 -y "${file%.webm}.mp3"; done
mp3/m4a → wav
for file in *.mp3/m4a; do ffmpeg -i "$file" "${file%.mp3/m4a}.wav"; done
mp4 → mp3
for file in *.mp4; do ffmpeg -i "$file" "${file%.mp4}.mp3"; done
m4a → mp3
for file in *.m4a; do ffmpeg -i "$file" -acodec libmp3lame -ab 128k "${file%.m4a}.mp3"; done
mkv → mp3
for file in *.mkv; do ffmpeg -i "$file" -vn -c:a libmp3lame "${file%.m4a}.mp3"; done
mkv → mp4
for file in *.mkv; do ffmpeg -i "$file" -c copy "${file%.mkv}.mp4"; done

Réduire la résolution

ffmpeg -y -r 20 -i input.mp4 -vf "scale=iw/2:ih/2" output.mp4
-yécrase si le fichier de sortie existe déjà
-rdéfinir un nombre de FPS
-vf “scale=iw/2:ih/2”réduit de moitié (/2) la largeur (iw) et la hauteur (ih). Ce nombre peut etre augmenté.

Recouper une vidéo (trim)

Attention il existe 2 méthodes pour couper une vidéo : une rapide et approximative (sans réencodage), et une lente et précise (avec réencodage).

Rapide approximative

La méthode rapide utilise le “input seeking”.

ffmpeg -i input.mp4 -ss 00:04:40 -to 01:25:37 -c copy output.mp4

Lente précise

La méthode précise est lente car elle réencode toute la vidéo. Mais cela nous permet de la recouper de façon très précise.

ffmpeg -i input.mp4 -ss 00:02:09 -to 00:29:17 -c:v libx264 -c:a copy output.mp4