Réponse de ChatGPT
Note : "\" est le symbole de retour à la ligne dans Linux. Dans Windows, remplacer ce signe par "^".
- conteneur : MP4
- vidéo : H.264
(
avc1) - audio : AAC
(
mp4a) - fusionné automatiquement
utilise :
yt-dlp -f "bv*[vcodec*=avc1]+ba[acodec*=mp4a]/b[ext=mp4]" \
--merge-output-format mp4 \
-o "%(title)s.%(ext)s" \
URL_YOUTUBE
Exemple :
yt-dlp -f "bv*[vcodec*=avc1]+ba[acodec*=mp4a]/b[ext=mp4]" \
--merge-output-format mp4 \
-o "%(title)s.%(ext)s" \
https://www.youtube.com/watch?v=XXXXXXXXXXX
Explication rapide :
bv*= meilleure vidéovcodec*=avc1= force H.264ba= meilleur audioacodec*=mp4a= force AAC--merge-output-format mp4= sortie finale en.mp4
Vérifier FFmpeg :
ffmpeg -version
Vérifier les formats disponibles d’une vidéo :
yt-dlp -F URL_YOUTUBE
Si la vidéo n’existe pas en H.264/AAC sur YouTube, tu peux forcer une conversion après téléchargement :
yt-dlp -f bestvideo+bestaudio --merge-output-format mkv -o temp.%(ext)s URL
ffmpeg -i temp.mkv -c:v libx264 -c:a aac -movflags +faststart video_finale.mp4
Tu peux aussi définir ce comportement par
défaut dans un fichier de config yt-dlp.conf :
-f "bv*[vcodec*=avc1]+ba[acodec*=mp4a]/b[ext=mp4]"
--merge-output-format mp4
-o "%(title)s.%(ext)s"
Pour télécharger aussi les sous-titres avec
yt-dlp, tu as plusieurs options.
1. Télécharger les sous-titres séparément
yt-dlp \
-f "bv*[vcodec*=avc1]+ba[acodec*=mp4a]/b[ext=mp4]" \
--write-subs \
--sub-langs fr,en \
--merge-output-format mp4 \
URL
Ça produit :
video.mp4video.fr.vttvideo.en.vtt
2. Intégrer (muxer) les sous-titres dans le MP4
yt-dlp \
-f "bv*[vcodec*=avc1]+ba[acodec*=mp4a]/b[ext=mp4]" \
--write-subs \
--sub-langs fr \
--embed-subs \
--convert-subs srt \
--merge-output-format mp4 \
URL
Options importantes :
--embed-subs→ intègre les sous-titres dans la vidéo--convert-subs srt→ convertit les.vttYouTube en.srt
3. Intégrer les sous-titres directement “gravés” dans l’image
Là il faut réencoder avec FFmpeg :
ffmpeg -i video.mp4 -vf subtitles=video.fr.srt \
-c:v libx264 -c:a copy sortie.mp4
Différence :
embed-subs= sous-titres activables dans le lecteursubtitles== sous-titres incrustés définitivement
4. Télécharger les sous-titres automatiques YouTube
yt-dlp --write-auto-subs --sub-langs fr URL
ou combiné :
yt-dlp \
-f "bv*[vcodec*=avc1]+ba[acodec*=mp4a]/b[ext=mp4]" \
--write-auto-subs \
--embed-subs \
--sub-langs fr \
URL
5. Voir les langues disponibles
yt-dlp --list-subs URL
Tu verras par exemple :
fr
en
en-orig
fr-auto
fr= sous-titres humainsfr-auto= générés automatiquement par YouTube
Note : "\" est le symbole de retour à la ligne dans Linux. Dans Windows, remplacer ce signe par "^".
Oui, cette commande est correcte
Et les ^ indiquent que tu es sous Windows (cmd.exe), donc la syntaxe est bonne.
Version propre :
yt-dlp ^
-f "bv*[vcodec*=avc1]+ba[acodec*=mp4a]/b[ext=mp4]" ^
--write-subs ^
--write-auto-subs ^
--sub-langs fr ^
--embed-subs ^
--convert-subs srt ^
--merge-output-format mp4 ^
URL
Ce que ça fait :
- télécharge en H264 + AAC si possible
- télécharge les sous-titres FR
- récupère aussi les sous-titres automatiques si les vrais n’existent pas
- convertit les
sous-titres en
.srt - les intègre dans le MP4
- produit un
fichier final
.mp4
Tu peux encore améliorer avec :
--embed-metadata
--embed-thumbnail
Exemple complet :
yt-dlp ^
-f "bv*[vcodec*=avc1]+ba[acodec*=mp4a]/b[ext=mp4]" ^
--write-subs ^
--write-auto-subs ^
--sub-langs fr ^
--embed-subs ^
--convert-subs srt ^
--embed-metadata ^
--embed-thumbnail ^
--merge-output-format mp4 ^
URL
Et si tu veux automatiquement préférer les sous-titres humains plutôt que les auto-générés :
--sub-langs "fr.*,fr"
Très utile sur YouTube où les pistes peuvent être nommées :
frfr-FRfr-orig- etc.
Oui.
Dans ce cas,
le plus simple est de faire :
- téléchargement vidéo + sous-titres
- conversion des
sous-titres en
.srt - incrustation (“burn-in”) avec FFmpeg
en une seule ligne Windows cmd.
Exemple complet :
yt-dlp ^
-f "bv*[vcodec*=avc1]+ba[acodec*=mp4a]/b[ext=mp4]" ^
--write-subs ^
--write-auto-subs ^
--sub-langs fr ^
--convert-subs srt ^
-o "video.%(ext)s" ^
URL ^
&& ffmpeg -i "video.mp4" ^
-vf "subtitles='video.fr.srt'" ^
-c:v libx264 ^
-c:a copy ^
-movflags +faststart ^
"video_final.mp4"
Ce que ça fait :
- télécharge la vidéo en MP4 H264/AAC
- récupère les sous-titres FR
- convertit en
.srt - grave définitivement les sous-titres dans l’image
- garde l’audio
sans réencodage (
-c:a copy)
Si les sous-titres sont automatiques (fr-auto) :
-vf "subtitles='video.fr-auto.srt'"
Version plus robuste avec nom automatique :
yt-dlp ^
-f "bv*[vcodec*=avc1]+ba[acodec*=mp4a]/b[ext=mp4]" ^
--write-subs ^
--write-auto-subs ^
--sub-langs "fr.*,fr" ^
--convert-subs srt ^
-o "%(title)s.%(ext)s" ^
URL
Puis :
ffmpeg -i "TitreVideo.mp4" ^
-vf "subtitles='TitreVideo.fr.srt'" ^
-c:v libx264 ^
-c:a copy ^
"TitreVideo_subs.mp4"
Important sous Windows :
Si le chemin contient des accents ou espaces, préfère :
-vf "subtitles='C\\:/Videos/video.fr.srt'"
FFmpeg aime mieux les / que les \.
Tu peux aussi améliorer le style des sous-titres :
-vf "subtitles='video.fr.srt':force_style='FontSize=18,PrimaryColour=&HFFFFFF&,OutlineColour=&H000000&,BorderStyle=3'"
Ça permet :
- taille
- couleur
- contour noir
- ombre
- police ASS/SSA style libass