RetroFed Forum
Your home away from modern life.
also don't use brave or vanilla Firefox
Post Reply
AuthorMessage
not_IO lemmy.blahaj.zone not_IO@lemmy.blahaj.zone
Joined: 2024-12-06
Banned
Quote

https://minidisc.tokyo/notes/ak9k4opsb1

448   Original
Mothra mander.xyz Mothra@mander.xyz
Joined: 2023-06-02
#2 · Quote Reply

Yt-dlp?

7
Successful_Try543 feddit.org Successful_Try543@feddit.org
Joined: 2024-06-22
#3 · (edited) Quote Reply

Yt-dlp?

yt-dlp is a feature-rich command-line audio/video downloader with support for thousands of sites. The project is a fork of youtube-dl based on the now inactive youtube-dlc.

https://github.com/yt-dlp/yt-dlp

7
webghost0101 sopuli.xyz webghost0101@sopuli.xyz
Joined: 2023-07-20
#4 · Quote Reply

Yt-dlp?

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
Chloé 🥕 lemmy.blahaj.zone carotte@lemmy.blahaj.zone
Joined: 2023-06-13
#5 · Quote Reply

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
DiceTrauma piefed.social CptHacke@piefed.social
Joined: 2026-03-20
#6 · Quote Reply

I just use FreeTube. No ads, no logins, no tracking, no BS.

24
Solumbran lemmy.world Solumbran@lemmy.world
Joined: 2023-06-14
#7 · Quote Reply

Don't use brave.

162
Banana sh.itjust.works Banana@sh.itjust.works
Joined: 2023-06-14
#8 · Quote Reply

Don't use brave.

I don't, but why?

7
HeyJoe lemmy.world HeyJoe@lemmy.world
Joined: 2023-07-05
#9 · Quote Reply

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
Final Remix lemmy.world FinalRemix@lemmy.world
Joined: 2023-07-01
#10 · Quote Reply

I don't, but why?

It's Peter thiel's browser.

69
Final Remix lemmy.world FinalRemix@lemmy.world
Joined: 2023-07-01
#11 · Quote Reply

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.

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

5
Banana sh.itjust.works Banana@sh.itjust.works
Joined: 2023-06-14
#12 · Quote Reply

It's Peter thiel's browser.

Oh BARF

16
Nihilistic_Mystics lemmy.world Nihilistic_Mystics@lemmy.world
Joined: 2023-06-12
#13 · Quote Reply

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

113
Successful_Try543 feddit.org Successful_Try543@feddit.org
Joined: 2024-06-22
#14 · Quote Reply

Oh BARF

Isn't that for dogs?

4
BillyClark piefed.social BillyClark@piefed.social
Joined: 2026-01-21
#15 · Quote Reply

Pretty sure that YT Premium lets people watch shorts.

-4
RmDebArc_5 piefed.zip RmDebArc_5@piefed.zip
Joined: 2025-06-23
#16 · Quote Reply

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

14
XLE piefed.social XLE@piefed.social
Joined: 2025-06-23
#17 · (edited) Quote Reply

Don't use brave.
[deleted]
-7
CommissarVulpin lemmy.world CommissarVulpin@lemmy.world
Joined: 2023-06-30
#18 · Quote Reply

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.

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

3
Alchalide lemmy.world Alchalide@lemmy.world
Joined: 2023-08-13
#19 · Quote Reply

Don't forget YouTube revanced for mobile.

6
moody lemmings.world moody@lemmings.world
Joined: 2023-08-08
#20 · Quote Reply

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

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
Barbuzie piefed.social Barbuzie@piefed.social
Joined: 2026-01-28
#21 · Quote Reply

[deleted]

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

18
XLE piefed.social XLE@piefed.social
Joined: 2025-06-23
#22 · Quote Reply

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

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
gen/Eric Computers lemmy.zip generic_computers@lemmy.zip
Joined: 2024-04-26
#23 · Quote Reply

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

Especially with yt-dlp installed, you can just run "mpv https://youtu.be/vidId0" and it works!

10
gen/Eric Computers lemmy.zip generic_computers@lemmy.zip
Joined: 2024-04-26
#24 · Quote Reply

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.

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

9
webghost0101 sopuli.xyz webghost0101@sopuli.xyz
Joined: 2023-07-20
#25 · (edited) Quote Reply

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.

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
ferret sh.itjust.works aBundleOfFerrets@sh.itjust.works
Joined: 2023-07-18
#26 · Quote Reply

