Spyke
biscuitreply
lemdro.id

Not in here, mister! This is a mercedes!

4

Oh shit I totally missed the reference, and I just recently watched that movie, oops!

4
XLEreply
piefed.social

This offends a lot of Mozilla stans, but Firefox isn't much better.

They have similar links to shady people, often the same shady people... That includes two friends of Jeffrey Epstein.

And Mozilla still engages in discrimination today.

From the linked document, describing an unneeded round of layoffs:

People from groups underrepresented in technology, like female leaders and persons of color, were disproportionately impacted by the [Mozilla's] layoff.

2
XLEreply
piefed.social

Mozilla Firefox isn't much better. They have similar links to shady people, often the same shady people... That includes two friends of Jeffrey Epstein.

And Mozilla still engages in discrimination today.

From the linked document, describing an unneeded round of layoffs:

People from groups underrepresented in technology, like female leaders and persons of color, were disproportionately impacted by the [Mozilla's] layoff.

-8
XLEreply
piefed.social

People here went from "Brave is problematic" to "haha unnecessary layoffs" in no time flat. What's with the performative cruelty all of a sudden?

2

Just because you close your eyes and imagine how you want the world to be doesn't make it the Truth son now go brush your teeth.

0
sh.itjust.works

Counterpoint, some websites behave better on chromium so using brave as last resort is not as bad.

-6
athatetreply
lemmy.zip

Use literally any other chrome based browser.

20
sh.itjust.works

I haven’t found one that blocks YouTube ads as well as brave does on iPhone.

Yes, I do have uBlock

0
lemmy.world

Vivaldi seems to block adds well to iOS too.

Really the best I've found is 1blocker for Safari, but I got that when the lifetime version was a only few dollars. No clue how limiting the free version is. (Imagine subscribing to an ad-blocker! - but than again, how many people donate to ublock?).

3
OrgunDonorreply
lemmy.world

Ublock Origin Lite is available for safari and blocks YouTube ads perfectly fine.

2

Vivaldi's ad blocker is really subpar compared to Brave or uBO. I tried using it for a while, and you have to tamper with filter lists (including disabling pre-approved advertisers) and it still fails in areas Brave doesn't.

2

There is no chromium on iOS, all the browsers are actually the Safari in a trench coat.

2
Barbuziereply
piefed.social

So which browser would you recommend? It looks like Firefox is the only one not based on Chromium

18
XLEreply
piefed.social

Firefox has some very good forks including Waterfox (pretty normal) and LibreWolf (pretty privacy-hardened out of the box and may require a little Settings menu tweaking to make normal).

It's unfortunate, but at the end of the day you kind of have to bite the bullet and accept that you will be using something downstream of something bad, e.g. Google (Chrome forks) or their money (Firefox is funded not by donations but by them).

23

Chrome forks aren't just tainted by Google's money; they're tainted by Google's power. Prefer a Firefox-derived browser if you care about web standards.

23
lemmy.world

Absolutely do not use Brave. Just use Firefox mobile as well, it has ublock origin, sponsorblock, and background play.

112

When did iOS get ublock origin and sponsorblock as extensions for FF?

Edit: To all the replies, I'm just pointing out that the guy above me is wrong. Yes, Brave is bad. But FF is not a good replacement for Brave if you want ad blocking on iOS because iOS doesn't support any browser extensions outside of Safari.

3

iOS doesn't support alternative browsers unless they use Webkit underneath which comes with limitations. You have to upgrade to a better OS for it to work, or wait for the tide to turn (the EU has already forced Apple to be more open here)

8

Yes, because "Firefox" on iOS is just Safari with a Firefox skin

3
XLEreply
piefed.social

I have yet to see a reason for not using Brave that wouldn't also apply to Firefox developer Mozilla. That includes appeals to morality, control from Big Tech, etc.

If Brave works (and on iOS it's basically the only option with a reliable ad blocker) then I don't see a reason to avoid it.

Would love to see somebody levy a complaint that doesn't also apply to Firefox. Any takers?

-2

That includes appeals to morality

I mean, you say that, and to some degree you're right, but you do know that the Brave CEO is the same person that brought JavaScript upon us, right?

^/j^

2
reddthat.com

It's still wild to me anyone uses or recommends Brave after their crypto scam and all their other shady dealings

48
Sustolicreply
lemmy.world

Unfortunately there are still close to 0 other options on iOS for background play, at least it has the benefit of not being chromium on iOS

3

Sideload https://github.com/dayanch96/YTLite

Sponsorblock, Adblock, background play, skip, etc all integrated

Sideloading on ios is easy now unless your device was ever provisioned for a dev certificate. If that’s the case and it’s still active then just sign it with your own cert. if it’s no longer active you either need a fresh apple id or you need to use one of the kind of sketchy signing services. Otherwise you just use like sideloadly, altstore, side store, etc

Also there is no chromium on ios. All browsers use webkit and are basically just reskinned safari. Some heavily modify this (eg orion can run some Firefox and chrome extensions) though

3

What scam? Or do you just mean the crypto stuff in general (which is fine, I'm not saying crypto isn't a scam, just trying to understand you)?

1
lemmy.world

yt-dlp is great for downloading media you've already found (or at least, playlists or creator channels you've already found), but you can't use it for discovering new media. You still need a browser or GUI app like FreeTube or Newpipe for that, and it works better when you're actually signed in with your Google account so that the recommendation algorithm works and it can keep track of what you watched for you.

Don't get me wrong; I would love to limit my interaction with Google to anonymously fetching video URLs. But none of the alternatives sync my watch history between devices or recommend new videos (beyond just new uploads from subscribed channels) to me.

42

I've been finding new stuff fine on YouTube without logging in. Though that probably only works well if you have other sources for inspiration, like recommendations from friends, bandcamp sites of small labels or music journalism. I use YouTube's search function a lot.

3
gruereply
lemmy.world

Thanks for the suggestion, but that's not quite it. It basically does the same thing wrapping yt-dlp with a shell script and a cron job would: it takes a Youtube channel or playlist as input, and then automatically downloads it.

You can tell by this screenshot:

I'm looking for something that handles the step before that, helping me discovering which channels and playlists I want.

It also doesn't have anything to do with "syncing" in the way that I'm talking about, which is syncing account metadata between my devices, not syncing video data between Youtube and a local folder.

What I want is to be able to watch a video in Newpipe on my phone, and have it be automatically marked as watched in FreeTube on my desktop . And in my Google account, to the extent that I continue to use it while transitioning away. In fact, if I stop watching a video partway on one device, I want it to know the timestamp I stopped at so I can pick back up at the same point on another device.

Basically, I want the same experience I get if both devices are using the official Youtube website or app, but replacing the "report my habits to Google" part with a self-hosted solution.

5

Have you tried GrayJay with sync set up? It might suit your needs once set up properly. Yes, there's a Linux desktop version, and an android mobile version. No idea on iOS

1

That sounds like a sign up ad pop up for one of those porn websites

2
lemmy.world

Any plugin claiming to bring back youtube dislikes usually does it with some off-site database, that can be easily manipulated, as the API for it has been deprecated completely.

22
vodkareply
feddit.org

For new videos (ones they don't have old scraped data to rely on) they capture the like and dislikes from users who have the extension installed, and extrapolate the amount of dislikes from that ratio and the amount of likes YouTube shows.

Surely that doesn't skew the data in any way.

17
reddthat.com

sigh

The Brave browser is based on Chromium. Using it to get away from chrome does very little. Different browser, same engine.

18

Yes. Less, but not zero. You're still tied into Google's ecosystem. Brave is basically Chrome with a few privacy settings enabled by default.

FireFox on the other hand is completely independent from Google, and more tweakable.

6

If you absolutely have to use a Chromium browser for some reason it's not the worst choice. But they're pretty shady.

4
lemmy.org

I don't see it here but the top comment on reddit for this post was that:

If you have a VPN with a server in Albania to switch to that because serving Ads during streaming is illegal there. I have yet to test it but sounds legit and no one was nay saying it.

15

Holy shit it does seem to work, just tried it on my phone with the yt app and I didn't get a preroll ad

3

This is the way. Bonus points if your VPN does split tunnelling, so you don't have to mess around turning it on and off.

2
piefed.zip

Isn't mpv the more sensible option for, you know, watching videos?

14

You can use yt-dlp to download videos, too. I do it all the time, mostly because my internet is unreliable and slow. yt-dlp even works for Twitch VODs, though it's getting a bit ridiculous when you're downloading an entire 13 hour stream to watch maybe half of it.

2

on ios you can also use firefox focus, it doesn’t have ads on youtube, but iirc you can’t stay logged in because it doesn’t save cookies (tho that could be a positive depending on how you look at it)

vivaldi ios also didn’t have ads on youtube, but it’s been a while since i used it so it may have changed and it’s a pretty heavy browser in my experience

orion also supports firefox/chrome extensions but in my experience it’s adblocking (even with ublock) isn’t perfect. but again, it’s been a while so maybe it’s better now

11
lemmy.world

I just use ublock, but even if i didnt and used all the ones above that would be like what 5 min of my time, one time? Now you want me to directly download all the videos i may watch and somehow thats easier? Yeah im good, no ads for years now and thats all I want.

11
lemmy.world

Ytdlp doesn't even work right ever since the bullshit "flagged as grownup material" algorithm started account-restricting and silently hiding videos.

5

I've been trying to pirate music for my Navidrome, and the age verification is quite literally making it impossible to download some songs.

Thankfully some kind soul ([email protected]) a few days ago told me about monochrome.tf which provides files in better format anyway, so as long as the song is by an artist or band (and not an unpopular game OST 😭) it will probably be on there. I guess it's built on Tidal.

3
lemmy.world

I'd just like to be able to watch flagged videos from RedLetterMedia on my roku without logging into fucking YouTube. Lol

2
FG_3479reply
lemmy.world

Ditch the Roku and get a Google TV box. You can sideload SmartTube on it which is an open source and ad free client.

1

I've already got a different frontend installed, but the other instances don't have the flagged videos, hence the need to somehow download and self-host some of those episodes.

1

You can use Orion in iOS instead of Brave, which is shady as hell and owned by a bigot.

11
lemmy.zip

I'd love to see PeerTube get more use, but the one issue for creators is monetization. I don't really see a great way for creators to make a decent income through PeerTube. We all hate the ads, but... That's where a lot of their money comes from. Without a solution to that, creators are never going to embrace it, unfortunately.

8
Renatreply
szmer.info

There is buycoffie site to give donation to creators. Many yt creators dont get much money from yt ads cause they get demonetisation frequently.

3
lemmy.zip

But do things like that actually translate into respectable revenue? I understand that there are technically ways to get paid, but they only matter to creators if they actually fill their pockets.

3
imjustmskreply
lemmy.world

The problem is nobody is crazy enough to host these much videos other than Google. Google wants to stay as a monopoly in long-form video sharing platforms and I don't think Google is actually making much money in return comparing the cost if Petabytes of video files getting uploaded all the time. 

Even after keeping a huge chunk of money that they get from advertisers, I still don't think it's that profitable but Somany people use YouTube and - they get to also stalk our online activity and do god knows what with allaaat data. 

1

That's a big part of what PeerTube tries to address. Yes, the videos still must be hosted somewhere, but PeerTube streams the video as a torrent where the host is the tracker and guaranteed seed while every client streaming the video is a torrent client that shares what it already has with every other active stream to reduce demand on the host. It's not a perfect solution since the host must act as a guaranteed seeder, but for popular videos actively being streamed by many people at once, it has the potential to massively reduce traffic for those streams.

For less popular videos that may not have more than one viewer in any given moment, though, there's likely no real impact. If it got some more development interest, I could see it getting archival clients that behave sort of like an *Arr server for media management, allowing users to save their favorite videos in exchange for acting as an extra seed over some longer term. That'd help, but it's definitely not a full solution.

2
sopuli.xyz

Its an open source tool to download youtube videos

About every mainstream youtube download program you or your parents have ever used are actually just a wrapper for this.

Bonus: If you want to learn more about coding its not that hard to make a script that automatically downloads the last video from a list of channels that runs on a schedule. Even ai can do it.

21
lemmy.zip

Not just YouTube videos, but pretty much every video platform/website you can think of!

9
lemmy.world

Is there like a “tutorial for dummies” for this? I tried to use it once but got nowhere.

3
moodyreply
lemmings.world

It's a command line tool. You type in "yt-dlp" followed by the url of a video, and it does the rest.

It has many other options, but the defaults are good enough for most cases.

5

Use winget install yt-dlp-nightly to install it.

Then run yt-dlp -f "bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a]" "https://youtube.com/watch?v=EXAMPLE" to download a video.

The file will be in C:\Users\YourUsername unless you use cd to enter a certain folder.

If yt-dlp stops working, then yt-dlp --update-to nightly should fix it.

1
sopuli.xyz

There is no single stop for a tutorial for stuff like this because you could use any scripting language and which ones you have available may depend on your os.

But honestly any half decent llm can generate something that works for your specific case.

If you really want to avoid using those,

Here is a simple example for windows powershell.


# yt-dlp Channel Downloader
# --------------------------
# Downloads the latest video from each channel in channels.txt
#
# Setup:
#   1. Install yt-dlp:  winget install yt-dlp
#   2. Install ffmpeg:  winget install ffmpeg
#   3. Create channels.txt next to this script, one URL per line:
#        https://www.youtube.com/@SomeChannel
#        https://www.youtube.com/@AnotherChannel
#   4. Right-click this file → Run with PowerShell

# Read each line, skip blanks and comments (#)
foreach ($url in Get-Content ".\channels.txt") {
    $url = $url.Trim()
    if ($url -eq "" -or $url.StartsWith("#")) { continue }

    Write-Host "`nDownloading latest from: $url"

    yt-dlp --playlist-items 1 --merge-output-format mp4 --no-overwrites `
        -o "downloads\%(channel)s\%(title)s.%(ext)s" $url
}

Write-Host "`nDone."

And here is my own bash script (linux) which has only gotten bigger with more customization over the years.

(part 1, part 2 in the next reply)

#!/bin/bash
# ============================================================================
#  yt-dlp Channel Downloader (Bash)
# ============================================================================
#
#  Automatically downloads new videos from a list of YouTube channels.
#
#  Features:
#    - Checks RSS feeds first to avoid unnecessary yt-dlp calls
#    - Skips livestreams, premieres, shorts, and members-only content
#    - Two-pass download: tries best quality first, falls back to 720p
#      if the file exceeds the size limit
#    - Maintains per-channel archive and skip files so nothing is
#      re-downloaded or re-checked
#    - Embeds thumbnails and metadata into the final .mp4
#    - Logs errors with timestamps
#
#  Requirements:
#    - yt-dlp       (https://github.com/yt-dlp/yt-dlp)
#    - ffmpeg        (for merging video+audio and thumbnail embedding)
#    - curl          (for RSS feed fetching)
#    - A SOCKS5 proxy on 127.0.0.1:40000 (remove --proxy flags if not needed)
#
#  Channel list format (Channels.txt):
#    The file uses a simple key=value block per channel, separated by blank
#    lines. Each block has four fields:
#
#      Cat=Gaming
#      Name=SomeChannel
#      VidLimit=5
#      URL=https://www.youtube.com/channel/UCxxxxxxxxxxxxxxxxxx
#
#    Cat       Category label (currently unused in paths, available for sorting)
#    Name      Short name used for filenames and archive tracking
#    VidLimit  How many recent videos to consider per run ("ALL" for no limit)
#    URL       Full YouTube channel URL (must contain the UC... channel ID)
#
# ============================================================================

export PATH=$PATH:/usr/local/bin

# --- Configuration ----------------------------------------------------------
# Change these to match your environment.

SCRIPT_DIR="/path/to/script"           # Folder containing this script and Channels.txt
ERROR_LOG="$SCRIPT_DIR/download_errors.log"
DOWNLOAD_DIR="/path/to/downloads"      # Where videos are saved
MAX_FILESIZE="5G"                      # Max file size before falling back to lower quality
PROXY="socks5://127.0.0.1:40000"       # SOCKS5 proxy (remove --proxy flags if unused)

# --- End of configuration ---------------------------------------------------

cd "$SCRIPT_DIR"

# ============================================================================
#  log_error - Append or update an error entry in the error log
# ============================================================================
#  If an entry with the same message (ignoring timestamp) already exists,
#  it replaces it so the log doesn't fill up with duplicates.
#
#  Usage: log_error "[2025-01-01 12:00:00] ChannelName - URL: ERROR message"

log_error() {
    local entry="$1"

    # Strip the timestamp prefix to get a stable key for deduplication
    local key=$(echo "$entry" | sed 's/^\[[0-9-]* [0-9:]*\] //')

    local tmp_log=$(mktemp)
    if [[ -f "$ERROR_LOG" ]]; then
        grep -vF "$key" "$ERROR_LOG" > "$tmp_log"
    fi
    echo "$entry" >> "$tmp_log"
    mv "$tmp_log" "$ERROR_LOG"
}

# ============================================================================
#  Parse Channels.txt
# ============================================================================
#  awk reads the key=value blocks and outputs one line per channel:
#    Category  Name  VidLimit  URL
#  The while loop then processes 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

    archive_file="$SCRIPT_DIR/DLarchive$Name.txt"   # Tracks successfully downloaded video IDs
    skip_file="$SCRIPT_DIR/DLskip$Name.txt"          # Tracks IDs to permanently ignore
    mkdir -p "$DOWNLOAD_DIR"

    # ========================================================================
    #  Step 1: Check the RSS feed for new videos
    # ========================================================================
    #  YouTube provides an RSS feed per channel at a predictable URL.
    #  Checking this is much faster than calling yt-dlp, so we use it
    #  as a quick "anything new?" test.

    # Extract the channel ID (starts with UC) from the URL
    channel_id=$(echo "$URL" | grep -oP 'UC[a-zA-Z0-9_-]+')
    rss_url="https://www.youtube.com/feeds/videos.xml?channel_id=%24channel_id"

    # Fetch the feed and pull out all video IDs
    new_videos=$(curl -s --proxy "$PROXY" "$rss_url" | \
        grep -oP '(?<=<yt:videoId>)[^<]+')

    if [[ -z "$new_videos" ]]; then
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] RSS fetch failed or empty, skipping"
        continue
    fi

    # Compare RSS video IDs against archive and skip files.
    # If every ID is already known, there's nothing to do.
    has_new=false
    while IFS= read -r vid_id; do
        in_archive=false
        in_skip=false

        [[ -f "$archive_file" ]] && grep -q "youtube $vid_id" "$archive_file" && in_archive=true
        [[ -f "$skip_file" ]]    && grep -q "youtube $vid_id" "$skip_file"    && in_skip=true

        if [[ "$in_archive" == false && "$in_skip" == false ]]; then
            has_new=true
            break
        fi
    done <<< "$new_videos"

    if [[ "$has_new" == false ]]; then
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] No new videos, skipping"
        continue
    fi

    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] New videos found, processing"

    # ========================================================================
    #  Step 2: Build shared option arrays
    # ========================================================================

    # Playlist limit: restrict how many recent videos yt-dlp considers
    playlist_limit=()
    if [[ $VidLimit != "ALL" ]]; then
        playlist_limit=(--playlist-end "$VidLimit")
    fi

    # Options used during --simulate (dry-run) passes
    sim_base=(
        --proxy "$PROXY"
        --extractor-args "youtube:player-client=default,-tv_simply"
        --simulate
        "${playlist_limit[@]}"
    )

    # Options used during actual downloads
    common_opts=(
        --proxy "$PROXY"
        --download-archive "$archive_file"
        --extractor-args "youtube:player-client=default,-tv_simply"
        --write-thumbnail
        --convert-thumbnails jpg
        --add-metadata
        --embed-thumbnail
        --merge-output-format mp4
        --output "$DOWNLOAD_DIR/${Name} - %(title)s.%(ext)s"
        "${playlist_limit[@]}"
    )

    # ========================================================================
    #  Step 3: Pre-pass — identify and skip filtered content
    # ========================================================================
    #  Runs yt-dlp in simulate mode twice:
    #    1. Get ALL video IDs in the playlist window
    #    2. Get only IDs that pass the match-filter (no live, no shorts)
    #  Any ID in (1) but not in (2) gets added to the skip file so future
    #  runs don't waste time on them.

    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] Pre-pass: identifying filtered videos (live/shorts)"

    all_ids=$(yt-dlp "${sim_base[@]}" --print "%(id)s" "$URL" 2>/dev/null)
    passing_ids=$(yt-dlp "${sim_base[@]}" \
        --match-filter "!is_live & !was_live & original_url!*=/shorts/" \
        --print "%(id)s" "$URL" 2>/dev/null)

    while IFS= read -r vid_id; do
        [[ -z "$vid_id" ]] && continue
        grep -q "youtube $vid_id" "$archive_file" 2>/dev/null && continue
        grep -q "youtube $vid_id" "$skip_file"    2>/dev/null && continue
        if ! echo "$passing_ids" | grep -q "^${vid_id}$"; then
            echo "youtube $vid_id" >> "$skip_file"
            echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] Added $vid_id to skip file (live/short/filtered)"
        fi
    done <<< "$all_ids"

