Add max number of download video limit

This commit is contained in:
Yan Lin 2025-10-04 20:07:02 +02:00
parent 6fc2f855fe
commit bef2233ee9

View file

@ -178,22 +178,43 @@ in
# YouTube single video download # YouTube single video download
download-youtube() { download-youtube() {
local url="$*" local max_downloads=""
local url=""
# Parse arguments
while [[ $# -gt 0 ]]; do
case "$1" in
-n|--max)
max_downloads="$2"
shift 2
;;
*)
url="$url $1"
shift
;;
esac
done
url="''${url## }" # Trim leading space
if [[ -z "$url" ]]; then if [[ -z "$url" ]]; then
echo "Usage: dl-yt <url>" echo "Usage: dl-yt [-n|--max <number>] <url>"
echo " -n, --max <number> Limit number of videos to process (useful for channels/playlists)"
return 1 return 1
fi fi
local cookies_file="$HOME/.config/yt-dlp/cookies-youtube.txt" local cookies_file="$HOME/.config/yt-dlp/cookies-youtube.txt"
local temp_cookies=$(_setup_temp_cookies "$cookies_file") local temp_cookies=$(_setup_temp_cookies "$cookies_file")
local output_template="$DOWNLOAD_DIR/YouTube/%(uploader|)s/%(upload_date>%Y%m%d|)s-%(title)s.%(ext)s" local output_template="$DOWNLOAD_DIR/YouTube/%(uploader|)s/%(upload_date>%Y%m%d|)s-%(title)s.%(ext)s"
local archive_file="$DOWNLOAD_DIR/.archive.txt" local archive_file="$DOWNLOAD_DIR/.archive.txt"
mkdir -p "$DOWNLOAD_DIR" mkdir -p "$DOWNLOAD_DIR"
echo "Downloading YouTube video..." echo "Downloading YouTube video..."
[[ -n "$max_downloads" ]] && echo "Processing max $max_downloads videos"
echo "Output directory: $DOWNLOAD_DIR/YouTube" echo "Output directory: $DOWNLOAD_DIR/YouTube"
local cmd="yt-dlp --match-filter 'duration >? 60'" local cmd="yt-dlp --match-filter 'duration >? 60'"
[[ -n "$max_downloads" ]] && cmd="$cmd --playlist-end '$max_downloads'"
[[ -n "$temp_cookies" ]] && cmd="$cmd --cookies '$temp_cookies'" || cmd="$cmd --no-cookies" [[ -n "$temp_cookies" ]] && cmd="$cmd --cookies '$temp_cookies'" || cmd="$cmd --no-cookies"
cmd="$cmd --download-archive '$archive_file' -o '$output_template' '$url'" cmd="$cmd --download-archive '$archive_file' -o '$output_template' '$url'"