I feel like after a decade and a half google knows pretty well what I like and what I'm interested in. I built that homepage brick by brick.
Whenever I tried other youtube clients or ungoogled alternatives the recommendations were all really generic and not that good. Of course I won't find something that matches the real deal, but at least I want to:
1. Steer away from viral content, aka Mr Beast videos or whatever. 2. Have discoverability of youtube videos I would be interested in but that I'm not subscribed to yet.
To this day I still find new channels or videos I'm really interested in on my recommended feed.
It's also not a good idea to use "--cookies" unless you absolutely have to. Just leave out the cookies option and try to dl anonymously. Only when Youtube forces your ip address to "sign in" is it necessary to pass in cookies.
It says "by channel name" but then it seems like you still have to pass in each playlist URL separately.
This is just a "wrapper" for something yt-dlp already does?
—⁂—
From the “Features” section of the README:
> • Organized Structure: Creates separate directories for each channel.
… depending on you mentioning that name in your playlists.txt file, so that if you were writing a script you’d just be doing a mkdir/cd yourself, trivial.
> • Smart Sync: Skips files that have already been downloaded (--no-overwrites).
That’s not really what --no-overwrites does. The default of --no-force-overwrites is probably actually what you want: “do not overwrite the video, but overwrite related files”. You probably do want metadata files to be updated on subsequent runs.
> • Clean Naming: Saves files as Playlist Title/Video Title.mp4 (no numeric prefixes).
This is an Opinion.
> • Batch Processing: Reads multiple playlists from a playlists.txt file.
Meh, you’re invoking a script, putting the stuff in the script would be at least as easy.
—⁂—
From the script itself, going through the arguments passed to yt-dlp:
--cookies "$COOKIES_FILE"
My impression is that this is discouraged unless necessary. And if you need it, --cookies-from-browser will be more convenient. -f "bv*+ba/b"
That’s equivalent to the default. --merge-output-format mp4
This is an Opinion. --no-overwrites
I’m not convinced this is desirable. Videos already won’t be overwritten by default, this just stops metadata from being updated on subsequent runs, though I’m not sure what things might be updated. -o "%(playlist_title)s/%(title)s.%(ext)s"
This is an Opinion.—⁂—
Instead of having a playlists.txt file containing `Channel Name|https://www.youtube.com/playlist?list=x` and having a separate 73-line file download_playlists.sh, you might as well have just one download_playlists.sh file containing:
dl() {
mkdir -p "$1"
pushd "$1"
yt-dlp -o "%(playlist_title)s/%(title)s.%(ext)s" "$2"
popd
}
dl 'Channel Name' 'https://www.youtube.com/playlist?list=x'
By dint of its simplicity, easier to work with and tweak to your own requirements (such as dropping `--merge-output-format mp4` as I did here). Also more obvious how to invoke it just once. (Aside: use pushd/popd instead of `cd "$channel_name"` and `cd ..`, because then $channel_name containing a slash won’t bork it.) To get YouTube videos offline on your phone/tablet for flights:
1. Create a playlist called “download” and add the videos you want.
2. Use yt-dlp (playlist URL) or this tool to pull that playlist to a folder.
3. Run the downloader on your Plex box on a schedule (cron/launchd).
4. Add that folder to Plex as a library.
5. Enable downloads for that library in Plex, then sync to your device.
xnx•19h ago
graynk•19h ago
jasode•19h ago
Author wanted yt-dlp to be fed with a custom text file: "playlists.txt"
The script loops through that text file, parses it, and then launches yt-dlp for each valid line with a channel name.
bramhaag•19h ago
taylorfinley•15h ago
alias yt-pl='yt-dlp -o "%(channel)s/%(playlist_title)s/%(title)s.%(ext)s" -a playlists.txt'
graynk•18h ago
https://github.com/yt-dlp/yt-dlp#:~:text=channel%20%28string...
https://github.com/yt-dlp/yt-dlp#:~:text=%2Da%2C%20%2D%2Dbat...
https://github.com/yt-dlp/yt-dlp#:~:text=%2D%2Ddownload%2Dar...
Not to mention that the script is clearly LLM-generated
xnx•18h ago
dawnerd•16h ago
xnx•16h ago
Gemini nails it:
When downloading multiple playlists, it is usually better to organize them into separate folders so the files don't all end up in one giant mess. You can use an output template to automatically create folders based on the playlist title:
yt-dlp -a playlists.txt -o "%(playlist_title)s/%(playlist_index)s - %(title)s.%(ext)s"
dawnerd•12h ago