upvote
Download your favourite YouTube videos

(criminallyvulgar.dev)

Most of my YouTube playlists say something like "15 unavailable videos are hidden", or about ~10% for a 5 years old playlist. The same ratio holds true for most bookmarks of YouTube videos I have.

There's videos from ~15 years ago that I consider gone for good - lost to the great copyright apocalypse - having been unable to find them anywhere on the today's internet.

reply
One of the things I wish I could solve better, was a way to search for and show decent search results that you could then pipe into `yt-dlp`. Every method of doing this I've seen is basically a "hack" and often breaks or doesn't work at all. Anyone have a better solution to this that lets you basically build a frontend/proxy to Youtube or lets you Search, Show results and Download what you want to see lateR?
reply
A very useful script: https://github.com/offline-ant/await-clipboard/blob/main/awa...

and then do something like

`await-clipboard.sh | grep --line-buffered -z -e "youtu" | ...`

reply
>, was a way to search for and show decent search results

Not sure what you're exactly asking for. Google/Youtube does provide an "official" API for youtube searches:

https://developers.google.com/youtube/data/reference/rest/v3...

It's rate-limited but other hacks to scrape Youtube without the API will also be rate-limited as well unless you try to trick Google via unapproved hostile methods such as commanding an army of residential ip zombies and aggregate it.

Fundamentally, the index of Youtube videos lives in Google's servers so you're beholden to Google to get results from it. If the issue is that the Google's official results from search queries are not surfacing the videos you think are actually there, it means you'd have to build a duplicate (massive) "shadow" index to return those missing videos. To build such a beast, you're back to hitting the brick wall of rate-limits again.

reply
Do you know if this requires a GCP/Google account or can be it be used freely, but rate-limited to a reasonable rate for personal use?
reply
Answering my own question. No.

> API key not valid. Please pass a valid API key.

reply
Due to the nature of youtube updating so often all methods utilizing youtube's search would break often, but in the age of coding agents I don't think it matters as much anymore. Tell that to claude code and it will do it in 15 minutes. Being annoyed with youtube's search interface regressions I've basically built something similar by having an alternative frontend to better sort by date ranges, view count etc. It has already broken twice in last 6 months but fixing it is trivial by pointing a coding agent at it. The way it works is by piping the search query to automated playwright browser which returns the parsed search results and thumbnails. Also dabbled with Youtube's API in the past which sometimes shows results that don't show up on its regular search.
reply
What hacks have you found? I guess my first thought is some sort of snippet to run in the browser console, or an extension, that you can just run when using youtube itself that copies the yt-dlp command to downloads all the page's search results to your clipboard. Definitely a hack I'm just curious what else you've seen.

   copy(
     'yt-dlp ' +
     [...document.querySelectorAll('ytd-video-renderer a#video-title')]
       .map(a => {
         const u = new URL(a.href);
         return `"https://www.youtube.com/watch?v=${u.searchParams.get('v')}"`;
       })
       .join(' ')
   )
reply
Podsync will download videos from a playlist and then publish an XML feed of videos it's downloaded. You can set it up so that you interact with it by just adding videos to a (public or unlisted) playlist.

It's intended to be used as a youtube-to-podcast-player tool, but seems like it fits your use, too.

reply
> Anyone have a better solution

Since youtube api won't help with this someone needs to build a video index and a good search algorithm on top. Would be nice to be able to search through indexed subtitles too.

reply
I don't even want an "algorihtm" per se. Just search, show results and a download or paly. That's it.
reply
By algorithm I mean a scoring function to tell which video is relevant to the search.
reply
Freetube but if you want HD you have to separate out the video and audio downloads then combine them after. A little annoying but it does have download right there in the client
reply
freetube removed the download feature a while ago. see my other comment above on how i use freetube to download videos.
reply
Dang really? Guess I just haven’t needed it in a while
reply
i use freetube to search. i can select videos that i want to watch with a single click into a playlist and then export that playlist and feed it to yt-dlp. since my internet is often slow, that is the main way i watch videos. i don't even open them directly in freetube, but wait until yt-dlp is done downloading.
reply
> and often breaks

That's kinda the nature of YouTube downloaders/scrapers including yt-dlp. It's not exactly a public API that YouTube's offering to support.

reply
I regret not archiving all the videos from the youtuber Myles Power (pseudoscience-debunker). He was one of my more favorite YouTubers but a few years ago he nuked his entire channel and all the videos on it (I suspect because his employer didn't like him arguing with people on the internet).

I wanted to rewatch some of his videos recently and as far as I can tell most of his videos are now lost media. I should have downloaded them when I had the chance.

reply
Rather than using Tdarr, wouldn't it be simpler to use yt-dlp's `--recode-video` option?
reply
If the jellyfin receives content from anywhere else, a separate job for transcoding would cover those too.
reply
I've always downloaded entire YT channels I enjoyed. I now have free/forever access to tons of content that now sits behind paywalls on topics I care about.

All automated for years

reply
Every time you watch a youtube video you are downloading the youtube video to disk. It is just to prevent the lawyers from exploding that we all pretend that deleting it afterword means it never was downloaded.

But yes, everyone should be not deleting the videos they've downloaded.

reply
to the layman download means the whole video is stored in its entirety on my disk. and possibly to lawyers too. that is not happening with streaming videos. youtube videos in particular most likely never hit the disk. not even the cache. when i am watching youtube then i am not deleting the video after it is done. the "downloaded" segments disappear automatically as i watch. so there is no delete step that i could skip in order to keep the file. rather, actually downloading a video requires an entirely different operation.
reply
"to the layman download means the whole video is stored in its entirety on my disk."

Yes, that's exactly what it means.

reply
Technically watching a video only streams video chunks into memory. But of course there are tools pretending to be a youtube client to stream it to a file.
reply
deleted
reply
deleted
reply
Is this another yt-dlp wrapper?
reply
yes
reply