this post was submitted on 28 Dec 2024
92 points (98.9% liked)

Privacy

32560 readers
305 users here now

A place to discuss privacy and freedom in the digital world.

Privacy has become a very important issue in modern society, with companies and governments constantly abusing their power, more and more people are waking up to the importance of digital privacy.

In this community everyone is welcome to post links and discuss topics related to privacy.

Some Rules

Related communities

much thanks to @gary_host_laptop for the logo design :)

founded 5 years ago
MODERATORS
 

Many YT privacy frontends are down it seems. YouTube is cracking down on these servers fast. Both Invidious and Piped services are not working now.

So how are you watching videos now? Just plain youtube[dot]com with unblock and VPN?

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 6 points 2 days ago (1 children)
[–] [email protected] 2 points 2 days ago (1 children)

I personally think Freetube is the best for desktop right now. Recently, there is also grayjay for desktop. The UI is still buggy IMO, but also seem promising.

[–] [email protected] 4 points 2 days ago (1 children)
[–] [email protected] 2 points 2 days ago (1 children)

That is a fair point. Source first software isn't a part of FLOSS, but even in worst case scenarios it still can be considered as "source available". Which is better in term of transparency compared to closed source App. OP asked for "private" way to watch Youtube not open source way, so I think grayjay could still be a great choice. We are talking about watching from YouTube which is a corpo closed source spyware anyway.

[–] [email protected] 2 points 2 days ago

but wait a second. Privacy is good because it is a Freedom. And because it make Freedom as a whole more possible. But using software with which you have no freedom, kind of defeats the purpose. Like you gain +1 freedom points and lose -1 freedom points. It's net zero.

Transparency is good to see privacy, but if it is not Libre, you are not gaining any freedom.

I just woke up, I don't know if I am making any sense

[–] [email protected] 37 points 5 days ago (1 children)
[–] [email protected] 9 points 5 days ago* (last edited 5 days ago) (1 children)

I've had a good experience with GrayJay. It's a bit young and missing features but it's never broken for me.

[–] [email protected] 7 points 5 days ago* (last edited 5 days ago) (1 children)

Btw, they also have a desktop app, but it’s currently in beta.

FreeTube is more stable for desktop.

[–] [email protected] 6 points 5 days ago (2 children)

I've been using their GrayJay desktop app, and I've enjoyed it so far.

I haven't checked out FreeTube but maybe this is the push I need.

load more comments (2 replies)
[–] [email protected] 7 points 4 days ago* (last edited 4 days ago)

FreeTube is a useful project as it allows you to "fallback" on a non-preferred frontend.

https://github.com/FreeTubeApp/FreeTube

This allows you to continue to use Youtube irregardless of which frontend is (potentially not) working.

In 'Settings > General' you'll want to select "Invidious API" as your "Preferred API backend" and specify your favorite invidious instance in the "Current Invidious Instance" field and click "Set Current Instance as Default". This locks FreeTube into the specified instance.

Then, when you notice that FreeTube is issuing notices to you about your favorite Invidious Instance being down, you can wander back to 'Settings > General'; hit the "Clear Default Invidious Instance" Button and wait as FreeTube magically contacts the "https://api.invidious.io/" page for you and selects a new, and hopefully online and working Invidious instance. (You may have to hit this button several times to roll a working instance, Hit the button, check the subs page and see if everything loads, repeat if it falls back on the Local API.)

When you run into instances where you can't roll up a good Invidious instance; the built in Local API is running a NewPipe Extractor like API directly from your FreeTube client. Not the best; but at least it keeps things working while you wait for the Invidious devs to fix things up; and it still reasonably preserves as much of your privacy as it can while doing this to the best effort it can.

...Sadly this doesn't work when Google manages a double combo of breaking both Invidious and NewPipe; but I have found that this is less often the case and the devs of either project are usually fairly quick about getting fixes out. Bless their hard work with a donation sometime maybe, if you can.

[–] [email protected] 24 points 5 days ago (1 children)

At this point we should just start torrenting YouTube. Like fuck YouTube.

[–] [email protected] 22 points 5 days ago (11 children)

At this point we should just ditch YouTube entirely, but alas.

[–] [email protected] 5 points 5 days ago

I kinda assumed Vimeo would step up its social aspects when YouTube started ratcheting up its bullshit. Still waiting.

load more comments (10 replies)
[–] [email protected] 22 points 5 days ago (1 children)