1

Absolutely Fair, they are quite a major source in the accelerated enshitification of modern life, thats why I provided examples so people can still learn without one.

But it would also be ignorant for me to not recognise how much i managed to learn about linux/open source from these same tools in the last few years. The traditional ways of learning things were never compatible with my personal neurology.

Without llms, id probably still be stuck on windows.

1

part 2

# ========================================================================
    #  Step 4 (Pass 1): Download at best quality, with a size cap
    # ========================================================================
    #  Tries: best AVC1 video + best M4A audio → merged into .mp4
    #  If a video exceeds MAX_FILESIZE, its ID is saved for the fallback pass.
    #  Members-only and premiere errors cause the video to be permanently skipped.
 
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] Pass 1: best quality under $MAX_FILESIZE"
 
    yt-dlp \
        "${common_opts[@]}" \
        --match-filter "!is_live & !was_live & original_url!*=/shorts/" \
        --max-filesize "$MAX_FILESIZE" \
        --format "bestvideo[vcodec^=avc1]+bestaudio[ext=m4a]/best[ext=mp4]/best" \
        "$URL" 2>&1 | while IFS= read -r line; do
            echo "$line"
            if echo "$line" | grep -q "^ERROR:"; then
 
                # Too large → save ID for pass 2
                if echo "$line" | grep -qi "larger than max-filesize"; then
                    vid_id=$(echo "$line" | grep -oP '(?<=\[youtube\] )[a-zA-Z0-9_-]{11}')
                    [[ -n "$vid_id" ]] && echo "$vid_id" >> "$SCRIPT_DIR/.size_failed_$Name"
 
                # Permanently unavailable → skip forever
                elif echo "$line" | grep -qE "members only|Join this channel|This live event|premiere"; then
                    vid_id=$(echo "$line" | grep -oP '(?<=\[youtube\] )[a-zA-Z0-9_-]{11}')
                    if [[ -n "$vid_id" ]]; then
                        if ! grep -q "youtube $vid_id" "$skip_file" 2>/dev/null; then
                            echo "youtube $vid_id" >> "$skip_file"
                            echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] Added $vid_id to skip file (permanent failure)"
                        fi
                    fi
                fi
 
                log_error "[$(date '+%Y-%m-%d %H:%M:%S')] ${Name} - ${URL}: $line"
            fi
        done
 
    # ========================================================================
    #  Step 5 (Pass 2): Retry oversized videos at lower quality
    # ========================================================================
    #  For any video that exceeded MAX_FILESIZE in pass 1, retry at 720p max.
    #  If it's STILL too large, log the actual size and skip permanently.
 
    if [[ -f "$SCRIPT_DIR/.size_failed_$Name" ]]; then
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] Pass 2: lower quality fallback for oversized videos"
 
        while IFS= read -r vid_id; do
            [[ -z "$vid_id" ]] && continue
            echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] Retrying $vid_id at 720p max"
 
            yt-dlp \
                --proxy "$PROXY" \
                --download-archive "$archive_file" \
                --extractor-args "youtube:player-client=default,-tv_simply" \
                --write-thumbnail \
                --convert-thumbnails jpg \
                --add-metadata \
                --embed-thumbnail \
                --merge-output-format mp4 \
                --max-filesize "$MAX_FILESIZE" \
                --format "bestvideo[vcodec^=avc1][height<=720]+bestaudio[ext=m4a]/bestvideo[height<=720]+bestaudio[ext=m4a]/best[height<=720]/worst" \
                --output "$DOWNLOAD_DIR/${Name} - %(title)s.%(ext)s" \
                "https://www.youtube.com/watch?v=%24vid_id" 2>&1 | while IFS= read -r line; do
                    echo "$line"
                    if echo "$line" | grep -q "^ERROR:"; then
 
                        # Still too large even at 720p — give up and log the size
                        if echo "$line" | grep -qi "larger than max-filesize"; then
                            filesize_info=$(yt-dlp \
                                --proxy "$PROXY" \
                                --extractor-args "youtube:player-client=default,-tv_simply" \
                                --simulate \
                                --print "%(filesize,filesize_approx)s" \
                                "https://www.youtube.com/watch?v=%24vid_id" 2>/dev/null)
                            if [[ "$filesize_info" =~ ^[0-9]+$ ]]; then
                                filesize_gb=$(echo "scale=1; $filesize_info / 1073741824" | bc)
                                size_str="${filesize_gb}GB"
                            else
                                size_str="unknown size"
                            fi
                            if ! grep -q "youtube $vid_id" "$skip_file" 2>/dev/null; then
                                echo "youtube $vid_id" >> "$skip_file"
                                log_error "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] Skipped $vid_id - still over $MAX_FILESIZE at 720p ($size_str)"
                            fi
                        fi
 
                        log_error "[$(date '+%Y-%m-%d %H:%M:%S')] ${Name} - ${URL}: $line"
                    fi
                done
        done < "$SCRIPT_DIR/.size_failed_$Name"
 
        rm -f "$SCRIPT_DIR/.size_failed_$Name"
    else
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$Name] Pass 2: no oversized videos to retry"
    fi
 
    # Clean up any stray .description files yt-dlp may have left behind
    find "$DOWNLOAD_DIR" -name "${Name} - *.description" -type f -delete
 
