The developers of Invidious, a privacy-respecting alternative front-end for YouTube, have received a cease-and-desist notice from YouTube’s legal department. The free and open source software, which provides a YouTube experience minus advertising and user tracking, has been instructed to shut down within seven days. As things stand, cooperation isn’t on the agenda.
It’s a pretty sad time for many such tools right now. Reddit is also killing third party apps and probably stuff like libreddit. Also Twitch seems to test out in stream commercials and tried to block streamlink some days ago.
I guess the good times for tools like that are coming to an end.
Will be interesting to see how this plays out. Since they are not using Youtubes API I don’t know how the law will proceed. I can say that it would appear that Invidious is more subject to copyright violations than recourse from Youtube itself.
Well, by letter of the law it would be total for sure, both API and copyright claims…
Coz otherwise all people using tube would be violators of copyright by default.
I don’t use this anymore, got sick of streaming and buffering.
I use this now:
#!/bin/bash
# Directory for downloaded videos:
DL_DIR="$HOME/Videos/temp"
# Video player:
PLAYER="xdg-open"
#PLAYER="/usr/bin/mpv"
#PLAYER="/usr/bin/smplayer"
# Downloader and options:
YTDL="$HOME/bin/yt-dlp"
YTDL_OPTS=(--no-playlist --throttled-rate=100000 -N 10)
YTDL_DIR_OPTS=(-P "$DL_DIR")
set -e
CMD() {
printf "[CMD]: "
printf "\"%s\" " "$@"
printf "\n"
"$@"
}
# Get URL from clipboard if run without argument:
if [ -z "$1" ]; then
URL="$(xclip -o -sel c)"
CLEAR_CLIPBOARD=1
else
URL="$1"
fi
# Get video filename
printf "[URL]: %s\n" "$URL"
FILENAME=$("$YTDL" --get-filename "${YTDL_DIR_OPTS[@]}" "$URL")
printf "[FILE]: %s\n" "$FILENAME"
# Download video
CMD "$YTDL" "${YTDL_OPTS[@]}" "${YTDL_DIR_OPTS[@]}" "$URL"
# Play video
CMD "$PLAYER" "$FILENAME" >/dev/null 2>&1
# OPTIONAL clear clipboard (KDE only)
if (($CLEAR_CLIPBOARD)); then
CMD qdbus org.kde.klipper /klipper org.kde.klipper.klipper.clearClipboardHistory
fi
To use it, I just copy the URL to the clipboard, and run the script above (I have a keybinding Meta+V for it).
Every video that I watch gets saved in $HOME/Videos/temp directory. I manually wipe it clean every couple of days. You can easily change the script to save videos to /tmp, so that they get removed automatically on reboot, but I like to keep them, storage is cheap.
A comment about this line:
YTDL="$HOME/bin/yt-dlp"
I don’t use yt-dlp from the repos, I simply cloned the master branch from the official git repo somewhere in my home directory and then symlinked the executable to $HOME/bin/yt-dlp. This is because yt-dlp often gets broken (scumbags at YouTube often intentionally change their API to break it), and I don’t like to wait until it gets updated in the repos (Arch is simply not enough bleeding edge for me ). So I just manually run git pull to update it when it breaks.
To download I use the below script which probably also is yours but an earlier revision I guess.
#!/bin/sh
# ytp - a simple script that downloads and plays a video!
# No buffering, no telemetry, no ads, and you get to keep the video locally
# Modify these variables as needed:
# Directory for downloaded videos:
DIR="$HOME/ramdisk"
# Video player:
PLAYER="xdg-open"
#PLAYER="/usr/bin/mpv"
# Downloader and options:
YTDL="/usr/bin/yt-dlp"
YTDLOPTS="--no-playlist"
YTDIROPTS="-P "$DIR""
set -e
# Get URL from clipboard if run without argument:
if [ -z "$1" ]; then
URL="$(xclip -o -sel c)"
else
URL="$1"
fi
# Get video filename
printf "[URL]: %s\n" "$URL"
FILENAME=$("$YTDL" "--get-filename" "$YTDIROPTS" "$URL")
printf "[FILE]: %s\n" "$FILENAME"
# Download video
printf "[CMD]: \"%s\" \"%s\" \"%s\" \"%s\"\n" "$YTDL" "$YTDLOPTS" "$YTDIROPTS" "$URL"
"$YTDL" "$YTDLOPTS" "$YTDIROPTS" "$URL"
# Play video
printf "[CMD]: \"%s\" \"%s\" >/dev/null 2>&1\n" "$PLAYER" "$FILENAME"
"$PLAYER" "$FILENAME" >/dev/null 2>&1