diff options
| author | Franck Cuny <franck@fcuny.net> | 2023-05-05 19:41:58 -0700 |
|---|---|---|
| committer | Franck Cuny <franck@fcuny.net> | 2023-05-05 19:41:58 -0700 |
| commit | 43da9edb4598eef509c481ae0b305384418c45de (patch) | |
| tree | a0ad614c90102757143e026e4fe1806431a3dbf4 /home/profiles/ytdlp.nix | |
| parent | profiles/default: users are immutable (diff) | |
| download | infra-43da9edb4598eef509c481ae0b305384418c45de.tar.gz | |
home/profiles: move (almost) all modules to profiles
This is a major refactor, similar to what was done for the hosts, but in
a single commit.
Diffstat (limited to '')
| -rw-r--r-- | home/profiles/ytdlp.nix | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/home/profiles/ytdlp.nix b/home/profiles/ytdlp.nix new file mode 100644 index 0000000..ce2e32c --- /dev/null +++ b/home/profiles/ytdlp.nix @@ -0,0 +1,37 @@ +{ 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 + ''; +} |
