Search engines are not blocked. Try using "site:www.freshports.org" and your search terms.
Volunteers wanted to help translate FreshPorts
Searches without login should now work. You must get asked to click a button.
Port details
py-yt-dlp-ejs JavaScript challenge solver for yt-dlp
0.8.0 www Σ=3 search for ports that depend on this port Find issues related to this port Report an issue related to this port View this port on Repology. pkg-fallout 0.8.0Version of this port present on the latest quarterly branch.
Maintainer: yuri@FreeBSD.org search for ports maintained by this maintainer
Port Added: 2026-03-01 22:09:06
Last Update: 2026-10-10 18:10:05
Commit Hash: 28fa6f6
People watching this port, also watch: py312-mutagen, libinotify, yt-dlp, libgd, netpbm
License: UNLICENSE
WWW:
https://github.com/yt-dlp/yt-dlp-ejs
Description: #
yt-dlp-ejs provides the external JavaScript (EJS) scripts that yt-dlp uses to interact with YouTube's player logic. These scripts enable full support for YouTube by solving JavaScript-based challenges, such as signature and throttle parameter decryption. A JavaScript runtime is required at runtime to execute these scripts. Supported runtimes include Deno, Node.js, Bun, and QuickJS.
Homepage    cgit ¦ Codeberg ¦ GitHub ¦ GitLab ¦ SVNWeb - no subversion history for this port

Manual pages: #
FreshPorts has no man page information for this port.
pkg-plist: as obtained via: make generate-plist #
There is no configure plist information for this port.
USE_RC_SUBR (Service Scripts)
  • no SUBR information found for this port
Dependency lines:
  • ${PYTHON_PKGNAMEPREFIX}yt-dlp-ejs>0:www/py-yt-dlp-ejs@${PY_FLAVOR}
To install the port: #
cd /usr/ports/www/py-yt-dlp-ejs/ && make install clean
To add the package, run one of these commands:
  • pkg install www/py-yt-dlp-ejs
  • pkg install py312-yt-dlp-ejs
NOTE: If this package has multiple flavors (see below), then use one of them instead of the name specified above.
NOTE: This is a Python port. Instead of py312-yt-dlp-ejs listed in the above command, you can pick from the names under the Packages section.
PKGNAME: py312-yt-dlp-ejs
Package flavors (<flavor>: <package>) #
  • py312: py312-yt-dlp-ejs
ONLY_FOR_ARCHS: aarch64 amd64 powerpc64le
distinfo: #
TIMESTAMP = 1774383824 SHA256 (yt-dlp-ejs/amd64/yt_dlp_ejs-0.8.0.tar.gz) = d5fa1639f63b5c4af8d932495f60689d5370f1a095782c944f7f62a303eb104e SIZE (yt-dlp-ejs/amd64/yt_dlp_ejs-0.8.0.tar.gz) = 96571

Expand this list (2 items)

Collapse this list.

SHA256 (yt-dlp-ejs/amd64/yt-dlp-ejs-node-modules-0.8.0.tar.gz) = 9412c22a67a2218a168e2feceb4b42cbb06574cfdebc9ef1a9bc8d981e7f6631 SIZE (yt-dlp-ejs/amd64/yt-dlp-ejs-node-modules-0.8.0.tar.gz) = 15397650

Collapse this list.


Packages (timestamps in pop-ups are UTC): #
py312-yt-dlp-ejs
ABIaarch64amd64armv6armv7i386
FreeBSD:14:latest0.8.00.8.0---
FreeBSD:14:quarterly0.8.00.8.0---
FreeBSD:15:latest0.8.00.8.0n/a-n/a
FreeBSD:15:quarterly0.8.00.8.0n/a-n/a
FreeBSD:16:latest0.8.00.8.0n/a-n/a
Dependencies #
NOTE: FreshPorts displays only information on required and default dependencies. Optional dependencies are not covered.
Build dependencies: #
  1. deno : www/deno
  2. npm : www/npm-node24
  3. py312-hatch-vcs>=0 : devel/py-hatch-vcs@py312
  4. py312-hatchling>0 : devel/py-hatchling@py312
  5. python3.12 : lang/python312
  6. py312-build>=0 : devel/py-build@py312
  7. py312-installer>=0 : devel/py-installer@py312
