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?

  • @[email protected]
    link
    fedilink
    English
    76 months ago

    I download it with yt-dlp and watch it with a video player. that way they don’t know at what pace do I watch it (when do I rewind and pause, or speed up).

    or grayjay when I remember that it exists.
    other options for me include FreeTube and NewPipe

      • @[email protected]
        link
        fedilink
        English
        16 months ago

        yeah unfortunately, but what can I do. you can’t download through inv/piped with yt-dlp anyway, because it just recognizes the youtube proxy and then goes direct to youtube

  • @[email protected]
    link
    fedilink
    86 months 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]
    link
    fedilink
    26 months ago

    Searching Videos on FreeTube but watching these in the SMplayer, because FreeTube lists theVideos, but often don’t play it. SMplayer works almost always, Also possible open the Video copying the URL in it. Another possibility is searching the Video with Andisearch and watch it there in the search results sandboxed and anonym with the random proxies which use Andisearch.

  • @[email protected]
    link
    fedilink
    English
    1
    edit-2
    6 months ago

    I personally use libretube (with piped proxy disabled in settings) with proton vpn. If it shows the “sign in to confrim your not a bot” mesaage I just swap vpn servers.

  • Stomata
    link
    fedilink
    English
    1
    edit-2
    6 months ago

    I use a bot on mastodon named [email protected] . It sends me a link of new videos from creators I follow.I directly open the link with Tubular (newpipe fork) or freetube and download it to watch later.

  • Read Bio
    link
    fedilink
    English
    36 months ago

    Tubular on on mobile and trying to find a Non Electron app for pc

  • ohellidk
    link
    fedilink
    English
    26 months ago

    Newpipe still up as of this morning. Hope it stays that way.

  • Karyoplasma
    link
    fedilink
    76 months ago

    yt-dlp

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

    • @[email protected]
      link
      fedilink
      66 months ago

      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]
          link
          fedilink
          1
          edit-2
          6 months ago

          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.

          • Karyoplasma
            link
            fedilink
            2
            edit-2
            6 months ago

            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]
      link
      fedilink
      English
      16 months ago

      Why? That basically means they track you the same, but with lots if extra steps.

      Unless you use a VPN and then you’re back to the same problem again.

      • @[email protected]
        link
        fedilink
        26 months ago

        I am not the full expert on the subject, but I assume the profiling is to a lesser extent. For one you don’t browse within a Google account.

        I also like the slimmed down UI and subscription management of invidious compared to yt.

        And don’t forget no ads and sponsorblock. Although some add ons like vinegar for safari get you pretty close to uninterrupted viewing.

        All said, probably not the best in regards to pure privacy.