Package Details: yt-dlp-git 2025.11.12.r0.g5977782-2

Git Clone URL: https://aur.archlinux.org/yt-dlp-git.git (read-only, click to copy)
Package Base: yt-dlp-git
Description: A youtube-dl fork with additional features and fixes (git)
Upstream URL: https://github.com/yt-dlp/yt-dlp
Licenses: Unlicense
Conflicts: yt-dlp
Provides: yt-dlp
Submitter: katt
Maintainer: katt
Last Packager: katt
Votes: 52
Popularity: 1.11
First Submitted: 2021-08-08 15:20 (UTC)
Last Updated: 2025-11-13 17:16 (UTC)

Dependencies (26)

Required by (189)

Sources (1)

Latest Comments

1 2 3 4 5 6 .. 12 Next › Last »

exponential commented on 2025-11-15 02:12 (UTC)

the version thing is probably not strictly speaking needed. Patch what ever to deactivate the check.

katt commented on 2025-11-14 20:11 (UTC)

@gesh Ideally the pkgbuild would automatically set the required version, as otherwise I would have to constantly check pyprojects.toml for new requirements. prepare() cannot change optdepends but the pkgbuild also cannot grep the source before fetching it.

I don't quite agree with your solution as I think it'd be better to added to a post install message, since people are more likely to actually read that. Though I don't have a good solution for that.

For now I will leave it as is, unless someone shows me a good solution to automatically add the required version to optdepends=(). I'm also willing to pass along maintainership to someone who is more passionate about this.

gesh commented on 2025-11-13 19:19 (UTC) (edited on 2025-11-13 19:33 (UTC) by gesh)

That's certainly odd, isn't that lack of communication counter to AUR policy?

In any case, I'd recommend both this package and the yt-dlp package to pin the version of the yt-dlp-ejs optdepend, which as per the yt-dlp wiki should be identical to the one in pyproject.toml. Given that yt-dlp complains if the -ejs version differs, I'd argue not doing so sets users up for breakage.

I've added the following to my local prepare(), just to warn myself:

    # Check the ejs version is correct
    _ejs_target=$(grep ejs "${pkgname%-git}"/pyproject.toml |
        sed 's/.*["'\'']\(.*\)["'\''].*/\1/;s/==/=/')
    ok=1
    for dep in "${optdepends[@]}"; do
        case "$dep" in
            "$_ejs_target":*)
                ok=0;&
            yt-dlp-ejs*)
                _ejs_dep="${dep%:*}";;
        esac
    done
    if [ "$ok" -ne 0 ]; then
        echo 'Incorrect yt-dlp-ejs version found!'
        printf 'Expected: %s\n' "$_ejs_target"
        printf 'Found:    %s\n' "$_ejs_dep"
    fi
    return "$ok"

phnt commented on 2025-11-13 17:02 (UTC) (edited on 2025-11-13 17:03 (UTC) by phnt)

I'll note that the package maintainer for yt-dlp in extra packaged yt-dlp-ejs in extra without communication and a deletion request for the AUR package has been submitted by another user, so things are now out of my control.

So far a VCS package for ejs has no use.

phnt commented on 2025-11-12 16:37 (UTC)

@gesh I've seen the ejs version pinning already happen with this VCS package and yt-dlp-ejs. Since Arch already made a release for yt-dlp with ejs support, but ejs not bundled, my assumption is that the intended UX is to just download it through yt-dlp itself. Something I wanted to avoid by packaging it.
If a TU wants to adopt yt-dlp-ejs and put it into extra, I'm not opposed to that.

Since this a VCS package, I don't think it's a good idea to depend on a non-VCS package of yt-dlp-ejs simply because they can drift in and out of support like already happened. I can maintain yt-dlp-ejs-git as a separate VCS package that yt-dlp-git could optdepend on without version pinning in the PKGBUILD, but upstream would have to make sure that supported versions in both Git repositories always match. Or drop the version pinning from master and only have it in normal releases. (_version.py being intentionally missing from ejs repo and only being present in releases isn't helpful either.) That is the only sensible way I can see where this would work.

gesh commented on 2025-11-12 15:42 (UTC)

Also, how are you planning on optdepending on yt-dlp-ejs? Are you planning on pulling it into extra?

gesh commented on 2025-11-12 15:41 (UTC)

@bashonly -- wait, does yt-dlp need a specific version of yt-dlp-ejs? In that case, yt-dlp-ejs should provides=("$pkgname=$pkgver") and the optdepdend here should become optdepends=("yt-dlp-ejs=$_ejs_ver: ...")

How is the version pinning determined? Do yt-dlp and -ejs share versions, or will this be something that needs to be bumped for each yt-dlp release?

bashonly commented on 2025-11-12 00:30 (UTC)

Hi, yt-dlp maintainer here. I'm of the opinion that ejs belongs in a separate package.

yt-dlp-ejs could be an optdepend of yt-dlp, along with deno and nodejs.

Unfortunately, a VCS package of ejs would not really work due to how yt-dlp is always pinned to specific ejs version and will reject anything else.