Agreed. Youtube downloaders are essential for backup purposes and for getting clips to put in your own videos as fair use. But people turning them in to fully user facing ad free frontends are driving the crackdown on the tools so we will end up with no way at all to download videos..
Would be nice if Youtube just let premium users download the actual video files. What I find interesting is how so many of the Chinese social media platforms just let you download videos while western tech companies pretty much universally block it.
> how so many of the Chinese social media platforms just let you download videos
The rate things are going I’ll just have to use those sites instead.
YouTube is a weird position. A lot of content is public domain and should be freely downloaded. Other content isn’t.
A good middle ground would be for YouTube to just give uploaders an option to enable downloads.
I do agree that people need to STOP trying to make yt-dl easy to use to the point it actually competes with YouTube. YouTube Red when you factor in music is a very good deal. I’ve been subscribed for years.
Like it or not but YouTube is almost entirely funded by ads. You don’t have a right to use the service without paying.
> Like it or not but YouTube is almost entirely funded by ads. You don’t have a right to use the service without paying.
I see your point, bit it isn't just the ads. I object to being stalked throughout my life online, they don't have the right to do that IMO.
Separate the ads from the stalking and maybe I'll just block or otherwise avoid the stalking and not the ads, but right now that is not remotely possible. I don't use sponsorblock for instance, the main extra stuff that circumvents can't be stalky, though I do manually skip when I've heard the same scripted-by-the-advertiser-to-try-sound-natural part already (wow, so your favourite part of the service is exactly the same as the other two podcasters I've listened to this day? In exactly the same words? That really sounds like a recommendation from you personally as a genuine user… (actually, this can sometimes be a useful signal of how little trust I should put in their other opinions!)).
But at the same time if you have an understanding that their business model demands you accept their terms of service, so they can fund the product, your basic options are participating or not.
The vast vast majority of the time I watch YouTube it's via an official client, and if you feel so strongly about your privacy I'm sure you're knowledgeable enough to sandbox your browser. You can always spin up a VM just for YouTube and run Chrome inside of that.
I rarely download public domain videos for music projects. But this gets harder every week. Eventually I'll just have to grab my phone with an analog audio jack and manually record back into my computer.
Or just download the public domain videos from another site. Yt-dl makes this phenomenally easier, but I definitely understand YouTube's motivations in blocking it.
I think saying you don't have a right is fine... they are providing a service and dictating it's usage and you are using it.
So on the "closing your eyes". On one side, yes, allowing your browser to play the video and YT then being able to treat as a advert view means that youtube gets paid and the creator gets paid.
However... I would personally view this as can a person do this and how it works as a generalisation and I would say "no", because if everyone did this (why does just one person have the right to close their eyes), then (at least I'd imagine) the companies paying for advertising would see a drop in click-throughs and (I don't know what you call it.. but let's just say) more money. They'd then stop paying for adverts. Then no companies would want to pay for adverts and YT is no longer profitable (to YT or the creators).
Even entertaining the idea is extremely disturbing and dystopian. Having control over what we watch and what we listen to should be basic human rights. And those are inalienable, meaning we can't sign away those rights, not in a contract, not in any terms of service.
People who accept that as something a company should be allowed to do are a massive problem. Because of you, they might actually do it. It will start by making sure you cannot mute the sound in any way, designing hardware in a way to enforce that - devices will start overriding the use of external speakers and play ads from internal ones to make absolutely sure you haven't muted it. Next they will force always-on cameras on us which will make sure our eyes are open and looking at the ad. Next we will have brain implants to make sure you're actually paying attention and not thinking about something else.
I find it extremely disturbing that you don't feel disgusted about even thinking of "yes".
Maybe they'll come up with a solution that requires you to turn on your camera while on youtube so that they can detect if you have your eyes and ears unblocked during ads. Blocked-eyes-blocked-ears detected = popup that pauses the video and asks you to unblock before continuing.
the advertising industry doesn't have a right to invade people's privacy on an unprecedented level, and create a massive black market for reselling people's personal information. But they do, so adblocking is, at the moment, the ethical and morally correct option.
If you work in a part of the advertising industry with any kind of privacy invasion you deserve to lose your job and have your business be shut down, in some cases even jail time would be completely deserved. So no you don't need to allow ads for ethical reasons.
Can you iterate on that? I would like to understand what you are saying.
By jail time, do you mean advertisers on YouTube have done such a malicious thing? YT did not block these efforts?
You said it yourself - it'd be nice if YouTube stopped and thought about what it could be doing differently to not drive as many people towards things like this. As I said elsewhere, the root cause isn't the people developing these frontends, it's the fact that the existing official frontend leaves users wanting something else.
youtube-dl just went largely dormant. There was a fiasco involving a unit test specifically downloading copyrighted content, but it was corrected. yt-dlp just became the more active fork.
The unlisting from GitHub was precisely due to the reason I mentioned, and Nat Friedman himself, CEO of GitHub at the time, dropped into the youtube-dl development IRC, assured the team that he had their back, and that the moment the infringing test was fixed, he would personally restore access, which he did posthaste.
Regarding the website being taken down, it was hosted in Germany and it was a German court order. Germany is notorious for this stuff, and it should never have been hosted there. If they wanted, they could have found a more reasonable host.
I understand the burnout, but it comes with the territory, and powerful enough people made it clear that the team did have their support. With some effort, the project could have continued on at full pace at least as uninhibited as its forks.
Now the URL just redirects to the yt-dlp GitHub repository, anyway.
Specifically testing the extra code needed to download certain videos - they didn't pick them just for the hell of it. It seemed unwise to have that in the public repo but I wouldn't describe it as a fiasco.
I think the truly uninteresting insight is the flippant assertion that people "just want to get stuff for free", rather than the numerous other reasons someone might want a different frontend, or to use yt-dlp.
Edit: Take me, for instance. I can tolerate ads, much as I hate them - waiting 15 seconds and hitting "skip" twice isn't going to kill me. But good christ do I not like YT's UI/UX.
This is not correct. Look at steam, PC gamers overwhelmingly choosing paid DRM controlled games over free piracy, even for small indie games that have basically no protections
Ill say again what gabe newell said. Piracy isnt a price problem, but a service issue. Its convenient, if you can make a legit way to get the product thats as convenient for the user as piracy, then they will pay for it
even if they are no ads, they still show you 99% only shit with no way to disable it. no i don't want "Shorts". no i don't want the "Gaming" or "Movie" tabs. no i don't ever want to see a video containing words like "reaction". why no customization?
That's not true, there are still lots of ads that you'll have to sit through. They're just not out there by Google, they're out their by the video creator.
Which, I get it, YouTube isn't paying them enough and they gotta eat. So, it kind of feels like YouTube letting them post their own ads is an intentional choice on YouTube's part to not give me the service I'm paying for.
It's not free. Regardless of what the original intention was two decades ago, Google is putting everyone under mass surveillance and their manipulative algorithmic feeds are threatening our democracy. That's an enormous cost all of us are paying right now. If people don't like that, good luck trying to avoid it. Youtube is now so pervasive that not using it effectively means not participating in society.
But yeah, why not also attach our payment information to our watch history to make it even more efficient for Google to keep on what it's doing right now?
Piracy isn't even the main use case of yt-dlp. It's archival of videos that you want to keep a copy of in case something happens to the video. There is literally no way to get that "feature" by paying Google. But you are correct that yt-dlp would not be necessary if Google offered an option to download videos (also in an automated way because many people have something set up to archive certain videos automatically).
They seem to be the only ones who get how piracy can be fought. And its no secret either, gabe newell has that "piracy is a service issue" quote for anyone to read. Its just that these companies dont want to consider not squeezing the life out of their users for shareholder benefit
> and pretty much any time piracy drops it's because of more effective DRM, not service.
Do you have any evidence to support your claim?
Music purchased on iTunes used to come with DRM. There were programs to get rid of it but they got shut down by Apple and were not easily accessible. Consumers pushed back on DRM and Apple eventually got rid of it.
Rather than leading to widespread piracy, most people just started renting their music from Spotify, Apple, or YouTube.
so, essentially, what you are saying is that yt-dlp should have never been open-sourced/published and ever posted on HN (so that not even you would have found out about it)?
No no. He’s saying that only people with his exact amount of technical skill and prowess deserves yt-dlp. If you for some reason are not knowledgable about cli tools, then that is the exact, natural, universal, god given reason that you do not deserve yt-dlp.
In order to ensure that not too many people learn about yt-dlp, we should also work to remove all access to knowledge about the magical super big brain requiring, mytical command line.
In fact to ensure that Google does not kill yt-dlp, everyone in the world except tracerbulletx should be force fed chemical powder that makes them stupid.
That way, only tracerbulletx will understand yt-dlp, and he can heroically guard this super secret tool that only those worthy deserves to know.
I think mister tracerbulletx has drank the stupid juice. its not a problem with developers (and products/apps the developers make), it's with google, not allowing downloads even when you pay a subscription
My take is: its either there with all of its features and popularity or its not. The argument that it will be taken down if its more popular seems to me fundamenally wrong.
the desire is already there. they've testing DRM for videos as we speak. this cat and mouse game will never end until google creates some anti-cheat with kernel permissions to attest anti-tamper
Not sure it was ever youtubes desire to shut it down. Why would they, as there are a multitude of reasons why someone would want a video off a platform. It was the RIAA's, since there the ones who sent the takedown.
This year AlphaGoogle has an initiative to kill ad-blockers. To that end, Youtube now aborts playback after 60 seconds if it cannot contact its ad server to play commercials.
It's clear where this is heading:
1) Youtube will go after software like yt-dlp to ensure only AlphaGoogle-sanctioned players can play its videos
2) Youtube will encode commercials directly into the videos it streams
> Youtube will encode commercials directly into the videos it streams
They stream the commercials separately on purpose, because this makes it a whole lot easier for them to track ad impression metrics. Splicing the ad within the same feed is technically quite feasible and indeed almost trivial, it doesn't even require a re-encoding of the entire video. So we can assume that they're avoiding that for a reason.
Even if they do it via some sort of chunking, then it's possible to skip chunks easily too (aka, relatively easy to bypass given the amount of effort to implement).
Not to mention it's hard to do caching this way imho.
Server Side Ad Insertion is a production technology used by many OTT services, so it is not something new.
What it means is adblocker can block the reporting API, but you still get to watch the ad and cost the streaming provider wasting money to splice the ad.
I mean, the root of the problem is that there is essentially only one "Youtube" that isn't a public service. Not sure if you make this better by leaning into it or not.
In some reguards I would say it is. Yt-dlp terminates my need for an adblocker for the lifetime of the videos I download, something chrome no longer does on a per-view basis and these days not as easily. It also blocks the YouTube algorithm suggestions, which in my eyes are an advertisement too.
If they shut down yt-dlp for good, a lot of power users and creators would find the YouTube platform useless for themselves and abandon it en masse for its nearest competitor. A tool like yt-dlp is very much required if you want to engage professionally with that kind of community. Even something as trivial as making a well-produced "video reaction" relies on it.
Yes, YT has good monetization, but it still pays peanuts to the average creator. So the competitive threat is very real - superstars alone wouldn't be enough to make for a really compelling platform.
> lot of power users and creators would find the YouTube platform useless for themselves and abandon it en masse for its nearest competitor.
Not so sure, since everything is monetized nowadays (YouTuber make video to earn money) and the audience is there, i don't see how they could move anywhere.
YouTube is mostly there as an advertisement tool nowadays, once you get any amount of an audience youtube revenue becomes a small piece of your income compared to things like Patreon, live streaming elsewhere, and even alternative hosting sources like floatplane or Nebula where creators will host exclusive content.
I hear you ... but I think you are massively downplaying how much many creators are earning a living largely off of YouTube monetization. You are right about that for some portion of creators but there are many that are earning most of their income off monetization (both from ads and premium).
The interesting question is whether YT as a platform pays enough to make this a relevant factor. Which I very much doubt is the case for most creators.
A question for the author or anyone else who has experience in similar solutions.
Is there any good solution for discovering new content? Much of the time, I want to stick to my subscriptions, but I do enjoy content surfaced by the algorithm at least once weekly, sometimes more often. My concern in taking my viewing off-platform is twofold: 1) going to YouTube will prompt me with all the stuff I've already watched off platform, and 2) any changes to my viewing habits won't be reflected in algorithmic suggestions.
Am I making any bad assumptions or missing anything that would be useful?
As an example, I usually get conference presentations surfaced for me, but I don't track conferences to know when I should go looking for presentations. YouTube is good at surfacing these for me.
I am almost a month into having a Perplexity subscription and I am not sure I can not have a deep research subscription at this point.
I have found youtube videos this month that I don't know how I would have found otherwise that were just part of the sources for what deep research came back with.
It has really created the opposite problem for me is I have so much good information I don't even know what to do with it right now. I am probably taking a month off to just sort through what I found this past month.
I view Discovery as a social problem where the content you want is almost always clustered between a relatively small number of creators, regions, etc.
Technically it then becomes less of an indexing everything problem and more of a find a few cornerstone creators, say Khan academy, and occasionally branching out.
So to answer your question I don’t thing the cost/benefit for automating discovery is much better then spending 20 minutes and finding enough cornerstones to fill you for 100+ hours of content. Or similarly finding a social group like an rss feed, say in ios development it would be fatbobman, and sourcing it from there.
Time to source content isn’t the bottleneck worthy of software solutions, yet for monetization reasons discovery is the vice grip of social media and made to be the most important thing.
There’s a lot of truth to this but one of the most powerful elements of a discovery algorithm is finding things you completely did not look for, ie Christopher Columbus and the western continents. Like your cornerstones are iOS and recipe videos but you discover the right dance video and it changes your whole life.
> you discover the right dance video and it changes your whole life
You're going to have to explain this one, how would a dance video change my life? Being exposed to something new that becomes profoundly life changing seems like a romanticized notion and not a realistic one especially within a monetized environment.
We're exposed to new stuff everyday, just because .0001% is truly impactful doesn't justify watching 100_000 short reels of ads, even if Google and Facebook REALLY want us to.
Well I’m sure there others who will agree that something small and completely unexpected has had a profound influence in their lives. The simplest example is something so novel and interesting opens you into a deep rabbit hole that changes your career and or who you meet, befriend or marry. The lack of a good recommendation algorithm is exactly the problem where these content platforms is you feel like you have to watch 100k videos to have a chance at such an encounter.
If you were to have something local build you an algorithm, what signal would you want it to consume and how far from the median would you want it to deviate? Would you want it to use signal from online socials?
Certainly, ingest all the signal you’d like, and then emit a feed for clients to consume (or to be republished). Could run locally, could run in a container, could run on an AT protocol PDS. It is an algorithm/discovery/recommendation sovereignty play.
I looked into this as well since I find the YouTube algorithm terrible, but couldn’t find any API for exploration. Which makes sense they want to control what you watch and hence monetize. In a perfect world you could just pick an open source recommendation algorithm from a marketplace and YouTube would just be a wrapper around s3 buckets and some index.
You have to store bits somewhere, and an S3 compatible target optimizes for flexibility and optionality. It can be local (Minio), it can be remote, the client does not care where it is. Even the Internet Archive's API is S3-ish.
I've been using Unhook[0] for years that it's almost a jumpscare for me to see a recommended video or the Youtube homepage. Your social circles and natural serendipity should be plenty for finding new creators. And in general, avoiding algorithmic feeds will help with ADHD and mindless scrolling.
I use a Firefox profile to watch specific videos while logged-out just for the focused recommendations.
I've also noticed that I getting more recommendations for small creators with little to no views/subs when I'm browsing from a smaller, developing country.
I readily follow youtube links offered on HN discussions. If anything, I could use more of these.
But otherwise I agree with your concern. Video recommendations on youtube was far from perfect (very repetitive in my experience), but was uncovering useful stuff.
good question. I don't think I have a definitive answer but I'll try:
- pure luck. sometimes I discover a channel/creator/blog by pure accident, I'm an avid rss reader and HN adept so content comes to me naturally, so to speak.
- following a feed (be it a website's rss feed, reddit/YouTube) sometimes made me discover related feeds, simply because someone wrote about a cool project a peer made and links their YouTube/github/blog
We built Videocrawl [1] to enhance the learning and watching experience using LLMs. It handles the usual tasks like clean transcript extraction, summarization, and chat-based interaction with videos. However, we go a step further by analyzing frames to extract code snippets, references, sources, and more.
You can try it out by watching a video on Videocrawl, such as the OpenAI Agent video, by following this link [2]. LLMs have the potential to significantly improve how we learn from and engage with videos.
Can you make either a hub.docker or ghcr.io premade image so that people can just pull the image and run it and automate the updates? Its pretty standard practice in the self hosting world and if you don't do it a lot of people will not install it. People have 40-50 odd services installed, managing it via git updates just isn't going to happen.
What I've wanted for a while now is a browser extension that adds a button on youtube video pages, where you click on it and it does yt-dlp downloading but saves it to something like ipfs and posts it to some free video site for indexing.
Basically, there should be a video indexing/search/discovery protocol (don't care if it's still http) where random people can submit metadata and a link to a distributed content-addressable system like ipfs. Alternatives to youtube,tiktok,etc.. even platforms like Bluesky can make use of this. Popular videos get more "seeds"/"mirrors" this way. The biggest problem is getting enough interesting content, so the browser extension helps with that, you just click "share in <insert platform name>" and you have it locally available as well as available on any of your other devices, and now others can see the content without having to use yt.
pirating who? I actually don't know who holds the copywrite to youtube videos. I assume the creators do, and that a lot of them would be happy to have their videos shared. It's google that wants suck the value out of the creations for themselves.
it's piracy when you share it with others, it can default to act as your personal cloud. It is dropbox/onedrive/gdrive except optionally searchable/shared/indexable by the public or a group of people (those legit services already allow public sharing of arbitrary data).
What I'd like is essentially a user-controlled caching layer for everything. When you view a webpage or video or something you are fully downloading all of that data, you might as well optimistically write it to a local cache. Then a browser extension could be made that says "save this version" which tells the caching layer to add a tag to all of the assets that were downloaded in this page view. It would create a tag that means all of those assets aren't garbage collected from your local cache and you retain your copy forever.
Super-charging this idea with IPFS is even better. Essentially a collective Internet Archive will be created with every version of every page someone has decided they are interested in, for whatever reason.
This kind of thing would be perfectly feasible with the web as it was designed, which was designed with caching in mind.
But, of course, big corporations like Google will fight hard to stop such a thing happening because they don't want you in control. They want to be in control. They hate peer to peer technologies because they can't control them.
I built the same thing a few years back [0], and used the YouTube API for searching. It was fun on the building part.
For hosting, though, I picked Heroku, and they kept removing my deployment because I downloaded ytdlp on it! I ended up deploying it on my own server to make it work.
This is monetizable for parents (or at least, highly needed). YouTube is terrible for child behavior as there are so many pranks and people screaming etc (in kids content) but there are a select few YouTubers who are really good for kids. For example our 10yo does well with: ZebraGamer, Half Asleep Chris, Mark Rober, Brick Experiment Channel, Ants Canada, etc. We have it locked down via safe app but it would be great to have this for the full home network with channels buttoned down.
I use the "unhook" extension which let's you remove recommendations, set your youtube home page to your subscriptions (chronologically ordered videos), block shorts and more (you can cherrypick the features you want). Highly recommended. I would have paid for youtube premium if I was given these options, honestly.
They are constantly testing pushing other things into the subscription box.
What I want is it to only show me videos. Now, it also shows shorts, and also now “community posts” which are frequently just self-promotion and useless polls that drive engagement. I’ve started unsubscribing from anyone that uses those features too much. I want videos not “check out my twitch channel” and “want more merch? Check out my merch! Also this is a poll so that you will click it”
One channel I follow got some new “comments from the community” kind of feature, and suddenly posts from anyone on YouTube were showing up in my sub box because they also subscribed to the same creator. All of the posts were image posts that were blatantly rule breaking spam, or comments like “why is this a feature”. None of them were from anyone I intentionally followed. Literally just random internet comments as a huge section in my sub-box. I instantly unsubscribed.
YouTube REALLY wants to shove other content into the “subscription box” because as-is it lets you avoid all the algorithmic clickbait.
Potentially dumb question: if YouTube.js works in browser - can/has someone made a YouTube player that’s just a static page? Is there a need for a backend?
Just got done setting up Pinchflat this morning as I need jellyfin and sponsorblock integration but it’s always great to see a nice gui around yt-dlp with some new niche features.
Personally I don't even use it to watch the video and instead open them in browser, but it allows to monitor the channel you want and only that with a 'feed' that consist of their video in chronological order.
It doesn't require self hosting, no YouTube account, has the thing to skip promotional video and setting to automatically change clickbait thumbnail.
How does yt-dlp work with sponsorblock? Does it download the video can snip out segments?
I wish PLEX still had youtube plugin. Right now I have a googlesheet script that adds latest videos of channels into various playlists on my premium account. Keeps things simple bouncing between devices / chromecast.
Just recently I stumbled upon these options of yt-dlp, but haven't had the chance to dig deeper (sorry in advance for the formatting):
SponsorBlock Options:
Make chapter entries for, or remove various segments (sponsor, introductions, etc.) from downloaded YouTube videos using the SponsorBlock API (https://sponsor.ajay.app)
--sponsorblock-mark CATS SponsorBlock categories to create chapters for, separated by commas. Available categories are sponsor, intro, outro,
selfpromo, preview, filler, interaction, music_offtopic, poi_highlight, chapter, all and default (=all). You can prefix the
category with a "-" to exclude it. See [1] for descriptions of the categories. E.g. --sponsorblock-mark all,-preview [1]
https://wiki.sponsor.ajay.app/w/Segment_Categories
--sponsorblock-remove CATS SponsorBlock categories to be removed from the video file, separated by commas. If a category is present in both mark and
remove, remove takes precedence. The syntax and available categories are the same as for --sponsorblock-mark except that
"default" refers to "all,-filler" and poi_highlight, chapter are not available
--sponsorblock-chapter-title TEMPLATE An output template for the title of the SponsorBlock chapters created by --sponsorblock-mark. The only available fields are
start_time, end_time, category, categories, name, category_names. Defaults to "[SponsorBlock]: %(category_names)l"
--no-sponsorblock Disable both --sponsorblock-mark and --sponsorblock-remove
--sponsorblock-api URL SponsorBlock API location, defaults to https://sponsor.ajay.app
I basically have an even simpler version of something like this for my own personal use too. I found it pretty easy to write in Go and my area of expertise is decidedly not web frontend/backend. I’d recommend it as a fun little project if you’re looking for something to do.
For mine, I paste in a video or playlist URL and it downloads the video and creates a lower resolution transcoded version suitable for streaming to my phone. It also extracts an audio-only version in case that’s more appropriate.
I have one too, it's honestly a very fun area to program around, and I'm not going to be surprised if this thread is full of me-toos.
Mine is specifically meant to help get videos onto plex in exactly the way we want - with particular emphasis on playlists, taking the numbering and putting it in plex format, and transcoding any codecs (detected via ffprobe) i know certain shitty players (smart TVs) will have issues with. Along with putting it in the right spot on the filesystem with the right permissions and user+group set so it serves correctly over samba too (for management from windows / via GUI).
Plex is the destination for my setup, too. I have a bookmarklet I can click when I'm on any Youtube (or other video) page that sends the URL to a local Flask app that's just a wrapper for calling yt-dlp with the right args and post-processing.
I have something similar as a simple PHP script on a shared hosting service. I can't PHP well anymore so it's probably the worst and most insecure code I've produced by a big margin. Does it do the job? Yes.
No unfortunately, not only is it too tangled (not irredeemably, but I've never made an effort t try to make it cleanly ploppable) with the rest of my home-rails-server monolith, but the code is all also ridiculously bad, written in 2000 separate 5 minute scraps of time, all while standing up and holding at least one baby.
Would really appreciate if you could add some options for download quality(with webm merge for 4k support), gave it a go and it just by default downloads the 360p MP4.
Interesting project and great to see other projects as well. Everyone has their own wants, wishes, and requirements for their YT feed so its awesome to see what people have come up with.
This post has actually inspired me to create something of my own because I am the worst YT addict of all time.
it is awful that a paid subscription product like YouTube does actually aim to give their (paying) users the worst experience possible by only ever showing stuff i do NOT want to see and offering no way to disable or customize things. honestly, is there anyone happy with their offering?
but will this or anything similar ever run on FireTV / Samsung?
Hi Chris, do you know how to handle issues with cookies in production? It seems yt-dlp works fine, but once put in a cloud runner, it doesn't work. Coincidentally, I was also working with yt-dlp this week for another reason.
the project currently supports cookies (never use your own though, of your google profile), just place them in cookies.txt in the root of the project.
but it didn't seem to work well on my server, on a residential IP it works well
I get sign in to prove your not a bot all the time since the last few months esp on vpn. Too scared to use my home ip cus I don’t want my gmail to get banned with it
Thanks! It is definitely not the cleanest code I've written but I'm slowly making it cleaner and ready for OSS contributions. Learned a ton along the way too, which makes this all worth it nevertheless.
I'll use the common excuse: I jotted this project down for myself without the thought of publishing it ^^
There's Piped but that keeps running into "IOS player response is not valid" error. (I don't know if my Invidious instance works either, I shut it down because of errors.)
As a user of a Firefox-based browser, YouTube's performance really is hit or miss. Sometimes it's ok, other times it's barely useable.
These days I simply queue up videos in mpv. It is much lighter on the resources, and also provides a nice cache that makes seeking through videos a breeze. I can open a link straight in mpv using a very nice system[1].
Once I have an mpv instance open I simply drag links on top of it to enqueue them. (shift+drag if you haven't set the following option in your config: drag-and-drop=append)
It works so well I find myself doing it for other online sources of videos too (e.g. Twitter/X, local TV websites, ...)
I use h264ify plugin and didn't see performance issues for playback. The UI depends on test group you go into, but only the first load is really terrible.
tip: Disable YouTube history and go to subscription page for chronological ordered videos. No more "algorithmically curated" videos in YouTube home page.
Disabling YouTube history makes two additional changes:
no more "algorithmically curated" videos in your YouTube homepage and no more YouTube Shorts rabbithole.
Seems it needs docker and/or NodeJS and runs as a server, so not something most of the non technical users out there would use. This makes widespread adoption unlikely.
If it was packaged as a single executable electron app on the other hand, that would be another story.
Hmm nice. I already have my own search frontend (SearXNG), my own chat frontend (Matrix+Element), LLM (OpenWebUI), and this would now be a good addition.
It's sad that it's necessary but the internet has become so enshittified.
(Also, to all the other posters who have done the same for themselves)
--
I have been mentally building a UX I want out of YT over the last few weeks.
What I want to do is have it go through all my history and categorize it and give me a local page and sqlite3 of my browsing hist with various meta-data..
My YT experience has gotten so poor, that even browsing which channels I am sub'd to and finding newer vids in them is a nightmare of a dark pattern...
I thought I wouldnt be able to pull off my vision - but this gives me new hope - and I had told myself that this week I would make an attempt.
One thing I want to do is include VoidTools 'Everything' Search into some MCP tools for Cursor -- and this inspiration ties it all into a more formulated vision for what I want out of a YT ux.
I look forward to trying this out and seeing if it fills the void - or still build my own thing.
(There was an HN SHOW: that was "what if YT channels were like a TV some time ago and that always pops into my head)
--
EDIT: With the postings of GH repos and such, and my comment on categorizing and searching hist -- I also want to be able to have a dashboard of GH repos that I click on, and then have that click in hist be sent to my history categorizer automatically and give me a summary of the thing and category. maybe even from which site I found the repo -- so much like broawsing a YT hist of vids - being able to see all the repos I have been interested in.
I remember a project from some 20 years ago that acted as a proxy and kept a local copy of every single page you visited. I don't remember any details other that you could access that app and search through the history based on time, urls, page titles and content separately.
I believe this is one area where current AI could really shine.
For instance I have a large collection of links about the stuff I care or one I use as one-line answers to different questions (e.g. a friend is taking part in a hackathon and needs a color palette to display some statistical data - in my collection I exactly that along with 20 page long explanation on why these particular colors were chosen if one wish to know).
I keep them in a long markdown file I can somehow navigate by using tags, hierarchy and short descriptions but it gets clunky. Having youtube links doesn't help.
Would be nice to have a tool that would be able to get transcription, distil it to a short summary and maybe you could even ask direct questions about the contents.
I have one for categorizing subscriptions/channels. I've been running it for 3y maybe more. SQLite too. No history integration. I have not opened sourced it because the code is thrown together and there are some subscriptions that the YouTube API doesn't return. I'm not certain what the commonality between them is, either. Possibly country of origin.
This is awesome and it's one of the countermeasures that the book Chokepoint Capitalism proposed against enshittification.
Imagine seeing Twitch, Nebula, Youtube, etc all in one aggregator app, then the switching cost of leaving one platform to another goes way down. If a content creator wanted to move from one platform to another to get a better deal, the users would hardly notice.
Unfortunately I think DRM + DMCA makes this illegal, e.g. removing DRM from a Netflix stream to use a third-party app is illegal even if there is no copyright infringement. This needs to be fixed.
This already kinda exists in the TV sticks like Google TV in that all recently watched / continue watching is a mix of different services that open the correct app when launched. Also has the "Live" tab which shows a combined TV guide of all app's that share it (pluto, tubi, prime, etc)
Of course this still locks you into the end app for playback but the concepts are there.
Indeed, those with ridiculously slow broadband networks won't ever get 4k content again.
DRM was.. and still is dumb... as it collectively punishes paying customers. While ContentID is sometimes abused by brazen scammers, it is a better solution given the majority of content is still served off the YT platform. =3
> DRM was.. and still is dumb... as it collectively punishes paying customers.
Maybe it's true in other contexts, but users of such frontend likely are not paying for youtube and they're also not paying with their eyes (ads) so the DRM here is working as intended...
Also paying customers are already allowed to download youtube videos (granted they can't watch it outside of youtube but it still counters your broadband claim).
Sure, but it is not users that ultimately make that policy choice, and may be rescinded at any time. Thus, still seems lame...
Most streaming platforms have fragile resolution fail-back thresholds, and rightfully discourage camping on CDN host connections for 10 times longer than most of the users.
These days the amount of media data people consume in a year will be disproportionately larger than the capacity of any information appliance. i.e. not paying for the service would still mean a fortune in offline storage devices.
DRM still sucks, ask any library or historian. But I do respect your opinion, as it could seem true for some. =3
At least for my circumstance, Comcast has a 1.2TB/month limit before they hit you with hefty fees. If I stored my entire 14.4 TB/year, that'd cost ~$150 worth of disks (and not even require a full disk). So the storage for a full year of data use (Comcast alleges the actual average use is ~500 GB/mo) is less than the cost of a single subscription service. If you use a file more than once, that works out even better. And for things like music, storage costs are essentially irrelevant even if you use SSDs.
We agree most content is only viewed once, and thus DRM is still pointless in terms of advertising revenue from people that likely won't buy anything in the first place.
Both YT premium and Netflix is around $100/yr, and I seriously doubt you will find 14TB consumer storage media at that cost. It is a silly behavior for sure =3
At least when I look, YT premium says it is $140/year (or $276/year for a family plan), and Netflix is $216/year. Spotify is $144/year. It's certainly possible to find drives at ~$10/TB. Call it $15/TB if you don't get a great deal and if you want to add some parity.
The more interesting point though is that at ~5 GB/hour (a decent bitrate, especially for youtube) and $15/TB, you're looking at ~$0.075/hour of video. If something isn't worth $0.08 to keep, is it worth your time to watch? This is probably a question media companies would prefer you not ask yourself.
I kind of wish people would stop making yt-dlp more accessible and increasing Google's desire to shut it down.
Agreed. Youtube downloaders are essential for backup purposes and for getting clips to put in your own videos as fair use. But people turning them in to fully user facing ad free frontends are driving the crackdown on the tools so we will end up with no way at all to download videos..
Would be nice if Youtube just let premium users download the actual video files. What I find interesting is how so many of the Chinese social media platforms just let you download videos while western tech companies pretty much universally block it.
> how so many of the Chinese social media platforms just let you download videos
The rate things are going I’ll just have to use those sites instead.
YouTube is a weird position. A lot of content is public domain and should be freely downloaded. Other content isn’t.
A good middle ground would be for YouTube to just give uploaders an option to enable downloads.
I do agree that people need to STOP trying to make yt-dl easy to use to the point it actually competes with YouTube. YouTube Red when you factor in music is a very good deal. I’ve been subscribed for years.
Like it or not but YouTube is almost entirely funded by ads. You don’t have a right to use the service without paying.
> Like it or not but YouTube is almost entirely funded by ads. You don’t have a right to use the service without paying.
I see your point, bit it isn't just the ads. I object to being stalked throughout my life online, they don't have the right to do that IMO.
Separate the ads from the stalking and maybe I'll just block or otherwise avoid the stalking and not the ads, but right now that is not remotely possible. I don't use sponsorblock for instance, the main extra stuff that circumvents can't be stalky, though I do manually skip when I've heard the same scripted-by-the-advertiser-to-try-sound-natural part already (wow, so your favourite part of the service is exactly the same as the other two podcasters I've listened to this day? In exactly the same words? That really sounds like a recommendation from you personally as a genuine user… (actually, this can sometimes be a useful signal of how little trust I should put in their other opinions!)).
You don't need to use the service.
But at the same time if you have an understanding that their business model demands you accept their terms of service, so they can fund the product, your basic options are participating or not.
The vast vast majority of the time I watch YouTube it's via an official client, and if you feel so strongly about your privacy I'm sure you're knowledgeable enough to sandbox your browser. You can always spin up a VM just for YouTube and run Chrome inside of that.
I rarely download public domain videos for music projects. But this gets harder every week. Eventually I'll just have to grab my phone with an analog audio jack and manually record back into my computer.
Or just download the public domain videos from another site. Yt-dl makes this phenomenally easier, but I definitely understand YouTube's motivations in blocking it.
Us not having the right seems a little extreme. What if I close my eyes and block my ears during evey ad? Do I not have the right to use YouTube then?
I would say yes and no (leaning on the no)...
I think saying you don't have a right is fine... they are providing a service and dictating it's usage and you are using it.
So on the "closing your eyes". On one side, yes, allowing your browser to play the video and YT then being able to treat as a advert view means that youtube gets paid and the creator gets paid.
However... I would personally view this as can a person do this and how it works as a generalisation and I would say "no", because if everyone did this (why does just one person have the right to close their eyes), then (at least I'd imagine) the companies paying for advertising would see a drop in click-throughs and (I don't know what you call it.. but let's just say) more money. They'd then stop paying for adverts. Then no companies would want to pay for adverts and YT is no longer profitable (to YT or the creators).
Even entertaining the idea is extremely disturbing and dystopian. Having control over what we watch and what we listen to should be basic human rights. And those are inalienable, meaning we can't sign away those rights, not in a contract, not in any terms of service.
People who accept that as something a company should be allowed to do are a massive problem. Because of you, they might actually do it. It will start by making sure you cannot mute the sound in any way, designing hardware in a way to enforce that - devices will start overriding the use of external speakers and play ads from internal ones to make absolutely sure you haven't muted it. Next they will force always-on cameras on us which will make sure our eyes are open and looking at the ad. Next we will have brain implants to make sure you're actually paying attention and not thinking about something else.
I find it extremely disturbing that you don't feel disgusted about even thinking of "yes".
Maybe they'll come up with a solution that requires you to turn on your camera while on youtube so that they can detect if you have your eyes and ears unblocked during ads. Blocked-eyes-blocked-ears detected = popup that pauses the video and asks you to unblock before continuing.
"Say McDonalds to end commercial" https://www.snopes.com/fact-check/sony-patent-mcdonalds/
This is an actual black mirror episode
https://en.wikipedia.org/wiki/Fifteen_Million_Merits
> Like it or not but YouTube is almost entirely funded by ads. You don’t have a right to use the service without paying.
Am I still allowed to close my eyes and turn down the volume when some ad is shown?
Not if the ad industry gets a say in it.
https://www.snopes.com/fact-check/sony-patent-mcdonalds/
the advertising industry doesn't have a right to invade people's privacy on an unprecedented level, and create a massive black market for reselling people's personal information. But they do, so adblocking is, at the moment, the ethical and morally correct option.
If you work in a part of the advertising industry with any kind of privacy invasion you deserve to lose your job and have your business be shut down, in some cases even jail time would be completely deserved. So no you don't need to allow ads for ethical reasons.
Can you iterate on that? I would like to understand what you are saying. By jail time, do you mean advertisers on YouTube have done such a malicious thing? YT did not block these efforts?
You said it yourself - it'd be nice if YouTube stopped and thought about what it could be doing differently to not drive as many people towards things like this. As I said elsewhere, the root cause isn't the people developing these frontends, it's the fact that the existing official frontend leaves users wanting something else.
To do that we literally need shareholder not chasing money and pushing Alphabet pushing the Youtube team for higher and higher profit margin.
The sad root of all things.
YouTube downloaders have existed since the dawn of YouTube. And I really don't think they have jumped in popularity recently or anything.
They get shut down constantly if they become popular though.
yt-dlp is itself a fork of the (very popular) youtube-dl
youtube-dl just went largely dormant. There was a fiasco involving a unit test specifically downloading copyrighted content, but it was corrected. yt-dlp just became the more active fork.
You've identified the reason for the fork, but not the reason the projects maintainers burned out in the first place.
youtube-dl were under the microscope and were even unlisted from github at one point[0].
And as recent as 1yr ago had their website taken offline[1].
[0]: https://www.reddit.com/r/DataHoarder/comments/jgtzum/youtube...
[1]: https://www.reddit.com/r/youtubedl/comments/15wx4sl/youtubed...
The unlisting from GitHub was precisely due to the reason I mentioned, and Nat Friedman himself, CEO of GitHub at the time, dropped into the youtube-dl development IRC, assured the team that he had their back, and that the moment the infringing test was fixed, he would personally restore access, which he did posthaste.
Regarding the website being taken down, it was hosted in Germany and it was a German court order. Germany is notorious for this stuff, and it should never have been hosted there. If they wanted, they could have found a more reasonable host.
I understand the burnout, but it comes with the territory, and powerful enough people made it clear that the team did have their support. With some effort, the project could have continued on at full pace at least as uninhibited as its forks.
Now the URL just redirects to the yt-dlp GitHub repository, anyway.
Specifically testing the extra code needed to download certain videos - they didn't pick them just for the hell of it. It seemed unwise to have that in the public repo but I wouldn't describe it as a fiasco.
It was a fiasco because it led to the repo being DMCA'd
I'd say it's less people's fault and more Google's for driving people to want something like it.
Yes, people prefer to get stuff for free rather than paying for it. That's not a very interesting insight.
I think the truly uninteresting insight is the flippant assertion that people "just want to get stuff for free", rather than the numerous other reasons someone might want a different frontend, or to use yt-dlp.
Edit: Take me, for instance. I can tolerate ads, much as I hate them - waiting 15 seconds and hitting "skip" twice isn't going to kill me. But good christ do I not like YT's UI/UX.
This is not correct. Look at steam, PC gamers overwhelmingly choosing paid DRM controlled games over free piracy, even for small indie games that have basically no protections
Ill say again what gabe newell said. Piracy isnt a price problem, but a service issue. Its convenient, if you can make a legit way to get the product thats as convenient for the user as piracy, then they will pay for it
There is no way to pay google to get features like these or like what yt-dlp offers. If there was I would have gladly paid.
You can pay for YouTube Premium and get no ads.
I am not talking about ads (specifically), but about all the control that these tools offer.
even if they are no ads, they still show you 99% only shit with no way to disable it. no i don't want "Shorts". no i don't want the "Gaming" or "Movie" tabs. no i don't ever want to see a video containing words like "reaction". why no customization?
That's not true, there are still lots of ads that you'll have to sit through. They're just not out there by Google, they're out their by the video creator.
Which, I get it, YouTube isn't paying them enough and they gotta eat. So, it kind of feels like YouTube letting them post their own ads is an intentional choice on YouTube's part to not give me the service I'm paying for.
This is a weird take. What is an "ad", and how would you expect any company to remove in-video "ads" without rampant accusations of censorship?
If a channel posts a review of a piece of hardware that was sent to them for free by the manufacturer is the entire video an ad?
> What is an "ad", and how would you expect any company to remove in-video "ads" without rampant accusations of censorship?
This is solved. Crowdsourcing. Look up sponsorblock
> What is an "ad"
Considering YouTubers have to disclose paid promotions, this isn’t nearly as grey as your question suggests.
https://support.google.com/youtube/answer/154235
> What is an "ad", and how would you expect any company to remove in-video "ads" without rampant accusations of censorship?
You can already do this with Sponsorblock.
> If a channel posts a review of a piece of hardware that was sent to them for free by the manufacturer is the entire video an ad?
Yes.
I deal with a lot of archival and forensics and tools like yt-dlp are invaluable, even outside of YouTube.
There are important use cases for these tools outside of "free stuff".
It's not free. Regardless of what the original intention was two decades ago, Google is putting everyone under mass surveillance and their manipulative algorithmic feeds are threatening our democracy. That's an enormous cost all of us are paying right now. If people don't like that, good luck trying to avoid it. Youtube is now so pervasive that not using it effectively means not participating in society.
But yeah, why not also attach our payment information to our watch history to make it even more efficient for Google to keep on what it's doing right now?
> prefer to get stuff for free rather than paying for it
This is how you describe a glorified VCR?
netflix (initially at least), spotify and steam have all shown that it's not a money problem, but a service problem.
Good services will not get pirated.
Piracy isn't even the main use case of yt-dlp. It's archival of videos that you want to keep a copy of in case something happens to the video. There is literally no way to get that "feature" by paying Google. But you are correct that yt-dlp would not be necessary if Google offered an option to download videos (also in an automated way because many people have something set up to archive certain videos automatically).
What?
Literally all those services have piracy problems, and pretty much any time piracy drops it's because of more effective DRM, not service.
Counterexample: steam
They seem to be the only ones who get how piracy can be fought. And its no secret either, gabe newell has that "piracy is a service issue" quote for anyone to read. Its just that these companies dont want to consider not squeezing the life out of their users for shareholder benefit
> and pretty much any time piracy drops it's because of more effective DRM, not service.
Do you have any evidence to support your claim?
Music purchased on iTunes used to come with DRM. There were programs to get rid of it but they got shut down by Apple and were not easily accessible. Consumers pushed back on DRM and Apple eventually got rid of it.
Rather than leading to widespread piracy, most people just started renting their music from Spotify, Apple, or YouTube.
so, essentially, what you are saying is that yt-dlp should have never been open-sourced/published and ever posted on HN (so that not even you would have found out about it)?
No no. He’s saying that only people with his exact amount of technical skill and prowess deserves yt-dlp. If you for some reason are not knowledgable about cli tools, then that is the exact, natural, universal, god given reason that you do not deserve yt-dlp.
In order to ensure that not too many people learn about yt-dlp, we should also work to remove all access to knowledge about the magical super big brain requiring, mytical command line.
In fact to ensure that Google does not kill yt-dlp, everyone in the world except tracerbulletx should be force fed chemical powder that makes them stupid.
That way, only tracerbulletx will understand yt-dlp, and he can heroically guard this super secret tool that only those worthy deserves to know.
I think mister tracerbulletx has drank the stupid juice. its not a problem with developers (and products/apps the developers make), it's with google, not allowing downloads even when you pay a subscription
lol so poetical
They're not talking about yt-dlp itself though.
But if they were, they probably would agree that it never should have been posted to HN, not even the first time they saw it on HN.
Not publishing at all would obviously be incorrect. You know they're not saying that.
My take is: its either there with all of its features and popularity or its not. The argument that it will be taken down if its more popular seems to me fundamenally wrong.
the desire is already there. they've testing DRM for videos as we speak. this cat and mouse game will never end until google creates some anti-cheat with kernel permissions to attest anti-tamper
Not sure it was ever youtubes desire to shut it down. Why would they, as there are a multitude of reasons why someone would want a video off a platform. It was the RIAA's, since there the ones who sent the takedown.
This year AlphaGoogle has an initiative to kill ad-blockers. To that end, Youtube now aborts playback after 60 seconds if it cannot contact its ad server to play commercials.
It's clear where this is heading:
1) Youtube will go after software like yt-dlp to ensure only AlphaGoogle-sanctioned players can play its videos
2) Youtube will encode commercials directly into the videos it streams
Both will come to pass. It's not 'if' but 'when'
And we'll have middleware that detects and splices out commercials based on frame fingerprints not long after. People hate ads.
It'll definitely trouble the non-technical set though.
> Youtube will encode commercials directly into the videos it streams
They stream the commercials separately on purpose, because this makes it a whole lot easier for them to track ad impression metrics. Splicing the ad within the same feed is technically quite feasible and indeed almost trivial, it doesn't even require a re-encoding of the entire video. So we can assume that they're avoiding that for a reason.
it isn't cheap to splice a video.
Even if they do it via some sort of chunking, then it's possible to skip chunks easily too (aka, relatively easy to bypass given the amount of effort to implement).
Not to mention it's hard to do caching this way imho.
Server Side Ad Insertion is a production technology used by many OTT services, so it is not something new.
What it means is adblocker can block the reporting API, but you still get to watch the ad and cost the streaming provider wasting money to splice the ad.
I mean, the root of the problem is that there is essentially only one "Youtube" that isn't a public service. Not sure if you make this better by leaning into it or not.
Why should it be a public service?
do you feel the same about ad blockers?
Ad blockers are basically about blocking ads. Yt-dlp has also uses whose main purpose is not about blocking ads.
In some reguards I would say it is. Yt-dlp terminates my need for an adblocker for the lifetime of the videos I download, something chrome no longer does on a per-view basis and these days not as easily. It also blocks the YouTube algorithm suggestions, which in my eyes are an advertisement too.
it's a nice side-effect though.
gatekeeping is not the way.
I don't think they can ever kill it. Something else will rise. There is too much demand for it.
people are idiots... and trying to become famous by using the lowest hanging fruit, hence killing it in the process.
Yesss, let’s generalize everything, that’s how we got where we are right now. Bravo!
If they shut down yt-dlp for good, a lot of power users and creators would find the YouTube platform useless for themselves and abandon it en masse for its nearest competitor. A tool like yt-dlp is very much required if you want to engage professionally with that kind of community. Even something as trivial as making a well-produced "video reaction" relies on it.
Yes, YT has good monetization, but it still pays peanuts to the average creator. So the competitive threat is very real - superstars alone wouldn't be enough to make for a really compelling platform.
> lot of power users and creators would find the YouTube platform useless for themselves and abandon it en masse for its nearest competitor.
Not so sure, since everything is monetized nowadays (YouTuber make video to earn money) and the audience is there, i don't see how they could move anywhere.
YouTube is mostly there as an advertisement tool nowadays, once you get any amount of an audience youtube revenue becomes a small piece of your income compared to things like Patreon, live streaming elsewhere, and even alternative hosting sources like floatplane or Nebula where creators will host exclusive content.
I hear you ... but I think you are massively downplaying how much many creators are earning a living largely off of YouTube monetization. You are right about that for some portion of creators but there are many that are earning most of their income off monetization (both from ads and premium).
The interesting question is whether YT as a platform pays enough to make this a relevant factor. Which I very much doubt is the case for most creators.
Afaik others do not pay more, so an exodus is just wishful thinking detached from reality.
that's wishful thinking. There is basically no relevant competitor to youtube, Google is extremely comfortable in doing whatever they want with it.
A question for the author or anyone else who has experience in similar solutions.
Is there any good solution for discovering new content? Much of the time, I want to stick to my subscriptions, but I do enjoy content surfaced by the algorithm at least once weekly, sometimes more often. My concern in taking my viewing off-platform is twofold: 1) going to YouTube will prompt me with all the stuff I've already watched off platform, and 2) any changes to my viewing habits won't be reflected in algorithmic suggestions.
Am I making any bad assumptions or missing anything that would be useful?
As an example, I usually get conference presentations surfaced for me, but I don't track conferences to know when I should go looking for presentations. YouTube is good at surfacing these for me.
I am almost a month into having a Perplexity subscription and I am not sure I can not have a deep research subscription at this point.
I have found youtube videos this month that I don't know how I would have found otherwise that were just part of the sources for what deep research came back with.
It has really created the opposite problem for me is I have so much good information I don't even know what to do with it right now. I am probably taking a month off to just sort through what I found this past month.
I view Discovery as a social problem where the content you want is almost always clustered between a relatively small number of creators, regions, etc.
Technically it then becomes less of an indexing everything problem and more of a find a few cornerstone creators, say Khan academy, and occasionally branching out.
So to answer your question I don’t thing the cost/benefit for automating discovery is much better then spending 20 minutes and finding enough cornerstones to fill you for 100+ hours of content. Or similarly finding a social group like an rss feed, say in ios development it would be fatbobman, and sourcing it from there.
Time to source content isn’t the bottleneck worthy of software solutions, yet for monetization reasons discovery is the vice grip of social media and made to be the most important thing.
There’s a lot of truth to this but one of the most powerful elements of a discovery algorithm is finding things you completely did not look for, ie Christopher Columbus and the western continents. Like your cornerstones are iOS and recipe videos but you discover the right dance video and it changes your whole life.
> you discover the right dance video and it changes your whole life
You're going to have to explain this one, how would a dance video change my life? Being exposed to something new that becomes profoundly life changing seems like a romanticized notion and not a realistic one especially within a monetized environment.
We're exposed to new stuff everyday, just because .0001% is truly impactful doesn't justify watching 100_000 short reels of ads, even if Google and Facebook REALLY want us to.
Well I’m sure there others who will agree that something small and completely unexpected has had a profound influence in their lives. The simplest example is something so novel and interesting opens you into a deep rabbit hole that changes your career and or who you meet, befriend or marry. The lack of a good recommendation algorithm is exactly the problem where these content platforms is you feel like you have to watch 100k videos to have a chance at such an encounter.
I owe many interests in my life to the little recommendation tab next to a currently playing video on youtube
I.e., that is (remember is and i)
E.g., for example (remember example and e)
If you were to have something local build you an algorithm, what signal would you want it to consume and how far from the median would you want it to deviate? Would you want it to use signal from online socials?
This is a good idea. One signal would be HN mentions. Second might be reddit mentions, but with a lot of qualifications.
As a first step, a page showing recent youtube links from HN would be nice!
Why limit it to local? You could use the API for the YouTube recommendations. You already are using the YouTube API for the videos themselves.
Certainly, ingest all the signal you’d like, and then emit a feed for clients to consume (or to be republished). Could run locally, could run in a container, could run on an AT protocol PDS. It is an algorithm/discovery/recommendation sovereignty play.
I've been using a third party app to watch the videos and the official app to discover content.
Instead of just clicking the video I click share and watch on the unofficial with no ads.
Does this have an apparent impact on your recommendations?
I looked into this as well since I find the YouTube algorithm terrible, but couldn’t find any API for exploration. Which makes sense they want to control what you watch and hence monetize. In a perfect world you could just pick an open source recommendation algorithm from a marketplace and YouTube would just be a wrapper around s3 buckets and some index.
An even more perfect world would not have S3 buckets.
You have to store bits somewhere, and an S3 compatible target optimizes for flexibility and optionality. It can be local (Minio), it can be remote, the client does not care where it is. Even the Internet Archive's API is S3-ish.
I've been using Unhook[0] for years that it's almost a jumpscare for me to see a recommended video or the Youtube homepage. Your social circles and natural serendipity should be plenty for finding new creators. And in general, avoiding algorithmic feeds will help with ADHD and mindless scrolling.
[0] https://unhook.app/
I use a Firefox profile to watch specific videos while logged-out just for the focused recommendations.
I've also noticed that I getting more recommendations for small creators with little to no views/subs when I'm browsing from a smaller, developing country.
I readily follow youtube links offered on HN discussions. If anything, I could use more of these.
But otherwise I agree with your concern. Video recommendations on youtube was far from perfect (very repetitive in my experience), but was uncovering useful stuff.
good question. I don't think I have a definitive answer but I'll try:
- pure luck. sometimes I discover a channel/creator/blog by pure accident, I'm an avid rss reader and HN adept so content comes to me naturally, so to speak.
- following a feed (be it a website's rss feed, reddit/YouTube) sometimes made me discover related feeds, simply because someone wrote about a cool project a peer made and links their YouTube/github/blog
Check out the Vinegar extension if you use Safari. Same old YouTube but all the videos are replaced with HTML5 <video>s.
We built Videocrawl [1] to enhance the learning and watching experience using LLMs. It handles the usual tasks like clean transcript extraction, summarization, and chat-based interaction with videos. However, we go a step further by analyzing frames to extract code snippets, references, sources, and more.
You can try it out by watching a video on Videocrawl, such as the OpenAI Agent video, by following this link [2]. LLMs have the potential to significantly improve how we learn from and engage with videos.
1. https://www.videocrawl.dev/ 2. https://www.videocrawl.dev/studio?url=https%3A%2F%2Fwww.yout...
Can you make either a hub.docker or ghcr.io premade image so that people can just pull the image and run it and automate the updates? Its pretty standard practice in the self hosting world and if you don't do it a lot of people will not install it. People have 40-50 odd services installed, managing it via git updates just isn't going to happen.
Done
will do, thanks for the suggestion
What I've wanted for a while now is a browser extension that adds a button on youtube video pages, where you click on it and it does yt-dlp downloading but saves it to something like ipfs and posts it to some free video site for indexing.
Basically, there should be a video indexing/search/discovery protocol (don't care if it's still http) where random people can submit metadata and a link to a distributed content-addressable system like ipfs. Alternatives to youtube,tiktok,etc.. even platforms like Bluesky can make use of this. Popular videos get more "seeds"/"mirrors" this way. The biggest problem is getting enough interesting content, so the browser extension helps with that, you just click "share in <insert platform name>" and you have it locally available as well as available on any of your other devices, and now others can see the content without having to use yt.
What you're describing is a piracy platform. That makes it pretty tricky to get off the ground, with regards to funding and outreach.
pirating who? I actually don't know who holds the copywrite to youtube videos. I assume the creators do, and that a lot of them would be happy to have their videos shared. It's google that wants suck the value out of the creations for themselves.
Well as long as you don't know who owns the copyright and/or make an assumption that they'd be cool with it, must be good to go.
it's piracy when you share it with others, it can default to act as your personal cloud. It is dropbox/onedrive/gdrive except optionally searchable/shared/indexable by the public or a group of people (those legit services already allow public sharing of arbitrary data).
Write a script to call yt-dlp command with url in clipboard on ipfs server
What I'd like is essentially a user-controlled caching layer for everything. When you view a webpage or video or something you are fully downloading all of that data, you might as well optimistically write it to a local cache. Then a browser extension could be made that says "save this version" which tells the caching layer to add a tag to all of the assets that were downloaded in this page view. It would create a tag that means all of those assets aren't garbage collected from your local cache and you retain your copy forever.
Super-charging this idea with IPFS is even better. Essentially a collective Internet Archive will be created with every version of every page someone has decided they are interested in, for whatever reason.
This kind of thing would be perfectly feasible with the web as it was designed, which was designed with caching in mind.
But, of course, big corporations like Google will fight hard to stop such a thing happening because they don't want you in control. They want to be in control. They hate peer to peer technologies because they can't control them.
Ahaha, I love the "vi/vim" pronouns on Christian's GitHub profile[0]. How have I never seen this before?
[0]: https://github.com/christian-fei
I don't see it. Has it been removed?
it seems that in private browsing (or generally if you're not logged in to GitHub) it doesn't show
Maybe mine are mg/emacs.
copied it from someone else, can't remember who :)
I built the same thing a few years back [0], and used the YouTube API for searching. It was fun on the building part.
For hosting, though, I picked Heroku, and they kept removing my deployment because I downloaded ytdlp on it! I ended up deploying it on my own server to make it work.
[0]: https://github.com/huytd/xaudio
This is monetizable for parents (or at least, highly needed). YouTube is terrible for child behavior as there are so many pranks and people screaming etc (in kids content) but there are a select few YouTubers who are really good for kids. For example our 10yo does well with: ZebraGamer, Half Asleep Chris, Mark Rober, Brick Experiment Channel, Ants Canada, etc. We have it locked down via safe app but it would be great to have this for the full home network with channels buttoned down.
Monetizing this would put YT-DLP in danger of having legal action taken against it, or at least being shut down.
What is “safe app”? Too generic to be googleable.
https://apps.apple.com/us/app/safe-vision-kids-for-youtube/i...
"wanted to get back my chronological feed, instead of a "algorithmically curated" one"
The 'Subscriptions' link at the top left of the Youtube home page only shows the things you subscribed to, just bookmark that.
Along with so many shorts. So many. Going from Smarttube back to the official app and it just plain sucks.
I use the "unhook" extension which let's you remove recommendations, set your youtube home page to your subscriptions (chronologically ordered videos), block shorts and more (you can cherrypick the features you want). Highly recommended. I would have paid for youtube premium if I was given these options, honestly.
I have premium and that’s what hurts the most! My issue is mostly on tv connected devices.
So why not just keep Smart tube installed on your TV?
They are constantly testing pushing other things into the subscription box.
What I want is it to only show me videos. Now, it also shows shorts, and also now “community posts” which are frequently just self-promotion and useless polls that drive engagement. I’ve started unsubscribing from anyone that uses those features too much. I want videos not “check out my twitch channel” and “want more merch? Check out my merch! Also this is a poll so that you will click it”
One channel I follow got some new “comments from the community” kind of feature, and suddenly posts from anyone on YouTube were showing up in my sub box because they also subscribed to the same creator. All of the posts were image posts that were blatantly rule breaking spam, or comments like “why is this a feature”. None of them were from anyone I intentionally followed. Literally just random internet comments as a huge section in my sub-box. I instantly unsubscribed.
YouTube REALLY wants to shove other content into the “subscription box” because as-is it lets you avoid all the algorithmic clickbait.
On android, you can even force the app to open up to that page (long press the icon and you can place a shortcut to subscriptions).
Potentially dumb question: if YouTube.js works in browser - can/has someone made a YouTube player that’s just a static page? Is there a need for a backend?
Ten years ago I wrote a alternative frontend for YouTube in C++ (Qt & VLC), it worked pretty well!
https://github.com/skhaz/qt-youtube
That's pretty great, just tried it. I'd have a few feature requests:
- Make it possible to delete downloaded videos
- Show more than just a few weeks worth of videos per channel. For example, if I look at @AndrejKarpathy I only see his latest two videos.
- Have a way to view a video at a reasonable size in between the small preview and full screen
- Add a way to download a single video without subscribing to a channel
Thanks for making it a Docker image, it's super easy to get it working with Docker compose!
Thanks for the feedback! Some of the new additions are already wip :)
Just got done setting up Pinchflat this morning as I need jellyfin and sponsorblock integration but it’s always great to see a nice gui around yt-dlp with some new niche features.
thanks!
Freetube is great alternative.
Personally I don't even use it to watch the video and instead open them in browser, but it allows to monitor the channel you want and only that with a 'feed' that consist of their video in chronological order.
It doesn't require self hosting, no YouTube account, has the thing to skip promotional video and setting to automatically change clickbait thumbnail.
How does yt-dlp work with sponsorblock? Does it download the video can snip out segments?
I wish PLEX still had youtube plugin. Right now I have a googlesheet script that adds latest videos of channels into various playlists on my premium account. Keeps things simple bouncing between devices / chromecast.
Just recently I stumbled upon these options of yt-dlp, but haven't had the chance to dig deeper (sorry in advance for the formatting):
Freetube, invidious and newpipe are still the best frontends imo
Didn’t invidious stop working?
I basically have an even simpler version of something like this for my own personal use too. I found it pretty easy to write in Go and my area of expertise is decidedly not web frontend/backend. I’d recommend it as a fun little project if you’re looking for something to do.
For mine, I paste in a video or playlist URL and it downloads the video and creates a lower resolution transcoded version suitable for streaming to my phone. It also extracts an audio-only version in case that’s more appropriate.
I have one too, it's honestly a very fun area to program around, and I'm not going to be surprised if this thread is full of me-toos.
Mine is specifically meant to help get videos onto plex in exactly the way we want - with particular emphasis on playlists, taking the numbering and putting it in plex format, and transcoding any codecs (detected via ffprobe) i know certain shitty players (smart TVs) will have issues with. Along with putting it in the right spot on the filesystem with the right permissions and user+group set so it serves correctly over samba too (for management from windows / via GUI).
Plex is the destination for my setup, too. I have a bookmarklet I can click when I'm on any Youtube (or other video) page that sends the URL to a local Flask app that's just a wrapper for calling yt-dlp with the right args and post-processing.
I have something similar as a simple PHP script on a shared hosting service. I can't PHP well anymore so it's probably the worst and most insecure code I've produced by a big margin. Does it do the job? Yes.
Have a repo you can share?
No unfortunately, not only is it too tangled (not irredeemably, but I've never made an effort t try to make it cleanly ploppable) with the rest of my home-rails-server monolith, but the code is all also ridiculously bad, written in 2000 separate 5 minute scraps of time, all while standing up and holding at least one baby.
I call it "dadware".
Interesting! How do you stream it to your phone? I imagine its on the local network?
Would really appreciate if you could add some options for download quality(with webm merge for 4k support), gave it a go and it just by default downloads the 360p MP4.
Absolutely
Interesting project and great to see other projects as well. Everyone has their own wants, wishes, and requirements for their YT feed so its awesome to see what people have come up with.
This post has actually inspired me to create something of my own because I am the worst YT addict of all time.
awesome, thanks!
I use skipvids.com as my frontend
great to see this, absolutely need to try it out.
it is awful that a paid subscription product like YouTube does actually aim to give their (paying) users the worst experience possible by only ever showing stuff i do NOT want to see and offering no way to disable or customize things. honestly, is there anyone happy with their offering?
but will this or anything similar ever run on FireTV / Samsung?
Awesome! Have some things cooking for the future, hope to see your feedback if you can
Hi Chris, do you know how to handle issues with cookies in production? It seems yt-dlp works fine, but once put in a cloud runner, it doesn't work. Coincidentally, I was also working with yt-dlp this week for another reason.
the project currently supports cookies (never use your own though, of your google profile), just place them in cookies.txt in the root of the project. but it didn't seem to work well on my server, on a residential IP it works well
Grayjay also has a desktop app that does this very well. https://grayjay.app/
does it work on iOS?
I get sign in to prove your not a bot all the time since the last few months esp on vpn. Too scared to use my home ip cus I don’t want my gmail to get banned with it
So refreshing to see native web components and not some React monstrosity with 500 extra dependencies.
Thanks! It is definitely not the cleanest code I've written but I'm slowly making it cleaner and ready for OSS contributions. Learned a ton along the way too, which makes this all worth it nevertheless.
I'll use the common excuse: I jotted this project down for myself without the thought of publishing it ^^
I wonder how many front/proxies exists:
- invidious
what else ?
There's Piped but that keeps running into "IOS player response is not valid" error. (I don't know if my Invidious instance works either, I shut it down because of errors.)
a lot for sure.
but the more the better, right?
As a user of a Firefox-based browser, YouTube's performance really is hit or miss. Sometimes it's ok, other times it's barely useable.
These days I simply queue up videos in mpv. It is much lighter on the resources, and also provides a nice cache that makes seeking through videos a breeze. I can open a link straight in mpv using a very nice system[1]. Once I have an mpv instance open I simply drag links on top of it to enqueue them. (shift+drag if you haven't set the following option in your config: drag-and-drop=append)
It works so well I find myself doing it for other online sources of videos too (e.g. Twitter/X, local TV websites, ...)
[1]: https://github.com/Baldomo/open-in-mpv
I use h264ify plugin and didn't see performance issues for playback. The UI depends on test group you go into, but only the first load is really terrible.
I never have yt issues in FF. Do you have addons that are yt related?
There was a thing couple months back where Google was AB testing stuff that broke FF. So not everyone experienced it
Went away about a week later
tip: Disable YouTube history and go to subscription page for chronological ordered videos. No more "algorithmically curated" videos in YouTube home page.
Why disable youtube history? I have it enabled, and my subscription page works fine.
Disabling YouTube history makes two additional changes: no more "algorithmically curated" videos in your YouTube homepage and no more YouTube Shorts rabbithole.
I wonder if it will be taken down.
eventually
Seems it needs docker and/or NodeJS and runs as a server, so not something most of the non technical users out there would use. This makes widespread adoption unlikely.
If it was packaged as a single executable electron app on the other hand, that would be another story.
qq on tech choice - why lmstudio over ollama?
It should work out of the box by just changing the server port of the llm service you’re contacting
LMStudio 1234 ollama 11434
currently into lmstudio, but had it working before with ollama. it's compatible with both, since it uses the standard /chat/completions endpoint.
Missed opportunity. Should have called it MyTube?
haha who cares :) the missed opportunity would have been if I kept it for myself instead of releasing it
you can change the name when you get the first take down notice :)
good point
Hmm nice. I already have my own search frontend (SearXNG), my own chat frontend (Matrix+Element), LLM (OpenWebUI), and this would now be a good addition.
It's sad that it's necessary but the internet has become so enshittified.
thanks, and totally agree on the enshittification of the web (and not only).
this is the very reason why I wanted to dig deeper into my-yt and trying to build a custom solution for my needs
Another thought: Can it do this:
"give me a list of the latest podcasts about/from [subject/channel] {{from the already subscribed channels}}"
--
Or a crontab of schedule "play the latest X at Y time" (so you can tell it to put on your bedtime playlist starting at 9pm)
sort of thing?
Wonderful!
(Also, to all the other posters who have done the same for themselves)
--
I have been mentally building a UX I want out of YT over the last few weeks. What I want to do is have it go through all my history and categorize it and give me a local page and sqlite3 of my browsing hist with various meta-data..
My YT experience has gotten so poor, that even browsing which channels I am sub'd to and finding newer vids in them is a nightmare of a dark pattern...
I thought I wouldnt be able to pull off my vision - but this gives me new hope - and I had told myself that this week I would make an attempt.
One thing I want to do is include VoidTools 'Everything' Search into some MCP tools for Cursor -- and this inspiration ties it all into a more formulated vision for what I want out of a YT ux.
I look forward to trying this out and seeing if it fills the void - or still build my own thing.
(There was an HN SHOW: that was "what if YT channels were like a TV some time ago and that always pops into my head)
--
EDIT: With the postings of GH repos and such, and my comment on categorizing and searching hist -- I also want to be able to have a dashboard of GH repos that I click on, and then have that click in hist be sent to my history categorizer automatically and give me a summary of the thing and category. maybe even from which site I found the repo -- so much like broawsing a YT hist of vids - being able to see all the repos I have been interested in.
Anyone build anything like that for themselves?
I remember a project from some 20 years ago that acted as a proxy and kept a local copy of every single page you visited. I don't remember any details other that you could access that app and search through the history based on time, urls, page titles and content separately.
I believe this is one area where current AI could really shine.
For instance I have a large collection of links about the stuff I care or one I use as one-line answers to different questions (e.g. a friend is taking part in a hackathon and needs a color palette to display some statistical data - in my collection I exactly that along with 20 page long explanation on why these particular colors were chosen if one wish to know).
I keep them in a long markdown file I can somehow navigate by using tags, hierarchy and short descriptions but it gets clunky. Having youtube links doesn't help.
Would be nice to have a tool that would be able to get transcription, distil it to a short summary and maybe you could even ask direct questions about the contents.
I have one for categorizing subscriptions/channels. I've been running it for 3y maybe more. SQLite too. No history integration. I have not opened sourced it because the code is thrown together and there are some subscriptions that the YouTube API doesn't return. I'm not certain what the commonality between them is, either. Possibly country of origin.
thanks!
This is awesome and it's one of the countermeasures that the book Chokepoint Capitalism proposed against enshittification.
Imagine seeing Twitch, Nebula, Youtube, etc all in one aggregator app, then the switching cost of leaving one platform to another goes way down. If a content creator wanted to move from one platform to another to get a better deal, the users would hardly notice.
Unfortunately I think DRM + DMCA makes this illegal, e.g. removing DRM from a Netflix stream to use a third-party app is illegal even if there is no copyright infringement. This needs to be fixed.
This already kinda exists in the TV sticks like Google TV in that all recently watched / continue watching is a mix of different services that open the correct app when launched. Also has the "Live" tab which shows a combined TV guide of all app's that share it (pluto, tubi, prime, etc)
Of course this still locks you into the end app for playback but the concepts are there.
Shhh! We are going to have to fork it again if too many people find out.
Indeed, those with ridiculously slow broadband networks won't ever get 4k content again.
DRM was.. and still is dumb... as it collectively punishes paying customers. While ContentID is sometimes abused by brazen scammers, it is a better solution given the majority of content is still served off the YT platform. =3
> DRM was.. and still is dumb... as it collectively punishes paying customers.
Maybe it's true in other contexts, but users of such frontend likely are not paying for youtube and they're also not paying with their eyes (ads) so the DRM here is working as intended...
Also paying customers are already allowed to download youtube videos (granted they can't watch it outside of youtube but it still counters your broadband claim).
"already allowed to download youtube videos"
Sure, but it is not users that ultimately make that policy choice, and may be rescinded at any time. Thus, still seems lame...
Most streaming platforms have fragile resolution fail-back thresholds, and rightfully discourage camping on CDN host connections for 10 times longer than most of the users.
These days the amount of media data people consume in a year will be disproportionately larger than the capacity of any information appliance. i.e. not paying for the service would still mean a fortune in offline storage devices.
DRM still sucks, ask any library or historian. But I do respect your opinion, as it could seem true for some. =3
At least for my circumstance, Comcast has a 1.2TB/month limit before they hit you with hefty fees. If I stored my entire 14.4 TB/year, that'd cost ~$150 worth of disks (and not even require a full disk). So the storage for a full year of data use (Comcast alleges the actual average use is ~500 GB/mo) is less than the cost of a single subscription service. If you use a file more than once, that works out even better. And for things like music, storage costs are essentially irrelevant even if you use SSDs.
We agree most content is only viewed once, and thus DRM is still pointless in terms of advertising revenue from people that likely won't buy anything in the first place.
Both YT premium and Netflix is around $100/yr, and I seriously doubt you will find 14TB consumer storage media at that cost. It is a silly behavior for sure =3
At least when I look, YT premium says it is $140/year (or $276/year for a family plan), and Netflix is $216/year. Spotify is $144/year. It's certainly possible to find drives at ~$10/TB. Call it $15/TB if you don't get a great deal and if you want to add some parity.
The more interesting point though is that at ~5 GB/hour (a decent bitrate, especially for youtube) and $15/TB, you're looking at ~$0.075/hour of video. If something isn't worth $0.08 to keep, is it worth your time to watch? This is probably a question media companies would prefer you not ask yourself.