done
2
Mothrareply
mander.xyz

I see. I am not a programmer, not by a long shot. More on the grandma side of things instead. So please forgive if I'm saying something very stupid - I'm just ignorant.

I've been happy with NewPipe so far, 95% of my video watching happens on my phone. The only thing Newpipe can't do is access age restricted videos. If this tool can do that on my phone, then I'm definitely interested.

2

Yes and no,

Yes because i am doing it, no because it’s just one part of the process.

Newpipe is cool but it doesn’t run on my phone so i needed something else.

You may have heard of plex, “run your own netflix”, i much prefer its competitor jellyfin but that doesn’t matter here.

Point is i download my YouTube videos on a schedule/script straight to the library folder of jellyfin, from which i can login from any type of device.

1
lemmy.blahaj.zone

They still doing that "at YouTube adds block you" thing where they nuke your account if they think you're blocking ads?

1

Aside from what that other guy said about new pipe not actually having a Google login, I've also been watching videos on YouTube since forever and I've not seen an ad except for maybe once or twice and they've never done anything about my account so I don't think they're ever done that.

Or maybe I use YouTube so infrequently they dgaf.

2
poopreply
lemmy.zip

Morphe also (successor to Revanced). Android only but awesome if you can use it.

5
lemmus.org

No, it's a successor of ReVanced Extended, not the normal ReVanced. There was a dispute between the developers and the lead guy of the project as he was being abusive to the developers.

