{ pkgs, ... }: { home.packages = with pkgs; [ yt-dlp ]; xdg.configFile."yt-dlp/config".source = pkgs.writeText "config" '' # Preferred formats: # 1. 1080p, combined, mp4 (for some non-youtube sites). # 2. 1080p, combined, any format (in case mp4 is not available). # 3. 1080p, best video + best audio (only available with separate video and audio on youtube). # 4. >30fps (any resolution), best video + best audio (only available with separate video and audio on youtube). # 5. 720p, pre-joined, because it is available on youtube. # 6. <720p, best video + best audio (480p and some other lower resolutions are only available with separate video and audio on youtube). # 7. When all else fails, take whatever youtube-dl thinks is the best (mainly for non-YT websites). --format="best[height=1080][ext=mp4]/best[height=1080]/bestvideo[height=1080][ext=mp4]+bestaudio[ext=m4a]/bestvideo[fps>30][ext=mp4]+bestaudio[ext=m4a]/best[height=720][ext=mp4]/bestvideo[ext=mp4]+bestaudio[ext=m4a]/best" --continue --sub-langs all --write-subs --convert-subs=srt --restrict-filenames --output="$HOME/media/videos/%(uploader)s/%(playlist)s/%(upload_date)s-%(title)s.%(ext)s" --merge-output-format mkv --embed-metadata --embed-chapters --embed-info-json # create chapter entries to mark sponsor segments --sponsorblock-mark all --yes-playlist ''; }