Skip to content

Conversation

@akierig
Copy link
Contributor

@akierig akierig commented Nov 13, 2025

Description

yt-dlp-ejs is a new requirement for yt-dlp from version 2025.11.12. It enables yt-dlp to solve JavaScript challenges on YouTube and other sites. Without adding yt-dlp-ejs/JS runtime to yt-dlp, it will not be able to download the highest quality versions of YouTube videos, if it can at all.

This PR also updates yt-dlp to version 2025.11.12.

Type(s)
  • bugfix
  • enhancement
  • security fix
Tested on

macOS 15.7.2 24G325 arm64
Xcode 26.1.1 17B100

Verification

Have you

  • followed our Commit Message Guidelines?
  • squashed and minimized your commits?
  • checked that there aren't other open pull requests for the same change?
  • checked your Portfile with port lint?
  • tried existing tests with sudo port test?
  • tried a full install with sudo port -vst install?
  • tested basic functionality of all binary files?
  • checked that the Portfile's most important variants haven't been broken?

@macportsbot
Copy link

Notifying maintainers:
@ryandesign for port youtube-dl.

Copy link
Contributor

@ryandesign ryandesign left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this.

@ryandesign
Copy link
Contributor

Please indicate in the commit message that this will close https://trac.macports.org/ticket/73227.

@jmroot
Copy link
Member

jmroot commented Nov 13, 2025

Per https://lists.macports.org/pipermail/macports-dev/2025-November/046546.html quickjs cannot be used to build yt-dlp-ejs, but a platform-agnostic pre-built wheel is available, so it seems we might want to use that, although I'm not sure if the python portgroup provides a way to do that.

You can find some examples by grepping the ports tree for .whl; py-fontaine is one.

@akierig akierig force-pushed the yt-dlp-2025.11.12 branch 5 times, most recently from a9bfa81 to 26d39c9 Compare November 14, 2025 22:41
@akierig
Copy link
Contributor Author

akierig commented Nov 14, 2025

Okay here's what I've done.

  1. yt-dlp-ejs installs the wheel with prebuilt js (thanks again for the help, @jmroot)
  2. deno is a runtime dependency of yt-dlp-ejs. if os.major is <= 16 (eg., MacOS 10.12), the dependency switches to quickjs (please give that a shot @aeiouaeiouaeiouaeiouaeiouaeiou). I decided to keep the js runtime in the ejs port to make things simpler for...
  3. added the ejs dependency to the yt-dlp subport and added a new yt-dlp port variant called no_javascript which removes the yt-dlp-ejs dependency. I decided to do it that way so that people who use yt-dlp for youtube wouldn't suddenly have to deal with youtube downloads no longer working for them.
  4. added @ryandesign as a maintainer on yt-dlp-ejs and removed openmaintainer.

port lint passed, CI here obviously passed, and the js part activates as expected when downloading from youtube.

@akierig akierig force-pushed the yt-dlp-2025.11.12 branch 2 times, most recently from 6476ab3 to c7cc763 Compare November 15, 2025 04:52
yt-dlp: update to 2025.11.12

Closes: https://trac.macports.org/ticket/73227
@akierig
Copy link
Contributor Author

akierig commented Nov 20, 2025

@ryandesign were there any other changes you wanted to make or does this look good to go?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

6 participants