Comment on Youtube has fully blocked Invidious

<- View Parent
webghost0101@sopuli.xyz ⁨1⁩ ⁨month⁩ ago

Another 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

source
Sort:hotnewtop