I've been avoiding Youtube content altogether, I ditched it completely.

However, it seems like yt-dlp does the job even when all Indivious instances are being blocked.

[–] [email protected] 8 points 5 days ago (1 children)

Reject inefficient video data transfer. Return to kb sized articles you can analyze at your own pace.

[–] [email protected] 5 points 5 days ago

Sometimes (although rarely) I watch some videos on Odyssee. I try to avoid it too, because of some of its downsides, but it's better than YouTube because it has no ads, no need for login to watch, and videos can be easily downloaded without complains from the platform.

However, yeah, texts are way better. Internet used to be textual. Text allows for personal annotations, just like the grand old book annotations.

[–] [email protected] 15 points 5 days ago

Close the door, turn off the lights, wear earbuds, pull a duvet over your head. Works every time. Might look a bit suspicious, but at least it's private.

Seriously though, it's getting pretty bad. I'm currently shifting my video watching habits away from YT. I have a feeling that sooner rather than later I may have to quit YT completely.

[–] [email protected] 6 points 4 days ago

New pipe android app. Been using it for years with no issues accessing YouTube.

[–] [email protected] 5 points 4 days ago

I use grayjay as you can use a google account to bypass the "confirm your not a bot" but then have the ability to subscribe, comment, and save video playback without a google account.

[–] [email protected] 13 points 5 days ago* (last edited 5 days ago) (6 children)

There are several way, honestly. For Android, there's NewPipe. The app itself fetches the YouTube data. For PC, there are similar applications that do the same such FreeTube. Those are the solutions I recommend.

If you're one of those, you can also host your own Invidious and/or Piped instances. But I like NewPipe and FeeTube better.

[–] [email protected] -1 points 2 days ago (1 children)

NewPipe needs VPN or Tor for privacy which usually gets blocked

[–] [email protected] 1 points 1 day ago* (last edited 1 day ago)

That really depends on your threat model. The app isn't monitoring your activity or has imbedded trackers. It pulls content directly from YouTube's CDN. All they (Google) know is your IP address, but nothing else. For 99.9% of people that's totally ok.

load more comments (5 replies)
[–] [email protected] 8 points 5 days ago

Freetube and Grayjay. Grayjay has a desktop app now.

[–] [email protected] 11 points 5 days ago

i just search it on dukdukgo and use their viewer

[–] [email protected] 12 points 5 days ago

Just firefox with ublock origin.

[–] [email protected] 10 points 5 days ago (2 children)
load more comments (2 replies)
[–] [email protected] 8 points 5 days ago* (last edited 5 days ago) (2 children)

You can still use yt-dlp with most of the invidious instances that are still up, but not displaying the video for some reason. Just copy the URL and use it with yt-dlp from the command line. All still works, sponsor block and all.

On my android phone I use either invidious with seal(yt-dlp wrapper app) or tubular (fork of newpipe with sponsor block).

load more comments (2 replies)
[–] [email protected] 5 points 5 days ago

I download the videos I want to watch with yt-dlp. This applies to audio as well. I then add the videos to my Jellyfin server to watch them on the TV.

[–] [email protected] 7 points 5 days ago (1 children)

yt-dlp

Downside is that you'll have to regularly delete all the videos you've downloaded.

[–] [email protected] 5 points 5 days ago (1 children)

Use yt-dlp URL -o - | mpv - This way the video goes directly to mpv without using the disk, avoiding the need to delete. It should work with other viewers as well.

[–] [email protected] 2 points 4 days ago (1 children)

Awesome, works with VLC as well. Thanks.

[–] [email protected] 1 points 3 days ago* (last edited 3 days ago) (1 children)

Another thing that I do is make an alias: alias pvid="yt-dlp $(xsel -b) -o - | mpv -". Install xsel first, xsel -b pastes what's in the clipboard. So you only have to copy the URL and execute pvid, no need to paste. Or even better make an app that executes that command and put it in the taskbar. You only have to click it after copying.

[–] [email protected] 2 points 3 days ago* (last edited 3 days ago) (1 children)

I wrote myself a Chrome add-on that adds a context menu entry to play or download links.

background.js

