Skip to content

Add deno and update yt-dlp#1710

Closed
davidwilemski wants to merge 1 commit intoArchiveBox:stablefrom
davidwilemski:dtw/yt-dlp-2025.11.12
Closed

Add deno and update yt-dlp#1710
davidwilemski wants to merge 1 commit intoArchiveBox:stablefrom
davidwilemski:dtw/yt-dlp-2025.11.12

Conversation

@davidwilemski
Copy link
Copy Markdown

Summary

yt-dlp now requires a js runtime and suggests deno >=2.0 yt-dlp/yt-dlp#15012

In addition to updating the yt-dlp package there is now also a recommended external javascript blob that needs to be installed. See the yt-dlp wiki for install options. Here, I've added the [default] dependency group which will also install yt-dlp-ejs containing that blob.

This ensures yt-dlp continues to work. I was seeing some intermittent issues with the media extractor before this. I've tested this branch by building a docker image and running it against my archivebox install and confirming that some URLs now archive media properly.

I don't know how often the yt-dlp-ejs package will end up needing to be updated which may or may not be an argument in favor of eventually having an option to use the option to run the external js from npm but for now this sticks with baking an immutable docker image.

I also wasn't familiar with pdm but to update the pdm lock file I just ran pdm lock which seems to have worked but also updated quite a few other dependencies in that lockfile.

Related issues

Changes these areas

  • Bugfixes
  • Feature behavior
  • Command line interface
  • Configuration options
  • Internal architecture
  • Snapshot data layout on disk

yt-dlp now requires a js runtime and suggests deno >=2.0
yt-dlp/yt-dlp#15012

In addition to updating the yt-dlp package there is now also a
recommended external javascript blob that needs to be installed. See the
[yt-dlp wiki] for install options. Here, I've added the [default]
dependency group which will also install yt-dlp-ejs containing that
blob.

[yt-dlp wiki]: https://github.com/yt-dlp/yt-dlp/wiki/EJS
@pirate
Copy link
Copy Markdown
Member

pirate commented Nov 15, 2025

We should make sure to use a single JS env for both single-file-cli and yt-dlp, otherwise archivebox will install 2 redundant JS runtimes.

@pirate
Copy link
Copy Markdown
Member

pirate commented Dec 29, 2025

I fixed this in dev, archivebox now handles npm stuff and passes NODE_BINARY to the yt-dlp plugin, which uses the --js-runtimes node:{NODE_BINARY} arg to enable it.

@pirate pirate closed this Dec 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants