Comment on Youtube has fully blocked Invidious
webghost0101@sopuli.xyz 1 month agoAnother example, which i can personally verify has been working fine for months. It works a bit different to the above, it downloads the latests 2* vids that are not already downloaded and runs once every hour.
Channels i am “subscribed” too are stored in a single text file, it also uses the avc1 codec because i found p9 and p10 had issues with the jellyfin client on my tv
looks like this, i added categories but i don’t actually use them in the script besides putting them in a variable, lol. Vid-limit is how many of the latests vids it should look at to download. The original reason i implemented that is so i could selectively download a bulk of latests vids if i wanted to.
Cat=Science Name=Vertitasium VidLimit=2 URL=https://www.youtube.com/channel/UCHnyfMqiRRG1u-2MsSQLbXA Cat=Minecraft Name=EthosLab VidLimit=2 URL=https://www.youtube.com/channel/UCFKDEp9si4RmHFWJW1vYsMA
#!/bin/bash # Define the directory to store channel lists and scripts script_dir="/.../YTDL" # Define the base directory to store downloaded videos base_download_dir="/.../youtubevids" # Change to the script directory cd "$script_dir" # Parse the Channels.txt file and process each channel awk -F'=' ' /^Cat/ {Cat=$2} /^Name/ {Name=$2} /^VidLimit/ {VidLimit=$2} /^URL/ {URL=$2; print Cat, Name, VidLimit, URL} ' "$script_dir/Channels.txt" | while read -r Cat Name VidLimit URL; do # Define the download directory for this channel download_dir="$base_download_dir" # Define the download archive file for this channel archive_file="$script_dir/DLarchive$Name.txt" # Create the download directory if it does not exist mkdir -p "$download_dir" # If VidLimit is "ALL", set playlist_end option to empty, otherwise set it to --playlist-end <VidLimit> playlist_end_option="" if [[ $VidLimit != "ALL" ]]; then playlist_end_option="--playlist-end $VidLimit" fi yt-dlp \ --download-archive "$archive_file" \ $playlist_end_option \ --write-description \ --write-thumbnail \ --convert-thumbnails jpg \ --add-metadata \ --embed-thumbnail \ --match-filter "!is_live & !was_live & original_url!*=/shorts/" \ --merge-output-format mp4 \ --format "bestvideo[vcodec^=avc1]+bestaudio[ext=m4a]/best[ext=mp4]/best" \ --output "$download_dir/${Name} - %(title)s.%(ext)s" \ "$URL" done
Gutless2615@ttrpg.network 1 month ago
Yeah this is more elegant and closer to what I’d actually want to implement. I was more just showing what could be done in literally thirty seconds on the can with ChatGPT.
webghost0101@sopuli.xyz 1 month ago
I knew i recognized that output.
Mine is actually also made with the help of Chatgpt but manually refined and tested.