This led to the developer in the pic, inotia00 (the main person who releases the RVX patches) and other developers to shift to their own project called as Morphe which is the continuation of RVX

Here's the link regarding about the whole situation on Reddit

P.S: Morphe is extremely beginner friendly, it walks you through the entire process in its own app as supposed to the original ReVanced.

This is the link for downloading Morphe (Morphe Manager)

0

Yep. Whole Lotta drama lol. Loving morphe. Can confirm its much easier to use.

1
piefed.blahaj.zone

for android, you could use youtube revanced

it even has an option to replace the youtube text with youtube premium

6
FG_3479reply
lemmy.world

The main devs have moved to Morphe now and Revanced is mostly just merging in Morphe code in broken ways.

3

YouTube Search Fixer is also a must have extension. It removes all the bullshit yt is trying to feed you.

5
needankereply
feddit.org

PipePipe (NewPipe fork) supports peertube I think.

5

I have youtube run in its own dedicated browser (Librewolf) with Ublock Origin.

No ads. Works perfectly.

I may add the youtube shorts blocker, I hate those.

5

One shitty thing they've done that you can't get around with these methods is the new "1080p Enhanced Bitrate". I'm not going to pay for premium just to prove that, but 99.9% sure that on many videos added before this was introduced (that it was added to) they've degraded the base 1080p and the original is probably behind the new setting.