Test dependencies: #
  1. py312-pytest>=7,1 : devel/py-pytest@py312
  2. python3.12 : lang/python312
Runtime dependencies: #
  1. deno : www/deno
  2. python3.12 : lang/python312
Fetch dependencies: #
  1. npm : www/npm-node24
  2. ca-root-nss.crt : security/ca_root_nss
This port is required by: #
for Build #
  1. www/yt-dlp
for Run #
  1. www/py-yt-dlp
  2. www/yt-dlp

Configuration Options: #
No options to configure
Options name: #
www_py-yt-dlp-ejs
USES: #
python
FreshPorts was unable to extract/find any pkg message #
Master Sites: #
Expand this list (2 items)
Collapse this list.
  1. https://files.pythonhosted.org/packages/source/y/yt_dlp_ejs/
  2. https://pypi.org/packages/source/y/yt_dlp_ejs/
Collapse this list.

Number of commits found: 12 #

Commit History - (may be incomplete: for full details, see links to repositories near top of page)
CommitCreditsLog message
0.8.0
10 Oct 2026 18:10:05
commit hash: 28fa6f69acc4e74002bd52baeaf6c27a97fecbf2commit hash: 28fa6f69acc4e74002bd52baeaf6c27a97fecbf2commit hash: 28fa6f69acc4e74002bd52baeaf6c27a97fecbf2commit hash: 28fa6f69acc4e74002bd52baeaf6c27a97fecbf2 files touched by this commit
Piotr Kubaj (pkubaj) search for other commits by this committer
www/py-yt-dlp-ejs: add powerpc64le

Use workaround due to missing rollup support.
0.8.0
09 Oct 2026 06:19:22
commit hash: 70626cc5410906a427fdc1a2d01713be451f334ccommit hash: 70626cc5410906a427fdc1a2d01713be451f334ccommit hash: 70626cc5410906a427fdc1a2d01713be451f334ccommit hash: 70626cc5410906a427fdc1a2d01713be451f334c files touched by this commit
Yuri Victorovich (yuri) search for other commits by this committer
www/py-yt-dlp-ejs: fix crash during build by using npm-node24 instead of 26

PR:		299143
Reported by:	Konstantin Belousov <kib@FreeBSD.org>
0.8.0
02 Oct 2026 22:19:34
commit hash: 51feb4d2eeead150ca88e561c373eb28067de4efcommit hash: 51feb4d2eeead150ca88e561c373eb28067de4efcommit hash: 51feb4d2eeead150ca88e561c373eb28067de4efcommit hash: 51feb4d2eeead150ca88e561c373eb28067de4ef files touched by this commit
Yuri Victorovich (yuri) search for other commits by this committer
www/py-yt-dlp-ejs: uniquify distfiles by architecture

This allows the distfile cache to fit them all.
0.8.0
02 Oct 2026 08:41:14
commit hash: 621c54d740a53d4d3be8e3c683074badc35dbad0commit hash: 621c54d740a53d4d3be8e3c683074badc35dbad0commit hash: 621c54d740a53d4d3be8e3c683074badc35dbad0commit hash: 621c54d740a53d4d3be8e3c683074badc35dbad0 files touched by this commit
Yuri Victorovich (yuri) search for other commits by this committer
www/py-yt-dlp-ejs: fix build on arm64

distinfo os made arch-specific.
0.8.0
24 Mar 2026 20:33:59
commit hash: 1ad1c52ccd2d0031702b66e8b59aa289bee1b6cacommit hash: 1ad1c52ccd2d0031702b66e8b59aa289bee1b6cacommit hash: 1ad1c52ccd2d0031702b66e8b59aa289bee1b6cacommit hash: 1ad1c52ccd2d0031702b66e8b59aa289bee1b6ca files touched by this commit
Yuri Victorovich (yuri) search for other commits by this committer
www/py-yt-dlp-ejs: update 0.7.0 → 0.8.0
0.7.0
14 Mar 2026 07:37:33
commit hash: b28fb48bb3e644f933cf978dbd96b0ac2b9e06fecommit hash: b28fb48bb3e644f933cf978dbd96b0ac2b9e06fecommit hash: b28fb48bb3e644f933cf978dbd96b0ac2b9e06fecommit hash: b28fb48bb3e644f933cf978dbd96b0ac2b9e06fe files touched by this commit
Yuri Victorovich (yuri) search for other commits by this committer
www/py-yt-dlp-ejs: update 0.5.0 → 0.7.0

