Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I did it just today to convert a Filipino movie I yt-dlp'd from WebM to MP4. Teen me would be so excited by this excellent new world of ours.


But but, yt-dlp can download it to .MP4 or .mkv already? It invokes ffmpeg during its final steps.


I always do

  yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best"
Not sure if there is a better way, ideally I would just like it to always default to that.


You can put these options in a config file and they will become the default: https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#configur...


As the sibling poster said, you can and should configure `yt-dlp`. Here are the contents of my config file:

    --restrict-filenames
    --output '%(title)s.%(ext)s'
    --ignore-errors
    --embed-subs
    --all-subs
    --sub-langs all,-live_chat
    --compat-options no-live-chat
    --convert-subs srt
    --format 'vcodec=av01/bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'
    --convert-thumbnails jpg
    --embed-thumbnail
    --audio-quality 0
    --add-metadata
    --xattrs
    --xattr-set-filesize
    --prefer-free-formats
    --geo-bypass
    --no-mark-watched
    --console-title
    --no-warnings
    --sponsorblock-remove all
    --compat-options embed-thumbnail-atomicparsley
You can look them up on the README. It's quite a bit of work, granted, but to me it was very worth it.


Wow thank you for sharing! I might just use yours, looks almost exactly like what I would want.

yt-dlp really is a great tool too, I do hope it keeps working for a long time


> ext=mp4

> prefer-free-formats

Are you entirely sure you know what you are doing?


Did you miss the "prefer" word? ;)


I'll take that as a no.


(Comment 3 / 3)

And finally, after some more tests it turned out that some videos have almost 2x bigger .webm variants than .mp4 so I had to extend my yt-dlp config like so (only showing the prioritization options here, my previous full config is still there upthread):

    --format 'vcodec=av01/bestvideo*+bestaudio/best'
    --format-sort 'quality,res,fps,hdr:12,vcodec:av01,channels,acodec,abr,asr,proto,ext,hasaud,source,id'
    --prefer-free-formats
This:

1. Prioritizes AV1 (because it's gaining more and more hardware support, is very efficient and is not license-encumbered)

2. Prefers the free formats

3. ...but still uses a non-free format if it's smaller.

Or at least that's what I believed in after testing on 7 videos that have obvious winners either way.


...OK, you made me double-check. Used this instead:

    --format 'vcodec=av01/bestvideo*+bestaudio/best'
And it started downloading `.webm` streams and not `.mp4` (only one video had an AV1 stream). Tested with several videos, quality is the same and some files are actually 40% smaller.

...Whoa. Thanks for making me double-check!

Somebody down-voted you, I seem to recall seeing earlier, sorry about that. Your comment was valuable, though I'd definitely use more productive tone next time.


I am half-aware of the licensing troubles of various video formats but I wish those companies luck going after each and every home video user. ¯\_(ツ)_/¯




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: