Live data from Hacker News

Yt-dlp: External JavaScript runtime now required for full YouTube support

github.com

501–510 of 646 posts

Re: Yt-dlp: External JavaScript runtime now required for full YouTube support

#501

Earlier quoted context omitted.

Yes, and it's only reasonably secure because of years of exploits being found and fixed by some of the best (and very well-funded) software security engineers out there.

Great news! Deno uses the same runtime as chrome, so you benefit from all those found exploits.

While you benefit from the V8 fixes it lacks OS-level sandboxing (see above). Chrome is safe because it stacks security layers. Runtime sandboxing is just one of them and arguably the weakest one.

Re: Yt-dlp: External JavaScript runtime now required for full YouTube support

#502

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.

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 go…

Well, the corporate policy in GOOG now is to only test everything on Chrome. Engineers are not even allowed to install Firefox. This is the result.

Re: Yt-dlp: External JavaScript runtime now required for full YouTube support

#503

Earlier quoted context omitted.

We can have stable user-friendly software. We had a nice sweet spot in the early 2000s with Windows XP and Mac OS X: stable operating systems built on workstation-quality kernels (NT and Mach/BSD, respectively), and a userland that respected the user by providing distraction-free experiences and not trying to upsell the user. Users of workstations already experienced this in the 1990s (NeXT, Sun, SGI, HP, and PCs run…

We do of course still have this in modern computing with Linux/KDE. Stable, snappy, and does exactly what you ask. The computer doesn't get in your way, nor does it try to get you to do something else. It just does what you tell it to do, immediately.

Yup, desktop Linux and other FOSS systems like ReactOS and Haiku are the last bastions of personal computing that haven’t been made into platforms that nag and upsell us.

Re: Yt-dlp: External JavaScript runtime now required for full YouTube support

#504
post #102

Earlier quoted context omitted.

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.

> It's fine for this project since google is probably not in the business of triggering exploits in yt-dlp yt-dlp supports a huge list of websites other than youtube

I assumed they only use this setup for youtube, that might be wrong

Re: Yt-dlp: External JavaScript runtime now required for full YouTube support

#505

Earlier quoted context omitted.

> 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?…

That's if you weren't using a Mac

If you weren't using a Mac and wanted to play Quicktime videos? Then you have to install Apple's Quicktime player for Windows which was a piece of garbage.

Re: Yt-dlp: External JavaScript runtime now required for full YouTube support

#506
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/" 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]

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

Re: Yt-dlp: External JavaScript runtime now required for full YouTube support

#507

Earlier quoted context omitted.

The original point was this: > > IMO it seems like it should safe to trust code being served by Google on the official Youtube domain Which came from a misunderstanding about where the downloadable solver script comes from, as it doesn't come from youtube.com, it comes from github.com (yt-dlp org), I was just correcting that misunderstanding. > You can’t very well run yt-dlp without trusting yt-dlp code. That makes a…

> Which came from a misunderstanding about where the downloadable solver script comes from, as it doesn't come from youtube.com, it comes from github.com (yt-dlp org), I was just correcting that misunderstanding. But that script is ultimately running a JS challenge from Youtube, right? That’s why we actually needed a JS runtime in the first place.

Correct, the data needed to solve the challenge comes from YouTube.

Re: Yt-dlp: External JavaScript runtime now required for full YouTube support

#508
post #296

Earlier quoted context omitted.

As a counter-anecdote, I use YouTube daily in Safari and it will not infrequently hang for tens of seconds when trying to load a video, occasionally play the sound without the video, reasonably frequently put the video over most of the page with no way to get to the controls, etc. (This may be because I have a whole swathe of adblockers, etc., plus I do a lot of `yt-dlp`ing from the same IP which may have me on a nau…

I have the same issue. I think it's because I'm adblocking because if I try in chrome with no adblocker it loads the ads instantly. But eh either 5s of black screen or 60s of ads. I tried watching a 15 min yt video without adblock and it had 5 ad breaks with some unskippable ads.

> I tried watching a 15 min yt video without adblock and it had 5 ad breaks with some unskippable ads.

Yeah - I watch most of my YouTubes on the Apple TV and the ads are a pestilence. Sometimes it'll be 50s pre-roll[1] with multiple 30-50s breaks for a 10m videos.

Luckily there exist[0] many fine technologies that let you view them without ads via something like Infuse with a DLNA server if you're that way inclined.

[0] Currently. YT-DLP is fighting the good fight but I don't know how much longer they'll be able to keep in front. But then I'll just stop watching YouTube, really, because it's a horror show without adblock/circumventions.

[1] The video doesn't appear in your history until the pre-roll has finished which means if you can't be arsed sitting through a 50s pre-roll just that second and - at least on the Apple TV - you've not clicked on the video from your homepage / subscriptions, good luck trying to find it again unless you remember the name + channel etc. (which it also won't properly show you until after the pre-roll!)[2]

[2] I hate YouTube corporate.

Re: Yt-dlp: External JavaScript runtime now required for full YouTube support

#509
post #96

Earlier quoted context omitted.

Popular self-hosted solution: https://github.com/tubearchivist/tubearchivist

You people always make everything more complicated than necessary. yt-dlp -o '%(uploader)s/%(upload_date)s - %(title)s [%(id)s].%(ext)s' --cookies-from-browser chrome https://www.youtube.com/playlist?list=LL

I'm also not a fun of such overengineered programs, but using raw yt-dlp alone is not enough for replicating full workflow.

Your command is nice for downloading a single video (I also provide a url from clipboard via xclip), but archiving videos daily from a list of favorite channels would require a bit more scripting. Didn't manage to find anything both minimal and popular to link instead.

Re: Yt-dlp: External JavaScript runtime now required for full YouTube support

#510

Earlier quoted context omitted.

I use YouTube on a daily basis. I haven't seen any of these problems.

It is likely you use Chrome or a browser that uses Blink for its engine and the OP uses a non-blink browser like Firefox. I use Firefox and I can cofirm since the last few months Youtube usability borders on usable

Interesting. I use Firefox and it works flawlessly for me. I wonder if it's a computing power thing?
Post reply on HN