Reported by:	portscout
0.5.0
10 Mar 2026 01:56:54
commit hash: ae001a7a25a6b245575c5138a7f085fa9917da30commit hash: ae001a7a25a6b245575c5138a7f085fa9917da30commit hash: ae001a7a25a6b245575c5138a7f085fa9917da30commit hash: ae001a7a25a6b245575c5138a7f085fa9917da30 files touched by this commit
Yuri Victorovich (yuri) search for other commits by this committer
Mk/Uses: Remove certs.mk

It was a useful shorthand for the security/ca_root_nss dependency.
However, several people disagreed.

Can anybody explain why libedit.mk is there? It is also a one string
substitution. Same with libarchive.mk.
0.5.0
09 Mar 2026 16:13:25
commit hash: b5694e0fce8add0f2aff607f1ef701d74dd68988commit hash: b5694e0fce8add0f2aff607f1ef701d74dd68988commit hash: b5694e0fce8add0f2aff607f1ef701d74dd68988commit hash: b5694e0fce8add0f2aff607f1ef701d74dd68988 files touched by this commit
Yuri Victorovich (yuri) search for other commits by this committer
www/py-yt-dlp-ejs: Add USES=certs:fetch

npm requires this for some users/systems and not for others.
It's not clear what the differentiating factor is.
See details in the bug report.

PR:		268638
Reported by:	James TD Smith
0.5.0
04 Mar 2026 04:20:02
commit hash: e5b951b54dd4277d96262f7e21dc1720ad4fd529commit hash: e5b951b54dd4277d96262f7e21dc1720ad4fd529commit hash: e5b951b54dd4277d96262f7e21dc1720ad4fd529commit hash: e5b951b54dd4277d96262f7e21dc1720ad4fd529 files touched by this commit
Yuri Victorovich (yuri) search for other commits by this committer
www/py-yt-dlp-ejs: Remove the IGNORE line

This do-fetch target does not repackage anything.
It fetches the tarball, extracts it, then fetches NodeJS dependencies
into the same folder, and packages this folder as a final tarball
used during build.

AFAIK there is nothing wrong with this port the way it is now.

This can't be done in post-extract due to internet access that is
required.
0.5.0
02 Mar 2026 17:20:46
commit hash: 073694902a75bc96e8342c6a07ad397edf994239commit hash: 073694902a75bc96e8342c6a07ad397edf994239commit hash: 073694902a75bc96e8342c6a07ad397edf994239commit hash: 073694902a75bc96e8342c6a07ad397edf994239 files touched by this commit
Mathieu Arnold (mat) search for other commits by this committer
www/py-yt-dlp-ejs: mark as IGNORE

You cannot repack your distfile in do-fetch.

If you need to extract things and move things around, do it in
post-extract.

With hat:	portmgr
0.5.0
02 Mar 2026 17:09:55
commit hash: 525663e831cc4a7c6feb037944efc8a5a96ec34dcommit hash: 525663e831cc4a7c6feb037944efc8a5a96ec34dcommit hash: 525663e831cc4a7c6feb037944efc8a5a96ec34dcommit hash: 525663e831cc4a7c6feb037944efc8a5a96ec34d files touched by this commit
Yuri Victorovich (yuri) search for other commits by this committer
www/py-yt-dlp-ejs: Fix fetch
0.5.0
01 Mar 2026 22:06:47
commit hash: 1e0296f943062559f148ca8eebc9b472874dd9c1commit hash: 1e0296f943062559f148ca8eebc9b472874dd9c1commit hash: 1e0296f943062559f148ca8eebc9b472874dd9c1commit hash: 1e0296f943062559f148ca8eebc9b472874dd9c1 files touched by this commit
Yuri Victorovich (yuri) search for other commits by this committer
www/py-yt-dlp-ejs: New port: JavaScript challenge solver for yt-dlp

Number of commits found: 12