It is downloading a solver at runtime, took maybe half a second in total, downloads are starting way faster than before it seems to me.
[youtube] [jsc:deno] Solving JS challenges using deno
[youtube] [jsc:deno] Downloading challenge solver lib script from https://github.com/yt-dlp/ejs/releases/download/0.3.1/yt.solver.lib.min.js
It would be great if we could download the solver manually with a separate command, before running the download command, as I'm probably not alone in running yt-dlp in a restricted environment, and being able to package it up together with the solver before runtime would let me avoid lessening the restrictions for that environment. Not a huge issue though, happy in general the start of downloads seems much faster now.
Do you use Firefox on Linux, too? 4K Videos freeze so often for me, I don't even try watching them online, and always just download them with yt-dlp. It doesn't bother me enough to give Chrome a try, but maybe that'd make a difference.
> YouTube barely works in a full-on browser these days
Agreed. Shorts about half the time don't display comments, the back button breaks in mysterious ways. And I use Chrome on both Intel and M macOS machines, so the best in class there is, but my Windows Chrome doesn't fare much better. And Adblock ain't at fault, I pay for premium.
And that's just the technical side. The content side is even worse, comments sections are overrun by bots, not to mention the countless AI slop and content thieves, and for fucks sake I get that high class youtubers have a lot of effort to do to make videos, but why youtube doesn't step in and put clear regulations on sponsorship blocks is beyond me. Betterhelp, AG1, airup, NordVPN (and VPNs in general) should be outright banned.
And the ads, for those who aren't paying for premium, are also just fucked up. Fake game ads (Kingshot who stole sound effects from the original indie Thronefall ...) galore.
Google makes money here, they could go and actually hire a few people to vet ads and police the large youtubers with their sponsors.
How are you using Youtube if you feel like it is "barely working"?
I personally use Youtube almost exclusively for my entertainment. I am using Chromium on Raspberry Pi 5. I am running some flavor of uBlock, SponsorBlock, and some Shorts remover extension. It just works.
I'm n=1 using chromium but the only problem I have is the video losing focus when maximizing, meaning l/r/space don't work for video controls anymore, happened about when the liquid glass styled interface did
What environment are you using that:
- Has access to Youtube
- Can run Python code
- Can’t run JS code
If the concern is security, it sounds like the team went to great lengths to ensure the JS was sandboxed (as long as you’re using Deno).
If you’re using some sort of weird OS or architecture that Deno/Node doesn’t support, you might consider QuickJS, which is written in pure C and should work on anything. (Although it will be a lot slower, I’m not clear just how slow.) Admittedly, you then loose the sandboxing, although IMO it seems like it should safe to trust code being served by Google on the official Youtube domain. (You don’t have to trust Google in general to trust that they won’t serve you actual malware.)
> What environment are you using that: - Has access to Youtube - Can run Python code - Can’t run JS code
Nothing specific, just tend to run tools in restricted VMs where things are whitelisted and it's pretty much as locked down as it can be. It can run whatever I want it to run, including JS, and as the logs in my previous comment shows, it is in fact running both Python and JS, and has access to YouTube, otherwise it wouldn't have worked :)
I tend to have the rule of "least possible privileges" so most stuff I run like that has to be "prepped" basically, especially things that does network requests sometimes (updating the solver in this case), just a matter of packaging it before I run it, so it's not the end of the world.
No weird OS or architecture here, just good ol' Linux.
> IMO it seems like it should safe to trust code being served by Google on the official Youtube domain
> What environment are you using that: - Has access to Youtube - Can run Python code - Can’t run JS code
They didn't say “can't run JS code”, but that from that location the solver could not be downloaded currently. It could be that it is an IPv6-only environment (IIRC youtube supports IPv6 but github does not), or just that all external sites must be assessed before whitelisted (I'm not sure why youtube would be but not github, but it is certainly possible).
I've found having yt-dlp available on my iPhone useful, and used Pythonista to achieve that, but haven't figured out how to get the new requirements to work yet. Would love any ideas people have!
No, don't need anything extra, `extra/yt-dlp` works perfectly fine and is enough. You'll get a warning if you run it without the flag:
WARNING: [youtube] [jsc] Remote components challenge solver script (deno) and NPM package (deno) were skipped. These may be required to solve JS challenges. You can enable these downloads with --remote-components ejs:github (recommended) or --remote-components ejs:npm , respectively. For more information and alternatives, refer to https://github.com/yt-dlp/yt-dlp/wiki/EJS
Providing one of the flags automatically lets it automatically get what it needs. No need for AUR packages :)
Edit: Maybe I misunderstood, now when I re-read your post. You meant it'll prevent the automatic download at runtime perhaps? That sounds about right if so.
It was just updated again today, and at least for me, when you install it using the package name "yt-dlp[default]", it already downloads both deno and the solver automatically.
yt-dlp doesn't need to be installed, you can download the binary from GitHub and run it without installing. You might say that a restricted environment really really should prevent running binaries just downloaded from the Internet, and I agree (malware could do many nasty things to a user's home folder without needing to request admin access), but some people think merely preventing admin access is enough. So for anyone under that kind of restricted computing environment, yt-dlp used to run just fine until Google's changes to Youtube forced them to add a Deno requirement. (Though I haven't yet checked if Deno could also be run without installing.)
Tangentially related. Youtube web is now, as of the last month, strictly enforcing "referrer header" for embedded videos. Even if you spoof it, it doesn't always work. You can't navigate directly to "youtube.com/embed/<videoid>" to watch something without giving google some direct information.
Since when are public-facing error codes just lies?
"Oh Error 15 something went wrong, tee hee."
"Oh Error 153 better try again, (got em, guys!)"
They operated for a while, before finally updating their FAQ stating this is intentional.[1]
Our Terms of Service require embedders to provide a HTTP Referer. If this information is missing, viewers attempting to watch embedded YouTube videos will encounter blocked playback and an error screen (“error 153”). These viewers will still be able to click “Watch on YouTube” to view the video on YouTube. Note that directly accessing the embedded player without an enclosing webpage or context (such as accessing it from your web browser's address bar) will typically not have a HTTP Referer and users will encounter the error screen; the embedded player is only intended to be used within an embedded context."
Pretty much all embeds have done this, increasing over the years. Forget discord embeds. They want the tracking. Sometimes they even make me login "to know I'm not a bot"
Damn that's crazy, nothing a simple static redirector in a single js line can't fix.
Overall cost to implement this shit : likely thousands hundred k
Bypass cost : literally 0
It really is just a way for them to say "we can fuck with you as much as we want and you won't do shit cause what you gonna do ? go somewhere else ?"
I use yt-dlp (and back then youtube-dl) all the time to archive my liked videos. Started back in around 2010, now I have tens of thousands of videos saved. Storage is cheap and a huge percent of them are not available anymore on the site.
I also save temporary videos removed after a time for example NHK honbasho sumo highlights which are only available for a month or so then they permanently remove them.
You are a digital hoarder. I have taken so many pics that I wouldn't even bother to look back that them (do we ever?) but Google memories is really a neat feature, it refreshes memories. I think you should run a similar service to refresh memory of your favourite videos like they are on speed dail.
I look at my pictures regularly. They are on my phone, mostly I scroll back 1-3 months to refresh my memory, and I often go further back to check on how living things were around me, and to what my general surrounding looked like. I also like to look at game screenshots from time to time. Funny to see how I lived life back then.
The Memories feature sounds cool. I have something a bit similar on my Nextcloud, "On this day", that shows an image dated on the same day in previous years, and clicking it brings up more pictures from its general time. I love it! So many memories.
I'm an amateur photographer. Lately, I've taken to making curated collections from my "slush feeds". Meaning, going through a particular trip, time period, moment and grabbing the best photos, and parceling them out to a dedicated album. Makes for a much better experience and fun to share with friends/family.
I have an e-ink photo frame on the wall that switches picture once every 24h, picking one of my pictures of the last 10+ years by random. So every single one of my tens of thousands of pictures gets a real chance to be seen at least once during my lifetime :)
I've seen photography compared to archery recently, and that comparison stuck with me.
As long as you enjoy the act of shooting, that is enough. Archers doesnt have to keep and look at old scoreboards/targets for the archery to have been enjoyable and worthwhile, it's the same with modern photography.
Often when I am bored I pick a random day in the past and look at where I was on that day and which pictures I took. Refreshing memories is a great idea but the low tech way is enough for me.
I routinely review my pics and vigorously delete all duplicates or poor quality images. It helps if you do this for 10-15 minutes every day. At least I'm able to find most of the pictures I remember I took, and I don't have to scroll through 1000 snaps of some particular sunset to do that.
Might sound stupid, but: differences between Google memories vs. Snapchat memories?
Also my issue is that I would NEVER upload the photos I have on my hard drive due to privacy issues, but if I had a local model that could categorize photos and whatnot, that would be cool. I have over 10k screenshots / images. Many of them have text on it, so probably need OCR.
> You are a digital hoarder.
Is this meant to be negative? Many videos I have watched on YouTube are now unavailable. I wish I had saved them, too, i.e. I wish I was a digital hoarder, too, but eh, no space for me.
I started after channels started removing their own videos because they either didn't think the videos were good enough or they had a mental break and deleted their channel. So good stuff just gone.
There was one instance where a prominent "doujin" musical artist got fingered as a thief. Away went all of their videos, except... he'd packaged them as something completely different from wherever he'd taken them from. One song in particular sucked to lose, because its sibling still exists as an "extended" upload. So, I can listen to the one any time, but the other, I simply know that it once existed, and that it might still exist somewhere else, just under a different title. I can't even remember how it went.
I was just lamenting last night that we can't watch some of Terutsuyoshi's amazing makuuchi bouts from about three(?) years ago. I wish I'd archived them.
Do you ever go back and actually watch those videos? Whenever I start to journal, track, or just document something, after some time I notice again and again that most of the value has already been created the moment I finish working on a specific entry. Even with something seemingly very important like medical records. Maybe one exception I can think of are recordings of memories involving people close to you
I have the same with journals, but the video archiving has actually come up a few times, still fairly rare though. I think the difference is that you control the journal (and so rarely feel like you need it's content) while the videos you're archiving are by default outside of your control and can be more easily lost.
I don’t think journaling is the same thing though as hoarding pics/videos. Even if you never go back and read through old hand written journals, just the physical process of writing has mental effects that pics/videos do not. There’s also a bit of therapeutic results from slowing down and putting thought to paper. So to me the only similarity is that you might not ever look at it again, that does not make them the same at all
I would be interested in knowing as well. I've been watching YouTube since it first came out and can't remember any times where I saw something I thought I needed to actually download and save in case I wanted it in 10 years. 10,000+ videos is a lot of videos to just seemingly save.
Same here and my motivation was that some of my liked videos were randomly removed and it's pretty cool music I wanted to keep forever.
I made another script that adds the video thumbnail as album art and somehow tries to put the proper ID3 tags, it works like 90% of the time which is good enough for me.
Then I made another script that syncs it to my phone when I connect it.
So now I have unlimited music in my phone and I only have to click on "Like" to add more.
And yet, none of Google's 900k TOC genius engineers have thought of this as a feature ...
I doubt that it’s a nobody else situation, and it’s more of a management doesn’t want it as it takes away the need for their own streaming offerings. Music industry also doesn’t want it, as there’s no more royalties coming in. Can’t release an app that pisses of the industry.
how do you manage the archive? I mean the file hierarchy structures etc. i started archiving youtube videos recently, now saving descriptions and other metadatas too, but simply having them all in one directory doesn't seem to be a good idea.
No! It would be easier but I burned myself so many times with removed videos that I do it on my own basically asap manually. Not a big deal once you have yt-dlp properly
> What about Selenium or a headless browser solution?
>
> The yt-dlp maintainers have no interest in doing this except as a measure of last resort. A headless browser solution would be an admission of defeat and would go against the spirit of this project.
More and more recently with youtube, they seem to be more and more confrontational with their users, from outright blocking adblockers, which has no bearing on youtube's service, to automatically scraping creators content for AI training and now anything API related. They're very much aware that there is no real competition and so they're taking full advantage of it. At the expense of the 'users experience' but these days, large companies simply don't suffer from a bad customer experience anymore.
> At the expense of the 'users experience' but these days, large companies simply don't suffer from a bad customer experience anymore.
This is my personal opinion. They're still affected by customer satisfaction and they're still driven by market forces. It's just that you and I are not their customers. It's not even the YT premium customers. Google is and always has been an ad service company and their primary customers have always been the big advertisers. And they do care about their experience. For example, they go overboard to identity the unique views of each ad.
Meanwhile the rest of us - those of us who don't pay, those who subscribe and even the content creators - are their captive resources whose creativity and attention they sell to the advertisers. Accordingly, they treat us like cattle, with poor quality support that they can't be bothered about. This is visible across their product lineup from YouTube and gmail to workspace. You can expect to be demonetized or locked out of your account and hung out to dry without any recourse if your account gets flagged by mistake or falsely suspected of politics that they don't like. Even in the best case, you can only hope to raise a stink on social media and pray that it catches the attention of someone over there.
Their advantage is that the vast majority of us choose to be their slaves, despite this abuse. Without our work and attention, they wouldn't have anything to offer their customers. To be fair to ourselves, they did pull off the bait and switch tactic on us in the beginning by offering YouTube for free and killing off all their competition in the process. Now it's really hard to match their hosting resources. But this is not sustainable anymore. We need other solutions, not complaints. Even paid ones are fine as long as they don't pull these sort of corporate shenanigans.
> This is my personal opinion. They're still affected by customer satisfaction and they're still driven by market forces. It's just that you and I are not their customers.
Fair opinion and I agree. Is it sustainable, you think not but I believe it doesn't matter.. Line must go up.. when you're a tech company with a finance team larger than Enron, only the number today matters. Add to that the patent worth.
The internet I loved and helped grow is something I don't recognise anymore. Maybe there's a new generation of hackers who make the new system.
>outright blocking adblockers, which has no bearing on youtube's service
The scale of data storage, transcoding compute, and bandwidth to run YouTube is staggering. I'm open to the idea that adblocking doesn't have much effect on a server just providing HTML and a few images, but YouTube's operating costs are (presumably, I haven't looked into it) staggering and absolutely incompatible with adblocking.
YouTube broke even sometime around 2010 and has been profitable ever since. The ad revenue has always been more than enough to sustain operating costs. It's just more growthism = more ads. If you want the YouTube of 2010--you know, the product we all liked and got used to--you can't have it. Welcome to enshittification.
Personally I find YouTube unusable without an adblocker. On my devices that don't have an ad blocker, it's infuriating.
I’m recently also encountering more unskippable ads, especially in kids videos. There were always two ads. Sometimes the first wasn’t shippable and the second always was. That has gradually shifted to neither being skippable.
adblocking "users" are not Youtube's users. What do you mean blocking ads has no bearing on their service? It sounds like you are saying user experience is "I should get this for free".
I think being in a pitched battle with YT is kind of fun, if you enjoy that sort of challenge, and winning to boot.
I mean YT has perfect knowledge of its adversary's moves and a huge staff and they're still losing. It must at least be satisfying. Also its an important job.
It's fine for this project since google is probably not in the business of triggering exploits in yt-dlp users but please do not use deno sandboxing as a your main security measure to execute untrusted code. Runtime-level sandboxing is always very weak. Relying on OS-level sandboxing or VMs (firecracker & co) is the right way for this.
I would not put it past them. And I'm not sure I trust the yt-dlp team to implement sandboxing securely. The codebase is already full of shortcuts that lead to vulnerabilities like file extension injection.
I mean, this gives me pause:
> Both QuickJS and QuickJS-NG do not fully allow executing files from stdin, so yt-dlp will create temporary files for each EJS script execution. This can theoretically lead to time-of-check to time-of-use (TOCTOU) vulnerabilities.
For a long time, yt-dlp worked completely with Python. They implemented a lightweight JavaScript interpreter that could run basic scripts. But as the runtime requirements became more sophisticated it struggled to scale
I remember when QuickTime came out in 1991 and it was obvious to everyone that video should be copied, pasted and saved like any arbitrary data.
It's absolutely insane to me how bad the user experience is with video nowadays, even video that's not encumbered by DRM or complex JavaScript clients.
> It's absolutely insane to me how bad the user experience is with video nowadays, even video that's not encumbered by DRM or complex JavaScript clients.
The video experience for typical video files is great these days compared to the past. I think you may be viewing the past through rose colored glasses. For years it was a pain to deal with video because you had to navigate third party players (remember Real Player?), Flash plugins, and sketchy codec pack installs from adware infested download sites. If you were tech support for friends and family during that era, it was common to have to remove adware, spyware, and other unwanted programs after someone went down the rabbit home of trying to install software to watch some video they found.
The modern situation where your OS comes with software to play common files or you can install VLC and play anything is infinitely better than the past experience with local video.
Local video could be a nightmare in 90s. I remember those days. I remember when it was revolutionary that the Microsoft Media Player came out, and you could use one player for several formats, rather than each video format requiring its own (often buggy) player. Getting the right codecs was still a chore, though.
MS Media Player eventually fell behind the curve, but eventually we got VLC and things got great.
> For years it was a pain to deal with video because you had to navigate third party players (remember Real Player?), Flash plugins, and sketchy codec pack installs from adware infested download sites.
How is this any worse than what YouTube does now? Real Player and flash never made you watch ads.
I'm absolutely not viewing the past through rose colored glasses. RealPlayer was a dumpster fire, but that came later.
I could hold shift and drag on the timeline to select, copy, then paste it into a document or another video. I can't do that with VLC today. Apple removed the feature in later releases too.
1991 was the vibrant, exciting, crazy "adolescence" of the PC age and well into the period where it was cool to have a desktop PC and really learn about it.
Phones are dominant now and have passed the PC generation by - in number, not capability. The concept of copy/paste/save for arbitrary data lives on for the non-tech masses only in the form of screenshots and screen recording features.
The thing that stands out to me looking back over a few decades is how much of consumer/public computing is exploring the latest novel thing and companies trying to cash in on it. Multimedia was the buzzword aeons ago, but was a gradual thing with increasing color depth and resolution, video, 3D rendering, storage capabilities for local playback, sound going from basic built in speaker beeps to surround and spatial processing. Similar with the internet from modems to broadband to being almost ubiquitously available on mobile. Or stereoscopic 3D, or VR, or touchscreens, or various input devices.
Adolescence is a very good word to encompass it, lots of awkward experiments trying to make the latest thing stick along with some of them getting discarded along the way when we grow out of them, they turn out not to be (broadly) useful or fashion moves on. What I wonder about is if the personal computer has hit maturity now and we're past that experimental phase, for most people it's an appliance. Obviously you can still get PCs and treat them as a workstation to dive into whatever you're enthusiastic about but you need to specifically go out and pursue that, where the ecosystem might be lacking is a bridge between the device most have as their personal computer (phone/tablet) and something that'll introduce them to other areas.
Depending on where personal/portable AI devices go, phones might be significantly different or not exist in 10 years as they do today.
There might be a resurgence of some kind of device like a PC.
Seeing iPadOS gain desktop features, and MacOS starting to adopt more and more iPadOS type features clearly shows the desktop, laptop and tablet experiences will be merged at some point by Apple at least.
A specific issue with video data is that it’s much denser: the same concept in video takes up more bytes than in text or image. Therefore hosting is more expensive, so less people host and the ones that do (e.g. YouTube) expect revenue. Furthermore, because videos are dense, people want to download them streaming, which means hosts must not just have storage but reliable bandwidth.
Even then, there are a few competitors to YouTube like Nebula, PeerTube, and Odysee. But Nebula requires a subscription and PeerTube and Odysee have worse quality, because good video hosting and streaming is expensive.
The real problem is that YouTube built a model where the platform, not the creators, controls the money flow. They could have charged creators directly for hosting and left monetisation up to them, but by inserting themselves as the middleman, they gained leverage and authority over content itself. The "cost of hosting" is just the technical excuse for such centralisation.
I think companies always prioritized their own interests.
A company can increase its profits (1) by improving their products and services, so that they'll get more customers or customers willing to pay more, or (2) by increasing how much of their revenue is profit by (e.g.) cutting corners on quality or raising prices or selling customers' personal information to third parties.
Either of those can work. Yes, a noble idealistic company might choose #1 over #2 out of virtue, but I think that if most companies picked #1 in the past it's because they thought they'd get richer that way.
I think what's happened is that for some reason #2 has become easier or more profitable, relative to #1, over time. Or maybe it used not to be so clearly understood that #2 was a live option, and #1 seemed safer, but now everyone knows that you can get away with #2 so they do that.
I remember when QuickTime came out in 1991 and it was obvious to everyone that video should be copied, pasted and saved like any arbitrary data.
I remember when VCR's came out and everyone would take TV shows and share them with their friends.
By now we should be able to share video on SD Cards that just pop into a slot on the top of the TV, but the electronics companies are now also the content companies, so they don't want to.
You can plug a USB drive with videos on into a lot of TVs I've encountered over the years. Due to limited container/codec support I rarely made use of it though.
I was just reading how ATSC 3 (over the air TV) is kind of stalling because they added DRM fairly late in the roll out. Several people bought receivers that are now incompatible.
Also, I'm not sure what the actual numbers are, but my impression is that a significant portion of OTA enthusiasts are feeding their OTA signals into a network connected tuner (HDHomeRun, Tablo, AirTV, etc.) and DRM kills all of these.
A media business is predicated on exclusive rights over their media. The entire notion of media being freely copied and saved is contrary to their business models. I think there's a healthy debate to be had over whether those models are entitled to exist and how much harm to consumers is tolerable, but it's not really obvious how to create a business that deals in media without some kind of protection over the copying and distribution of that media.
I think what breaks computer peoples' brains a bit is the idea that the bytes flying around networks aren't just bytes, they represent information that society has granted individuals or businesses the right to control and the fact technology doesn't treat any bytes special is a problem when society wants to regulate the rights over that information.
I have worked on computer systems for media organizations and they have a very different view of intellectual property than the average programmer or technologist. The people I find the most militant about protecting their rights are the small guys, because they can't afford to sue a pediatrician for an Elsa mural or something.
Experience with video is excellent for most people. All the complexity is hidden from the end user, unless you are trying to hack something. In the 1990s, streaming effectively didn't exist because people didn't have enough bandwidth (it was mostly dial-up), and there was very little legal offering, and the little that existed was terrible. Home video was limited too, as few people knew how to make video files suitable for online diffusion.
Piracy did pretty well, but that's because the legal experience was so terrible. But even then, you had to download obscure players and codec packs, and sourcing wasn't as easy as it is now. For reference VLC and BitTorrent released in 2001.
I'd say the user experience steadily improved and peaked in the mid-2010s. I think it is worse now, but if it is worse now, back then, it was terrible, for different reasons.
It took quite far into the 90's before things like truecolour displays and hardware accelerated video scaling appeared as well. Computers would struggle to view anything bigger than a postage stamp. Hard drive space was also really expensive. It started to change fast towards the end of the decade, though.
Yes, I see Youtube going deep into enshitiffication. On my Macbook this morning with a FF-dev edition it just stopped to work this morning. Don't know if it's related to the fact I tried to install an extension to "force H264" on my Ubuntu box. On the latter fans started to go crazy as soon as I open a single youtube tab lately and a quick research led me there.
Actually at this point the only thing that makes the good old aMule a bit less inconvenient to my own expectations are
- it's missing snippet previews
- it doesn't have as many resources on every topic out there.
> It's absolutely insane to me how bad the user experience is with video nowadays
Has nothing to do with video per se. Normal embeddings, using the standard `<video>` element and no unnecessary JS nonsense, still work the same way they did in the 90s: Right click the video and download it, it's a media element like any other.
The reason why user experience is going to shite, is because turbocapitalism went to work on what was once The Internet, and is trying to turn it into a paywalled profit-machine.
I've always found it insane how much software development web sites are willing to undertake, just to avoid using the standard video, audio, and img HTML elements. It's almost hilarious how over engineered everything is, just so they can 'protect' things they are ultimately publishing on the open web.
Plain <video> elements are easy to download, but not great for streaming, which is what most people are doing nowadays. Much of the JS complexity that gets layered on top is to facilitate adaptive bitrate selection and efficient seeking, and the former is especially important for users on crappier internet connections.
I'm not a fan of how much JS is required to make all that work though, especially given the vast majority of sites are just using one of two standards, HLS or DASH. Ideally the browsers would have those standards built-in so plain <video> elements can handle them (I think Safari is the only one which does that, and they only do HLS).
> still work the same way they did in the 90s: Right click the video and download it, it's a media element like any other.
I’m so confused reading these comments. Did everyone forget RealPlayer? Flash videos? All of the other nonsense we had to deal with to watch video on the internet?
Technically, you can profit off of ad revenue and subscriptions without exploiting the labour of your workers, so in this particular case it has nothing to do with the economic regime. Enshittification is its own thing.
The problem with a standard video element is that while it's mostly nice for the user, it tends to be pretty bad for the server operator. There's a ton of problems with browser video, beginning pretty much entirely with "what's the codec you're using". It sounds easy, but the unfortunate reality is that there's a billion different video codecs (and a heavy use of Hyrum's law/spec abuse on the codecs) and a browser only supports a tiny subset of them. Hosting video already at a basis requires transcoding the video to a different storage format; unlike a normal video file you can't just feed it to VLC and get playback, you're dealing with the terrible browser ecosystem.
Then once you've found a codec, the other problem immediately rears its head: video compression is pretty bad if you want to use a widely supported codec, even if for no other reason than the fact that people use non-mainstream browsers that can be years out of date. So you are now dealing with massive amounts of storage space and bandwidth that are effectively being eaten up by duplicated files, and that isn't cheap either. To give an estimate, under most VPS providers that aren't hyperscalers, a plain text document can be served to a couple million users without having to think about your bandwidth fees. Images are bigger, but not by enough to worry about it. 20 minutes of 1080p video is about 500mb under a well made codec that doesn't mangle the video beyond belief. That video is going to reach at most 40000 people before you burn through 20 terabytes of bandwidth (the Hetzner default amount) and in reality, probably less because some people might rewatch the thing. Hosting video is the point where your bandwidth bill will overtake your storage bill.
And that's before we get into other expected niceties like scrolling through a video while it's playing. Modern video players (the "JS nonsense" ones) can both buffer a video and jump to any point in the video, even if it's outside the buffer. That's not a guarantee with the HTML video element; your browser is probably just going to keep quietly downloading the file while you're watching it (eating into server operator cost) and scrolling ahead in the video will just freeze the output until it's done downloading up until that point.
It's easy to claim hosting video is simple, when in practice it's probably the single worst thing on the internet (well that and running your own mailserver, but that's not only because of technical difficulties). Part of YouTube being bad is just hyper capitalism, sure, but the more complicated techniques like HLS/DASH pretty much entirely exist because hosting video is so expensive and "preventing your bandwidth bill from exploding" is really important. That's also why there's no real competition to YouTube; the metrics of hosting video only make sense if you have a Google amount of money and datacenters to throw at the problem, or don't care about your finances in the first place.
Was RealPlayer really that horrible or was it just trying to do streaming media on an extremely low bandwidth connection without hardware accelerated and sophisticated codecs? I only really used it with a 28.8K modem netscape and Windows 95. The experience was poor but the experience viewing moderately sized images wasn't great either. I remember at the time encountering MPEG decoder add-in cards (that nobody used), although I suspect video cards started to add these features during the 1990s at some point.
I never bothered trying to stream anything, but I do remember downloading 20mb episodes of Naruto in surprisingly good quality due to the .rmvb format.
YouTube barely works in a full-on browser these days, props to the team that keeps it accessible via a Python script!
Agreed. Shorts about half the time don't display comments, the back button breaks in mysterious ways. And I use Chrome on both Intel and M macOS machines, so the best in class there is, but my Windows Chrome doesn't fare much better. And Adblock ain't at fault, I pay for premium.
And that's just the technical side. The content side is even worse, comments sections are overrun by bots, not to mention the countless AI slop and content thieves, and for fucks sake I get that high class youtubers have a lot of effort to do to make videos, but why youtube doesn't step in and put clear regulations on sponsorship blocks is beyond me. Betterhelp, AG1, airup, NordVPN (and VPNs in general) should be outright banned.
And the ads, for those who aren't paying for premium, are also just fucked up. Fake game ads (Kingshot who stole sound effects from the original indie Thronefall ...) galore.
Google makes money here, they could go and actually hire a few people to vet ads and police the large youtubers with their sponsors.
I personally use Youtube almost exclusively for my entertainment. I am using Chromium on Raspberry Pi 5. I am running some flavor of uBlock, SponsorBlock, and some Shorts remover extension. It just works.
If the concern is security, it sounds like the team went to great lengths to ensure the JS was sandboxed (as long as you’re using Deno).
If you’re using some sort of weird OS or architecture that Deno/Node doesn’t support, you might consider QuickJS, which is written in pure C and should work on anything. (Although it will be a lot slower, I’m not clear just how slow.) Admittedly, you then loose the sandboxing, although IMO it seems like it should safe to trust code being served by Google on the official Youtube domain. (You don’t have to trust Google in general to trust that they won’t serve you actual malware.)
Nothing specific, just tend to run tools in restricted VMs where things are whitelisted and it's pretty much as locked down as it can be. It can run whatever I want it to run, including JS, and as the logs in my previous comment shows, it is in fact running both Python and JS, and has access to YouTube, otherwise it wouldn't have worked :)
I tend to have the rule of "least possible privileges" so most stuff I run like that has to be "prepped" basically, especially things that does network requests sometimes (updating the solver in this case), just a matter of packaging it before I run it, so it's not the end of the world.
No weird OS or architecture here, just good ol' Linux.
> IMO it seems like it should safe to trust code being served by Google on the official Youtube domain
The JS script being downloaded is from the yt-dlp GitHub organization (https://github.com/yt-dlp/ejs/releases/download/0.3.1/yt.sol...), not from Google or any websites, FWIW.
They didn't say “can't run JS code”, but that from that location the solver could not be downloaded currently. It could be that it is an IPv6-only environment (IIRC youtube supports IPv6 but github does not), or just that all external sites must be assessed before whitelisted (I'm not sure why youtube would be but not github, but it is certainly possible).
Around 30-50x slower than V8 (node/deno).
I've been recently benchmarking a lot of different engines: https://ivankra.github.io/javascript-zoo/
Deleted Comment
Download a random video and then copy ejs from yt-dlp’s cache directory (I think it’s in /home/username/.cache)
> being able to package it up together with the solver
`make yt-dlp-extra`
Edit: Maybe I misunderstood, now when I re-read your post. You meant it'll prevent the automatic download at runtime perhaps? That sounds about right if so.
...Can they not just bundle a solver? For that matter, deno is available as a PyPI package.
> as I'm probably not alone in running yt-dlp in a restricted environment
...An environment that doesn't allow you to install Deno, but does allow you to install yt-dlp?
Since when are public-facing error codes just lies?
"Oh Error 15 something went wrong, tee hee." "Oh Error 153 better try again, (got em, guys!)"
They operated for a while, before finally updating their FAQ stating this is intentional.[1]
[1] https://support.google.com/youtube/answer/171780?hl=en#zippy... " Provide a HTTP Referer header to enable video playback
Our Terms of Service require embedders to provide a HTTP Referer. If this information is missing, viewers attempting to watch embedded YouTube videos will encounter blocked playback and an error screen (“error 153”). These viewers will still be able to click “Watch on YouTube” to view the video on YouTube. Note that directly accessing the embedded player without an enclosing webpage or context (such as accessing it from your web browser's address bar) will typically not have a HTTP Referer and users will encounter the error screen; the embedded player is only intended to be used within an embedded context."
I also save temporary videos removed after a time for example NHK honbasho sumo highlights which are only available for a month or so then they permanently remove them.
The Memories feature sounds cool. I have something a bit similar on my Nextcloud, "On this day", that shows an image dated on the same day in previous years, and clicking it brings up more pictures from its general time. I love it! So many memories.
As long as you enjoy the act of shooting, that is enough. Archers doesnt have to keep and look at old scoreboards/targets for the archery to have been enjoyable and worthwhile, it's the same with modern photography.
Deleted Comment
Also my issue is that I would NEVER upload the photos I have on my hard drive due to privacy issues, but if I had a local model that could categorize photos and whatnot, that would be cool. I have over 10k screenshots / images. Many of them have text on it, so probably need OCR.
> You are a digital hoarder.
Is this meant to be negative? Many videos I have watched on YouTube are now unavailable. I wish I had saved them, too, i.e. I wish I was a digital hoarder, too, but eh, no space for me.
We have AI to sort them so it will payoff, or already does.
Cody's lab removed a few of them and many others.
Generations of talent & creativity just gone.
I used to be an MP3 and movie hoarder, then somehow I realized it was not worth my time.
Now I only hoard my photos and I keep them all on my phone (slash cloud) for me to actually scroll through regularly.
I made another script that adds the video thumbnail as album art and somehow tries to put the proper ID3 tags, it works like 90% of the time which is good enough for me.
Then I made another script that syncs it to my phone when I connect it.
So now I have unlimited music in my phone and I only have to click on "Like" to add more.
And yet, none of Google's 900k TOC genius engineers have thought of this as a feature ...
Isn’t that the YouTube Music app?
> What about Selenium or a headless browser solution?
>
> The yt-dlp maintainers have no interest in doing this except as a measure of last resort. A headless browser solution would be an admission of defeat and would go against the spirit of this project.
This is my personal opinion. They're still affected by customer satisfaction and they're still driven by market forces. It's just that you and I are not their customers. It's not even the YT premium customers. Google is and always has been an ad service company and their primary customers have always been the big advertisers. And they do care about their experience. For example, they go overboard to identity the unique views of each ad.
Meanwhile the rest of us - those of us who don't pay, those who subscribe and even the content creators - are their captive resources whose creativity and attention they sell to the advertisers. Accordingly, they treat us like cattle, with poor quality support that they can't be bothered about. This is visible across their product lineup from YouTube and gmail to workspace. You can expect to be demonetized or locked out of your account and hung out to dry without any recourse if your account gets flagged by mistake or falsely suspected of politics that they don't like. Even in the best case, you can only hope to raise a stink on social media and pray that it catches the attention of someone over there.
Their advantage is that the vast majority of us choose to be their slaves, despite this abuse. Without our work and attention, they wouldn't have anything to offer their customers. To be fair to ourselves, they did pull off the bait and switch tactic on us in the beginning by offering YouTube for free and killing off all their competition in the process. Now it's really hard to match their hosting resources. But this is not sustainable anymore. We need other solutions, not complaints. Even paid ones are fine as long as they don't pull these sort of corporate shenanigans.
Fair opinion and I agree. Is it sustainable, you think not but I believe it doesn't matter.. Line must go up.. when you're a tech company with a finance team larger than Enron, only the number today matters. Add to that the patent worth.
The internet I loved and helped grow is something I don't recognise anymore. Maybe there's a new generation of hackers who make the new system.
The scale of data storage, transcoding compute, and bandwidth to run YouTube is staggering. I'm open to the idea that adblocking doesn't have much effect on a server just providing HTML and a few images, but YouTube's operating costs are (presumably, I haven't looked into it) staggering and absolutely incompatible with adblocking.
YouTube broke even sometime around 2010 and has been profitable ever since. The ad revenue has always been more than enough to sustain operating costs. It's just more growthism = more ads. If you want the YouTube of 2010--you know, the product we all liked and got used to--you can't have it. Welcome to enshittification.
Personally I find YouTube unusable without an adblocker. On my devices that don't have an ad blocker, it's infuriating.
Not YouTube's users? Maybe. But I am, so by that metric there's some doubt.
I paid for over 2 years for the premium, the cost increases and it's cheaper to pihole everything and support the usual suspects on patreon.
It's become a scenario of "I've given you so many adverts, you should pay me to get less."
That’s the best part.
I mean YT has perfect knowledge of its adversary's moves and a huge staff and they're still losing. It must at least be satisfying. Also its an important job.
https://github.com/yt-dlp/yt-dlp/wiki/EJS
it looks like deno is recommended for these reasons:
> Notes
> * Code is run with restricted permissions (e.g, no file system or network access)
> * Supports downloading EJS script dependencies from npm (--remote-components ejs:npm).
yt-dlp supports a huge list of websites other than youtube
I mean, this gives me pause:
> Both QuickJS and QuickJS-NG do not fully allow executing files from stdin, so yt-dlp will create temporary files for each EJS script execution. This can theoretically lead to time-of-check to time-of-use (TOCTOU) vulnerabilities.
https://github.com/yt-dlp/yt-dlp/wiki/EJS
TOCTOU from temporary files is a solved problem.
... Isn't the web browser's sandboxing runtime-level?
It's absolutely insane to me how bad the user experience is with video nowadays, even video that's not encumbered by DRM or complex JavaScript clients.
The video experience for typical video files is great these days compared to the past. I think you may be viewing the past through rose colored glasses. For years it was a pain to deal with video because you had to navigate third party players (remember Real Player?), Flash plugins, and sketchy codec pack installs from adware infested download sites. If you were tech support for friends and family during that era, it was common to have to remove adware, spyware, and other unwanted programs after someone went down the rabbit home of trying to install software to watch some video they found.
The modern situation where your OS comes with software to play common files or you can install VLC and play anything is infinitely better than the past experience with local video.
MS Media Player eventually fell behind the curve, but eventually we got VLC and things got great.
How is this any worse than what YouTube does now? Real Player and flash never made you watch ads.
https://en.wikipedia.org/wiki/Perian
Deleted Comment
Flash, also almost came built into every browser.
By the time both had gone away, HTML video built in was here. Of course, there were players like jwPlayer what played video fine.
Today, most browsers have most codecs.
I could hold shift and drag on the timeline to select, copy, then paste it into a document or another video. I can't do that with VLC today. Apple removed the feature in later releases too.
Phones are dominant now and have passed the PC generation by - in number, not capability. The concept of copy/paste/save for arbitrary data lives on for the non-tech masses only in the form of screenshots and screen recording features.
Adolescence is a very good word to encompass it, lots of awkward experiments trying to make the latest thing stick along with some of them getting discarded along the way when we grow out of them, they turn out not to be (broadly) useful or fashion moves on. What I wonder about is if the personal computer has hit maturity now and we're past that experimental phase, for most people it's an appliance. Obviously you can still get PCs and treat them as a workstation to dive into whatever you're enthusiastic about but you need to specifically go out and pursue that, where the ecosystem might be lacking is a bridge between the device most have as their personal computer (phone/tablet) and something that'll introduce them to other areas.
There might be a resurgence of some kind of device like a PC.
Seeing iPadOS gain desktop features, and MacOS starting to adopt more and more iPadOS type features clearly shows the desktop, laptop and tablet experiences will be merged at some point by Apple at least.
When it's not impeded by DRM, that is
Even then, there are a few competitors to YouTube like Nebula, PeerTube, and Odysee. But Nebula requires a subscription and PeerTube and Odysee have worse quality, because good video hosting and streaming is expensive.
A company can increase its profits (1) by improving their products and services, so that they'll get more customers or customers willing to pay more, or (2) by increasing how much of their revenue is profit by (e.g.) cutting corners on quality or raising prices or selling customers' personal information to third parties.
Either of those can work. Yes, a noble idealistic company might choose #1 over #2 out of virtue, but I think that if most companies picked #1 in the past it's because they thought they'd get richer that way.
I think what's happened is that for some reason #2 has become easier or more profitable, relative to #1, over time. Or maybe it used not to be so clearly understood that #2 was a live option, and #1 seemed safer, but now everyone knows that you can get away with #2 so they do that.
https://en.wikipedia.org/wiki/Enshittification?wprov=sfti1
/s
I remember when VCR's came out and everyone would take TV shows and share them with their friends.
By now we should be able to share video on SD Cards that just pop into a slot on the top of the TV, but the electronics companies are now also the content companies, so they don't want to.
I think what breaks computer peoples' brains a bit is the idea that the bytes flying around networks aren't just bytes, they represent information that society has granted individuals or businesses the right to control and the fact technology doesn't treat any bytes special is a problem when society wants to regulate the rights over that information.
I have worked on computer systems for media organizations and they have a very different view of intellectual property than the average programmer or technologist. The people I find the most militant about protecting their rights are the small guys, because they can't afford to sue a pediatrician for an Elsa mural or something.
Piracy did pretty well, but that's because the legal experience was so terrible. But even then, you had to download obscure players and codec packs, and sourcing wasn't as easy as it is now. For reference VLC and BitTorrent released in 2001.
I'd say the user experience steadily improved and peaked in the mid-2010s. I think it is worse now, but if it is worse now, back then, it was terrible, for different reasons.
Actually at this point the only thing that makes the good old aMule a bit less inconvenient to my own expectations are
- it's missing snippet previews
- it doesn't have as many resources on every topic out there.
Sometimes I can’t even click on the front page, sometimes when I open a video it refuses to play.
I don’t know what’s up, but it works in chrome.
Oh and it's not working at all on my desktop with the same setup, it's telling me to disable ad block. I'd rather give up yt.
Has nothing to do with video per se. Normal embeddings, using the standard `<video>` element and no unnecessary JS nonsense, still work the same way they did in the 90s: Right click the video and download it, it's a media element like any other.
The reason why user experience is going to shite, is because turbocapitalism went to work on what was once The Internet, and is trying to turn it into a paywalled profit-machine.
I'm not a fan of how much JS is required to make all that work though, especially given the vast majority of sites are just using one of two standards, HLS or DASH. Ideally the browsers would have those standards built-in so plain <video> elements can handle them (I think Safari is the only one which does that, and they only do HLS).
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...
I have used it on a couple of client sites, and it works really well.
You can even add a thumbnail that shows before the video starts downloading/playing (the poster attribute). :-)
I’m so confused reading these comments. Did everyone forget RealPlayer? Flash videos? All of the other nonsense we had to deal with to watch video on the internet?
Then once you've found a codec, the other problem immediately rears its head: video compression is pretty bad if you want to use a widely supported codec, even if for no other reason than the fact that people use non-mainstream browsers that can be years out of date. So you are now dealing with massive amounts of storage space and bandwidth that are effectively being eaten up by duplicated files, and that isn't cheap either. To give an estimate, under most VPS providers that aren't hyperscalers, a plain text document can be served to a couple million users without having to think about your bandwidth fees. Images are bigger, but not by enough to worry about it. 20 minutes of 1080p video is about 500mb under a well made codec that doesn't mangle the video beyond belief. That video is going to reach at most 40000 people before you burn through 20 terabytes of bandwidth (the Hetzner default amount) and in reality, probably less because some people might rewatch the thing. Hosting video is the point where your bandwidth bill will overtake your storage bill.
And that's before we get into other expected niceties like scrolling through a video while it's playing. Modern video players (the "JS nonsense" ones) can both buffer a video and jump to any point in the video, even if it's outside the buffer. That's not a guarantee with the HTML video element; your browser is probably just going to keep quietly downloading the file while you're watching it (eating into server operator cost) and scrolling ahead in the video will just freeze the output until it's done downloading up until that point.
It's easy to claim hosting video is simple, when in practice it's probably the single worst thing on the internet (well that and running your own mailserver, but that's not only because of technical difficulties). Part of YouTube being bad is just hyper capitalism, sure, but the more complicated techniques like HLS/DASH pretty much entirely exist because hosting video is so expensive and "preventing your bandwidth bill from exploding" is really important. That's also why there's no real competition to YouTube; the metrics of hosting video only make sense if you have a Google amount of money and datacenters to throw at the problem, or don't care about your finances in the first place.
I remember when someone slapped a big "Buffering" sign over the Real Networks logo on the company's building in Seattle.