• 21 Posts
  • 1.49K Comments
Joined 1 year ago
cake
Cake day: July 20th, 2023

help-circle


  • 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 with cron. I also attempted to filter out live vids and shorts.

    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
    
















  • I am exhausted 24/7 but i am still showing up for work because i can’t afford not too. Climate science is pretty bleak, were on the brink of ending the existence of our and other species (though indeed the planet will likely survive this)

    We do not need to eat live-animal meat anymore, alternatives (like labgrown meat mentioned in the article) exists and are doable. The only reason we can’t have it is because of strict laws supported by bigmeat lobbyists. Italy has banned alternatives because they are convinced it cant TASTE as good as real FLESH. That is a choice.

    Humanity is developed enough to make such choices and we are living one of them right now, and it ain’t a morally defendable one.

    I love to eat meat btw, i don’t think i could handle being vegetarian.