I hope I'm not right, but something tells me that the way it's going, at one point they'll only have 720p for non-premium.

4
reddthat.com

Why do y'all go with the absolute worst options to avoid YT ads?

Use NewPipe on Android. Use FreeTube on PC. Failing all those, use an invidious instance from any web browser that isn't fucking Brave - I recommend inv.nadeko.net.

4

Brave is a web browser created by an add company with ties to Peter Thiel.

But if that's not reason enough to avoid it, here are the three primary ones that come to mind:

  1. The only reason Brave exists is because Brendan Eich is a homophobic piece of shit who was ousted from Mozilla due to his active support for ending gay marriage in California.
  2. The privacy grift is a grift.
  3. The crypto scam.
3

They keep doing shady shit. I was a Brave defender until I read all of that. At the end of the day, there is no shortage is Chromium browsers, so I might as well use one that doesn't have this sketchy history. Like Ungoogled Chromium.

2

All of these extensions are available on Safari too, if anyone’s wondering. Also Vinegar is an extension that replaces the video player with iOS/MacOS’s far superior native player (and seamless pip/background play)

3

If you put a dash after the T in the youtube url (ex: yout-ube) then it takes you to a version of the site with no ads. This only works on the browser version as far as I know.

3

I'm having horrible performance issues with waterfox that I don't have with vanilla Firefox. It's like the waterfox window is running at 5-10fps with horrible latency.