Insane seeing SuperDicq on here

2
Rai lemmy.dbzer0.com Rai@lemmy.dbzer0.com
Joined: 2023-07-01
#27 · Quote Reply

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 extensi...

Firefox focus is the best default browser for iOS for sure.

6
in_my_honest_opinion piefed.social in_my_honest_opinion@piefed.social
Joined: 2026-01-21
#28 · Quote Reply

You should really be using pipx

1
webghost0101 sopuli.xyz webghost0101@sopuli.xyz
Joined: 2023-07-20
#29 · Quote Reply

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 # -------------------------...

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
Poem_for_your_sprog lemmy.world Poem_for_your_sprog@lemmy.world
Joined: 2023-07-13
#30 · Quote Reply

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
Delphon discuss.tchncs.de Delphon@discuss.tchncs.de
Joined: 2025-09-17
#31 · Quote Reply

Newpipe, freetube & invidious.👌

10
Arcane2077 sh.itjust.works Arcane2077@sh.itjust.works
Joined: 2023-06-22
#32 · Quote Reply

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
grue lemmy.world grue@lemmy.world
Joined: 2023-06-13
#33 · Quote Reply

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
grue lemmy.world grue@lemmy.world
Joined: 2023-06-13
#34 · Quote Reply

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 fun...

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
Mothra mander.xyz Mothra@mander.xyz
Joined: 2023-06-02
#35 · Quote Reply

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.

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
arararagi ani.social arararagi@ani.social
Joined: 2024-02-22
#36 · Quote Reply

UBO recommends firefox.

18
kazerniel lemmy.world kazerniel@lemmy.world
Joined: 2023-06-21
#37 · Quote Reply

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

I've been using Open Video Downloader
(youtube-dl-gui)
for some years, and it's very user-friendly.

5
CommissarVulpin lemmy.world CommissarVulpin@lemmy.world
Joined: 2023-06-30
#38 · Quote Reply

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.

I think you vastly overestimate my level of computer savviness.

2
KoalaUnknown lemmy.world KoalaUnknown@lemmy.world
Joined: 2023-07-02
#39 · Quote Reply

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

Another good option for iOS is YTLite

10
Turret3857 infosec.pub Turret3857@infosec.pub
Joined: 2024-10-09
#40 · Quote Reply

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.

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
MousePotatoDoesStuff lemmy.world MousePotatoDoesStuff@lemmy.world
Joined: 2025-03-09
#41 · Quote Reply

It would be great if there was a YouTube client that also worked for fedi alternatives somehow.

5
youngskywalker lemmy.world youngskywalker@lemmy.world
Joined: 2024-03-01
#42 · Quote Reply

Or just don't use YouTube at all

12
BowtiesAreCool lemmy.world BowtiesAreCool@lemmy.world
Joined: 2023-07-02
#43 · Quote Reply

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
village604 adultswim.fan village604@adultswim.fan
Joined: 2025-09-27
#44 · Quote Reply

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...

TubeSync might fit your needs for part of it.

2
grue lemmy.world grue@lemmy.world
Joined: 2023-06-13
#45 · Quote Reply

TubeSync might fit your needs for part of it.

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
spitfire lemmy.world spitfire@lemmy.world
Joined: 2023-06-22
#46 · Quote Reply

You can use Invidious too

8
poop lemmy.zip poop@lemmy.zip
Joined: 2026-03-25
#47 · Quote Reply

Don't forget YouTube revanced for mobile.

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

5
samus12345 sh.itjust.works samus12345@sh.itjust.works
Joined: 2023-07-03
#48 · Quote Reply

Isn't that for dogs?

9
Agrivar lemmy.world Agrivar@lemmy.world
Joined: 2023-08-26
#49 · Quote Reply

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

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.

4
Agrivar lemmy.world Agrivar@lemmy.world
Joined: 2023-08-26
#50 · Quote Reply

Pretty sure that YT Premium lets people watch shorts.

who the fuck wants to though?

2
needanke Moderator needanke@feddit.org
Joined: 2024-07-12
#51 · Quote Reply

It would be great if there was a YouTube client that also worked for fedi alternatives somehow.

PipePipe (NewPipe fork) supports peertube I think.

5
Post Reply Page 1 of 4   Goto page 1, 2, 3, 4 Last »
Back to top