Where can I download itr, it doesn’t come up when I search for it in Pacman
Hi @Edward78 ,
You won’t be able to find it with pacman, as it’s not in the repositories. It’s in the AUR:
$ pamac search clipgrab
[...]
clipgrab 3.9.10-1 AUR
A video downloader and converter for YouTube, Veoh, DailyMotion, MyVideo, ...
So you can install it with:
pamac build clipgrab
Hope this helps!
1 Like
Well crap, the one I got from appimage doesn’t seem to want to open.
I also downloaded the .AppImage version just now, VIA this URL:
https://download.clipgrab.org/ClipGrab-3.9.10-x86_64.AppImage
placed it in my ~/Applications/ directory, made it executable:
chmod u=+rwx ~/Applications/ClipGrab-3.9.10-x86_64.AppImage
And executed it:
./Applications/ClipGrab-3.9.10-x86_64.AppImage
All this from my $HOME directory, of course.
The result:
Sorry for the image on the server, my usual method didn’t want to work. Investigating now.
Thanks, I have it, butr it fails to download the vid.
Nobody here can help with that, I’m afraid. At least I don’t think so…
Ben
22 October 2025 14:24
7
I used Clipgrab in the past, but honestly - just using yt-dlp in a terminal is just reliable, accurate and dependable for he most part… and if not, then Clipgrab has nothing to work with either.
1 Like
I also use yt-dlp, and all I can say is exactly.
2 Likes
I can.
@Edward78
you need the AppImage - and you need to install openssl-1.1 as well
Arch Linux - openssl-1.1 1.1.1.w-2 (x86_64)
The AppImage relies on that to be present, even though no one tells you that - not even the people who build and distribute the AppImage.
They apparently build this AppImage against this library
but don’t include it as they should.
It will work once this package is present on your system.
sudo pacman -S openssl-1.1
The issue is the same in Debian, Mint, Ubuntu - once this is present, ClipGrab AppImage works.
3 Likes
Well, look at you! Mr. super-helpful!
Thanks, by the way!
1 Like
It took some time to figure it out.
Nice to get presented with an opportunity to share my “hard earned” knowledge.
1 Like
clipgrab was available from arch repos (last release Monday 29 January 2024 04:40:03 AM)
still reachable from arch archives; Index of /packages/c/clipgrab/
https://archive.archlinux.org/packages/c/clipgrab/clipgrab-3.9.10-1-x86_64.pkg.tar.zst
EDIT: oops, i must have installed from manjaro repos as well, just when i checked package details, it was packaged by a arch packager, sorreh!!
And for a while, also from the Manjaro repos, but we dropped it when Arch did.
1 Like
If you are trying to download a YouTube video, failure to download could also be due to changes currently being implemented by YouTube which affect yt-dlp (a required dependency of clipgrab). I just rebuilt the AUR’s yt-dlp-git (using the command pamac build yt-dlp-git) as there has been another release of yt-dlp today. I keep an eye on new yt-dlp releases via the Release notes from yt-dlp atom feed .
Here’s the new release announcement:
Important changes
A stopgap release with a TEMPORARY partial fix for YouTube support
Some formats may still be unavailable, especially if cookies are passed to yt-dlp. The NEXT release, expected very soon, will require an external JS runtime (e.g. Deno) in order for YouTube downloads to work properly. Read more
Extractor changes
So, yt-dlp will very soon require a separate javascript runtime to download YouTube videos:
opened 09:38AM - 23 Sep 25 UTC
discussion/announcement
site:youtube
### Beginning very soon, you'll need to have [Deno](https://deno.com/) (or anoth… er supported JavaScript runtime) installed to keep YouTube downloads working as normal.
## Why?
Up until now, yt-dlp has been able to use its [built-in JavaScript "interpreter"](https://github.com/yt-dlp/yt-dlp/blob/2025.09.23/yt_dlp/jsinterp.py) to solve the JavaScript challenges that are required for YouTube downloads. But due to [recent changes on YouTube's end](https://github.com/yt-dlp/yt-dlp/issues/14400), the built-in JS interpreter will soon be insufficient for this purpose. The changes are so drastic that [yt-dlp will need to leverage a proper JavaScript runtime in order to solve the JS challenges](https://github.com/yt-dlp/yt-dlp/pull/14157).
## What do I need to do?
### Everyone will need to install [Deno](https://deno.com/) (or another supported JavaScript runtime; see the FAQ below).
yt-dlp will also need a few JavaScript components, and **this *may* require additional action from you** depending on how you installed yt-dlp:
- **Official PyInstaller-bundled executable users (e.g. `yt-dlp.exe`, `yt-dlp_macos`, `yt-dlp_linux`, etc):**
- No additional action required (besides having Deno). All the necessary JavaScript components will be bundled with these executables.
- **PyPI package users (e.g. installed with `pip`, `pipx`, etc):**
- Install *and upgrade* yt-dlp with the `default` optional dependency group included, e.g.: `pip install -U "yt-dlp[default]"`
- **Official zipimport binary users (the `yt-dlp` Unix executable):**
- Run yt-dlp with an additional flag to allow Deno to download `npm` dependencies *--or--* install yt-dlp's JS solver package in your Python environment. (The flag name and the package name are both still TBD.)
- **Third-party package users (e.g. installed with `pacman`, `brew`, etc):**
- The action required will depend on how your third-party package repository decides to handle this change. But the options available for "official zipimport binary users" should work for you as well.
---
# Frequently Asked Questions
(and answers to them)
1. ### Does this mean yt-dlp is unusable without Deno (or another supported JavaScript runtime)?
No. The JavaScript runtime requirement will only apply to downloading from YouTube. yt-dlp can still be used without it on [the other ~thousand sites it supports](https://github.com/yt-dlp/yt-dlp/blob/2025.09.23/supportedsites.md).
The relationship between yt-dlp and the JS runtime will be analogous to the relationship between yt-dlp and ffmpeg. You need to bring your own ffmpeg, but yt-dlp can still do a lot of things without it.
Downloading *some* formats from YouTube without a JS runtime will still be possible for at least a little while longer: e.g. [`web_safari`](https://github.com/yt-dlp/yt-dlp#youtube) m3u8 formats do not require a `n` parameter nor do they require a [PO token](https://github.com/yt-dlp/yt-dlp/wiki/PO-Token-Guide). We'll try to keep these formats available for as long as possible.
2. ### Why can't yt-dlp's native JavaScript interpreter be improved to handle the new YouTube player JS?
Currently, yt-dlp relies on a complicated [set of regex patterns](https://github.com/yt-dlp/yt-dlp/blob/4429fd0450a3fbd5e89573e06533c1a0874fae42/yt_dlp/extractor/youtube/_video.py#L2226-L2287) to identify the necessary functions in the YouTube player JS, and relies on even [more regex](https://github.com/yt-dlp/yt-dlp/blob/master/yt_dlp/jsinterp.py) to try and interpret that JavaScript code natively within Python.
This code was already hugely costly to maintain. Any time YouTube changed something about their player JS, it would cause multiple maintainers to drop everything and spend all of their free time for the next 2-3 days trying to fix things.
With the latest changes, the necessary functions are spread out all over the player and are much more difficult to identify. Continuing to use the regex-based approach would be far too brittle and far too costly (i.e. maintainers would be spending all of their free time for the next 2-3 *weeks* after a breakage trying to fix things).
So the regex-based approach has been abandoned in favor of an AST-based approach (https://github.com/yt-dlp/ejs), which should allow us to respond much more quickly to changes in the player JS, even as its obfuscation increases.
3. ### Why *Deno*?
Deno is sandboxed by default and does not allow filesystem or network access. This is essential to protect our less-technically-inclined users. It also comes as a single-file portable executable, making its "installation" comparable to that of ffmpeg (which is something that all of our users should already be familiar with.)
Another obstacle we are facing in the near future is [YouTube's proof-of-origin (PO) token](https://github.com/yt-dlp/yt-dlp/wiki/PO-Token-Guide) requirement being enforced for all YT player clients. Implementing a built-in solution to this will also require JavaScript functionality which far exceeds that of our native `jsinterp` module. So we chose a runtime that would be able to handle the JS challenges (`n` parameter/signature cipher) *as well as* PO token generation in the future.
4. ### Will other JavaScript runtimes be supported?
The [linked pull request](https://github.com/yt-dlp/yt-dlp/pull/14157/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5) already supports **Node** and **Bun** in addition to Deno.
This was not advertised in the original announcement post because **A.)** Deno is the safest option & we'd prefer less-technically-inclined yt-dlp users to stick with that, **B.)** Deno will be used by default while using Node/Bun will require user intervention (i.e. passing a CLI argument), and **C.)** yt-dlp may only be able to support recent versions of Node and Bun (see question 10 below).
And while Deno, Node and Bun are the only runtimes that will be *initially* supported, we are open to adding support for more.
5. ### What about *PhantomJS*?
PhantomJS will no longer be used by yt-dlp's YouTube extractor in any capacity. The project is unmaintained, outdated and insecure. From a developer's perspective, it is nearly impossible to debug. There was an unsuccessful attempt made to get it working with this solution, but ultimately we decided we need to abandon it. For now, PhantomJS is still being used by a handful of other (non-YouTube) extractors.
6. ### What about *QuickJS*?
There was also an attempt made to use our external solver script with QuickJS, but it yielded execution times of ~33 minutes per video. (It also failed because QuickJS needed a polyfill for `URL`). Per [consultation with a quickjs-ng maintainer](https://github.com/yt-dlp/yt-dlp/issues/14404#issuecomment-3330764760), QuickJS is not a good fit for us since we could only realistically expect to double this speed (~15 minutes per video).
Edit: After more investigation, the performance characteristics observed by us are only present in quickjs-ng, not upstream quickjs. quickjs-ng is also looking in to backporting the performance improvements from upstream (https://github.com/quickjs-ng/quickjs/issues/1002). While slower than v8 based engines, quickjs seems fast enough to be viable. For now we will focus on getting the framework merged. Support for other JS runtimes can easily be added later.
7. ### What about *Selenium* or a headless browser solution?
The yt-dlp maintainers have no interest in doing this except as a measure of last resort. A headless browser solution would be an admission of defeat and would go against the spirit of this project.
8. ### Is this change the same thing as the [YTNSigDeno plugin](https://github.com/bashonly/yt-dlp-YTNSigDeno)?
No. The plugin just substitutes Deno for the native JSInterp after the `n` cipher function has already been extracted using Python regex. The actual solution will (out of necessity) completely delegate the `n` cipher function extraction to the JS runtime.
The plugin's development has been abandoned and the repository will be archived after yt-dlp has native Deno support.
9. ### What is the minimum required version of Deno?
We don't yet know exactly, but we are assuming version 2.x for now. After the patch is finalized and more testing has been conducted, we will have a definitive answer and it will be included in the announcement at release time. If we find out any sooner, this answer will be updated.
10. ### What is the minimum required version of Node?
It can be assumed that EOL versions of Node (i.e. `<20`) will **not** be supported. Per some testing earlier today, Node version `>=21` is required by the PR branch. We'll look into the feasibility of supporting Node 20.
11. ### What about platforms that aren't supported by the minimum required versions of these JavaScript runtimes?
We are open to adding support for other JavaScript runtimes so long as they fit into our established framework (see the [linked PR](https://github.com/yt-dlp/yt-dlp/pull/14157)). Pull requests are welcome, but obviously we ask that you wait until the initial linked PR has been merged.
12. ### What do I need to do if I'm using \[*insert Linux/BSD distro here*\]?
You'll have to wait and see what your distro's package maintainers decide to do.
13. ### I installed Deno, but why doesn't yt-dlp seem to be using it?
This change has not yet been implemented. This announcement is intended to give everyone a heads up.
The preferred javascript candidate is deno (which is available from the repos):
pamac info deno
Name : deno
Version : 2.5.4-1
Description : A secure runtime for JavaScript and TypeScript
URL : https://deno.land
Licenses : MIT
Repository : extra
Installed Size : 115.3 MB
Groups : --
Depends On : gcc-libs
Optional Dependencies : --
Provides : --
Replaces : --
Conflicts With : --
Packager : Felix Yan <felixonmars@archlinux.org>
Build Date : Sat 11 Oct 2025 12:26:43
Validated By : MD5 Sum SHA-256 Sum Signature
2 Likes
Or you can just download and use the precompiled binary to ~/.local/bin/, then you don’t even have to install it. The same with yt-dlp itself.
(That also means the updates are a bit faster than the repositories’.)
2 Likes
system
Closed
26 October 2025 11:15
23
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.