chrome.runtime.onInstalled.addListener(() => {
		
    chrome.contextMenus.create({
        id: "processLink",
        title: "Download as...",
        contexts: ["link"]
    });

    chrome.contextMenus.create({
        id: "720p",
        parentId: "processLink",
        title: "720p",
        contexts: ["link"]
    });

    chrome.contextMenus.create({
        id: "music",
        parentId: "processLink",
        title: "MP3",
        contexts: ["link"]
    });

    chrome.contextMenus.create({
        id: "maxQual",
        parentId: "processLink",
        title: "Maximum quality video",
        contexts: ["link"]
    });
	
    chrome.contextMenus.create({
        id: "separator1",
        parentId: "processLink",
        type: "separator",
        contexts: ["link"]
    });

    chrome.contextMenus.create({
        id: "piQual",
        parentId: "processLink",
        title: "30 fps for RPi",
        contexts: ["link"]
    });
	
    chrome.contextMenus.create({
        id: "separator2",
        parentId: "processLink",
        type: "separator",
        contexts: ["link"]
    });
	
    chrome.contextMenus.create({
        id: "streamLink",
        parentId: "processLink",
        title: "Stream to VLC...",
        contexts: ["link"]
    });
});

chrome.contextMenus.onClicked.addListener((info, tab) => {
    let linkUrl = info.linkUrl;

    if (info.menuItemId === "720p") {
        sendLinkToNativeApp(linkUrl, "video720");
    } else if (info.menuItemId === "music") {
        sendLinkToNativeApp(linkUrl, "music");
    } else if (info.menuItemId === "maxQual") {
        sendLinkToNativeApp(linkUrl, "videomp4");
    } else if (info.menuItemId === "piQual") {
        sendLinkToNativeApp(linkUrl, "video720p30");
    } else if (info.menuItemId === "streamLink") {
        sendLinkToNativeApp(linkUrl, "stream");
    }
});

function sendLinkToNativeApp(link, action) {
    console.log("Sending link to native app with action:", action, link);
    chrome.runtime.sendNativeMessage(
        'com.example.ytlink_processor',
        { link: link, action: action },
        function(response) {
            if (chrome.runtime.lastError) {
                console.error("Error:", chrome.runtime.lastError.message);
            } else {
                console.log("Received response from native app:", response.output);
            }
        }
    );
}

native_host.py (chatGPT wrote this because I can't Python)

import sys
import subprocess
import json
import struct

def log_to_file(message):
    with open("log.txt", "a") as log_file:
        log_file.write(message + "\n")

def get_message():
    raw_length = sys.stdin.read(4)
    if len(raw_length) == 0:
        sys.exit(0)
    message_length = struct.unpack('I', raw_length)[0]
    message = sys.stdin.read(message_length)
    return json.loads(message)

def send_message(message_content):
    message = json.dumps(message_content)
    sys.stdout.write(struct.pack('I', len(message)))
    sys.stdout.write(message)
    sys.stdout.flush()

def process_link(link, action):
    if action == "stream":
        cmd = 'yt-dlp --stream "{}" -o - | "D:/Programme/VLC/vlc.exe" -'.format(link)
    else:
        cmd = 'yt-dlp --{} "{}"'.format(action, link)
    result = subprocess.Popen('start cmd /c "{}"'.format(cmd), shell=True)
    return result.stdout + result.stderr

if __name__ == "__main__":
    message = get_message()
    link = message.get("link")
    action = message.get("action")
    if link and action:
        output = process_link(link, action)
        send_message({"output": output})

The actions are just aliases for different qualities (old pi, so 720p60 stutters at times), audio extraction, etc.

[–] [email protected] 2 points 3 days ago
[–] [email protected] 1 points 3 days ago (1 children)

Actually, I have never used piped and invidious to watch the videos themselves. I use them just as subscription feeds and in case I need to search for some video, then I toggle a script I have, I copy the links to the videos I want to watch and I untoggle the script. Then the links I copied start playing on mpv. I don't like to overload piped and invidious services, which I would say is the main reason for them to be shut down, when I can watch/download the video through mpv-ytdlp on my own. Although, I don't know if that answers your question.

[–] [email protected] 1 points 3 days ago

Yes its okay if you're using a VPN for downloading which makes your IP untraceable by Google Servers. Currently I am using freetube with VPN. But I need to choose a server that is not used by many for getting around 'you need to sign in' issue.

[–] scottmeme 6 points 5 days ago (4 children)
load more comments (4 replies)
[–] [email protected] 5 points 5 days ago

Hell, I'm having issues using the plain old YouTube website. It tries to make me sign in.

[–] [email protected] 5 points 5 days ago (2 children)
load more comments (2 replies)
load more comments
view more: next ›