3

If youre on linux, give Phoenix for Firefox a shot. It installs a bunch of enterprise rules to harden Firefox, so youre always on the latest security patches but never with AI/Telemetry bs.

Librewolf is also pretty good, but i mention phoenix because it is vanilla firefox

2
vinylreply
lemmy.world

how is this different from the Revanced Manager.

1

It's where the main devs have gone now after Revanced banned the devs responsible for about 80% of the code.

2
lemmy.ml

FYI all those "dislike count" plugins seem to be wildly inaccurate. No idea why but the counts rarely match what YouTube studio will say is the dislike count on the uploader's side.

2
lemmy.world

Because they track the thumbs down themselves. It's not able to pull from yt. So a different ext will have different numbers depending on how many install it.

1
Kagureply

Oh wow so its even more useless than I thought Lol. Thx for the info!

2
lemmy.today

Ew. You mean install yt-dlp with your distribution's package manager or compile it from source? pip sucks.

2

Python is slow, even compared to some other interpreted languages (not all languages in this comparison are interpreted). Python has poor type safety (without explicit hinting). Current Python versions have poor backward compatibility (CW: article image is AI-generated, unfortunately) with previous Python versions. And I do mean poor. Python's syntax is disgusting, in my opinion.

3
feddit.org

What about Grayjay? Haven't seen that mentioned.

