it’s not an option to even download an image, I have to screenshot, now what screen record videos?

  • beanlover [he/him, she/her]@hexbear.net
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 day ago

    I’m not sure what the best solution will be for you. I think you can enable a 3rd-party repository that contains the most up-to-date version of yt-dlp.

    It’s been discussed in the Mint forums, but they block my VPN from accessing the site :)

    https://forums.linuxmint.com/viewtopic.php?t=450307

    https://forums.linuxmint.com/viewtopic.php?t=440928

    If you are curious, this is how I use yt-dlp. Effort-post incoming, beware, and bare with me. It might seem complicated but I tried my best to simplify.


    When I run echo $PATH on my system, I see this:

    username@somepc:~$ echo $PATH
    /var/home/username/.local/bin:/var/home/username/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin
    

    Your PATH might look more like /home/username/.local/bin.

    * If it does not include a /.local/bin, maybe send me your $PATH and I can recommend a substitution instead.

    What this means, is that any EXECUTABLE inside these directories will be executed if typed from the command line.


    So in order, you do this (yes, literally, $HOME, the terminal will convert that to your home directory):

    • python3 -m venv "$HOME/.local/yt-dlp-venv" (create a virtual space for python3 outside of apt)
    • source $HOME/.local/yt-dlp-venv/bin/activate (toggle the virtual space for python3 for the duration of the current terminal window)
    • python3 -m pip install yt-dlp (install yt-dlp module inside the virtual space)

     

    nano $HOME/.local/bin/yt-dlp, paste this inside:

    #!/usr/bin/env bash
    
    source $HOME/.local/yt-dlp-venv/bin/activate
    pip install --upgrade yt-dlp
    yt-dlp "$@"
    

    You can use CTRL+O and CTRL+X to save and then quit.

    • chmod +x $HOME/.local/bin/yt-dlp (give yourself permission to eXecute the command)

     

    Now any time you run yt-dlp from the terminal, it will search all of those directories inside $PATH until it finds yt-dlp. It will find your custom script, and correctly run the python venv’s version of yt-dlp with any of the arguments you supplied.


    If you noticed and are curious, yt-dlp inside of $HOME/.local/bin/yt-dlp doesn’t cause an infinite loop of it calling itself over and over again. Why? Because when you do source $HOME/.local/yt-dlp-venv/bin/activate, it changes your $PATH!

    (yt-dlp-venv) username@somepc:~$ echo $PATH
    /var/home/username/.local/yt-dlp-venv/bin:/var/home/username/.local/bin:/var/home/username/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin
    

    Because the real yt-dlp exists inside $HOME/.local/yt-dlp-venv/bin, it finds the executable first instead of the one inside $HOME/.local/bin

    • Ildsaye [they/them]@hexbear.net
      link
      fedilink
      English
      arrow-up
      0
      ·
      15 hours ago

      Thank you, I found this way before I saw your reply, although I have to sudo to run this installation of yt-dlp, which seems not ideal from a security perspective:

      wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O ~/Downloads/yt-dlp
      chmod a+rx ~/Downloads/yt-dlp
      sudo mv -v ~/Downloads/yt-dlp /usr/local/bin sudo yt-dlp --update
      yt-dlp --version

      Since you went to the effort and I do want to understand my system better, I will study your explanation closely even though my video downloading woes are solved.

        • Ildsaye [they/them]@hexbear.net
          link
          fedilink
          English
          arrow-up
          1
          ·
          5 hours ago

          -rwxrwxr-x 1 [device name appears 2x] 3072469 Aug 19 18:48 /usr/local/bin/yt-dlp

          I don’t know what the strings of letters or numbers mean. The date appears to be the yt-dlp version, than after that its directory.