2

I forgot I had it installed. Pulls yt videos without delay, without ads.

I do have a vpn so could pop off to Albania but I'm unsure of there's less revenue for yt by using grayjay?

2

The new AI dubs from Italian to English is the funniest shit ever, though.

2

It’s kinda funny to me that we’re stuck on how brave is problematic to watch YouTube — as though YouTube isn’t problematic. Also I have truly tried just about every browser worth trying on iOS and ended up circling back to Brave every time. I think Aloha browser seems pretty good and I keep it around as an alt. I’ve tried PeerTube and the like also and I mean…they all suck sorry to say.

1
lemmy.world

I've never understood the hatred of shorts. They're perfect for pooping time

0
Furbagreply
lemmy.world

I only dislike shorts because there are no player controls. I want to be able to rewind to any point of the video, pause at will, and adjust the volume independent of my phone/computer volume.

That's why I downloaded the addon to redirect all YouTube shorts to the regular player so it forces all those features to be on.

3

I'm a professional doomscroller and can hardly controle myself if I'm on the search for a quick dopamine rush. It consumes too much of my time.

1
lemmy.world

Or I can pay for YouTube premium because I watch a tremendous amount of content on YouTube and it also supports all the creators I watch at least a little bit, so I don’t have to subscribe to 25 patreons

0

The nice thing about Patreon or donations is that even a one-time $1 donation (alternatively a one-month Patreon subscription at self-set price) is worth more than years of anything paid out by YouTube itself.

7
Agrivarreply
lemmy.world

Agreed. It's actually the only streaming service I subscribe to because I get so much use out of it and at least some of that money goes to actual creators. Plus, YouTube Music has an insane library of obscure shit.

Granted, I still use a few of those plugins, to improve the experience further.

2

Yeah I had the Google play subscription for years before it got grandfathered into the yt premium package. Its kept the same price over time so I've just never turned it off.

4

The whole point of YouTube Premium is that you also support content creators with additional money, and you also get YouTube mobile app without ads. Yes, I know you can use some random methods to not get ads on mobile, but come on, who has time to deal with this shit? And it will break sooner or later.

-1
lemmy.blahaj.zone

I have Opera just specifically for the purpose of watching YouTube since it can still run UBlock. I use chrome for everything else.

-4

Ehh. I could think about it. But the nice thing about Opera is that all my Chrome plugins also work there since it's based on Chromium.

I haven't used Firefox since the 00s after I got sick and tired of all the plugins I used in my daily work kept getting disabled every two weeks, and having to go into all of them and hack the xpi's (or whatever) to increase the valid release versions.

I guess they don't do that anymore or something. It got old fast.

Mozilla isn't at all better than corporations at being user-centric. In fact, they're almost worse, because they will tell you all the Very Good Reasons that This Is Better For You and if it isn't You're Doing Something Wrong. And just like those companies, they will ignore long standing bugs in favor of adding new bullshit.

I used to use Thunderbird too, and had similar pain points with it, bugs that were never fixed, feature and function changes that broke routines and plugins, and eventually went off to something else. (bluemail and emclient i think)

1

Two questions: Why Chrome when they are spying on you? Use LibreWolf.

Whats the matter that you don't want to see ads on youtube, but getting bombed with ads on the rest of the web is okay?

1

Bruh

UBlock works on tons of sites besides YouTube.

On Chrome, UBlock works fine on nearly all sites, EXCEPT YouTube, because Chrome's changes means "good" UBlock can't work (you get not-as-good UBlock).

On Opera, full steam real UBlock is still supported.

1

YouTube shadowbans comments if the telemetry scripts are blocked as they can't tell if you are a bot or not, so be aware of that.

1

The thing says, "How to use YouTube Premium for free" and then it describes things that aren't YouTube Premium. That'd be like if you said "How to set up a regulation basketball hoop" and then described setting up a small trampoline under the hoop. Okay, it might be better, but that's not what you said you were doing.

0