Linux guide

An open source video downloader for Linux

ArcDLP ships as a single x64 AppImage with yt-dlp and ffmpeg baked in, so there is nothing to install and no dependency to satisfy. It runs on Ubuntu, Debian, Fedora, Arch and anything else with a reasonably modern glibc. MIT licensed, and you can build it yourself in about two minutes.

Download AppImage v1.4.x · x64 · ~115 MB

Running the AppImage

  1. Download the AppImage from the releases page. Scroll to Assets and take ArcDLP-x.x.x.AppImage.
  2. Make it executable: chmod +x ArcDLP-*.AppImage. In a file manager, right click → Properties → Permissions → tick Allow executing file as program.
  3. Run it: ./ArcDLP-1.4.x.AppImage or just double click.

That is the whole install. No package manager, no PPA, no Python virtualenv, no separate ffmpeg. Settings → Dependencies shows which yt-dlp, ffmpeg and Deno versions are bundled inside the image you are running.

Fixing the FUSE error

By far the most common Linux problem, and it is not specific to ArcDLP. AppImages mount themselves using FUSE 2, which Ubuntu 22.04 and later, Fedora 35 and later, and most current distributions no longer install by default. You will see something like dlopen(): error loading libfuse.so.2.

Two ways out. Install FUSE 2:

  • Ubuntu, Debian, Mint: sudo apt install libfuse2
  • Fedora: sudo dnf install fuse fuse-libs
  • Arch, Manjaro: sudo pacman -S fuse2
  • openSUSE: sudo zypper install fuse

Or skip FUSE entirely, which needs no root at all:

  • ./ArcDLP-1.4.x.AppImage --appimage-extract-and-run

That second option unpacks the image to a temporary directory and runs it from there. It is marginally slower to start and completely reliable.

Chrome sandbox errors. On a few hardened kernels and inside some containers, Electron apps fail with a SUID sandbox message. If that happens, running with --no-sandbox works, but understand that you are turning off a real security boundary. Enabling unprivileged user namespaces on your system (sudo sysctl -w kernel.unprivileged_userns_clone=1) is the better fix where your distribution allows it.

Adding it to your app launcher

AppImages do not integrate with your desktop environment on their own. If you want ArcDLP in your applications menu rather than living in your Downloads folder, either install AppImageLauncher, which handles this automatically for every AppImage, or write the desktop entry yourself.

Move the image somewhere permanent and create the entry:

  • mkdir -p ~/.local/bin ~/.local/share/applications
  • mv ArcDLP-*.AppImage ~/.local/bin/arcdlp.AppImage
  • chmod +x ~/.local/bin/arcdlp.AppImage

Then create ~/.local/share/applications/arcdlp.desktop containing a standard entry with Exec=/home/YOU/.local/bin/arcdlp.AppImage, Type=Application, Categories=AudioVideo;Utility; and an Icon= line pointing at a copy of the app icon. Run update-desktop-database ~/.local/share/applications and it will appear in your launcher.

Building from source

Since Linux users tend to want this, here is the short version. You need Node and npm.

  • git clone https://github.com/archisvaze/arcdlp.git && cd arcdlp
  • npm install
  • npm run build:linux

The postinstall script downloads the correct yt-dlp and Deno binaries for your platform and architecture during npm install. If you are cross-building, set npm_config_platform and npm_config_arch before installing, and delete node_modules and bin when switching targets. Only one binary per platform is fetched per install.

For development rather than packaging, npm run dev launches with DevTools and verbose logging. The codebase is deliberately plain: vanilla JavaScript, no framework, no build step for the renderer.

Using it

Paste a URL, press Enter, pick a quality from the list of what the source actually offers, click Add to Queue. Files go to ~/Downloads/ArcDLP unless you change it under Settings → Storage.

Playlists and channels work the same way: paste the URL and every item appears with a checkbox, then choose one format for the batch. The queue processes items sequentially and keeps going past failures, retrying individually if you want.

Codec selection under Settings → Video is worth knowing about on Linux since hardware decode support varies a lot. VP9 produces WebM with Opus audio and is well supported basically everywhere in the Linux world. AV1 gives the smallest files but wants a recent GPU or a fast CPU for smooth playback. H.264 in MP4 is the safest if the file is going to someone on another OS.

Compared to yt-dlp on its own

On Linux, installing yt-dlp is genuinely easy. It is one line from your package manager or pipx, and if you are comfortable in a terminal there is a strong argument that you do not need a GUI at all. ArcDLP is worth it if you want to see file sizes before choosing a quality, want a visible queue for large playlists, or want to hand something to a family member who is never going to type a format selector. The yt-dlp GUI guide goes through that trade-off honestly. Also available for Mac and Windows.

FAQ

The AppImage will not run and mentions FUSE. What do I do?
AppImages need FUSE 2, which newer distributions no longer install by default. On Ubuntu and Debian run sudo apt install libfuse2. On Fedora run sudo dnf install fuse. Or run the AppImage with --appimage-extract-and-run, which skips FUSE entirely and needs no root.
Is there a Flatpak, Snap, deb or AUR package?
Not officially. The published Linux artifact is an x64 AppImage. Packaging contributions are very welcome on GitHub, and the electron-builder config already supports adding deb and rpm targets with a couple of lines.
Does it work on ARM Linux or a Raspberry Pi?
There is no published arm64 build, but building from source works. Set npm_config_arch=arm64 before npm install so the right yt-dlp and ffmpeg binaries are fetched, then run npm run build:linux. Expect slow AV1 decode on a Pi.
Does it need Python or a separate ffmpeg?
No. The yt-dlp binary is the standalone build and ffmpeg is bundled via ffmpeg-static. Nothing outside the AppImage is required.
Does it run on Wayland?
Yes, through XWayland by default. For native Wayland you can pass the usual Electron flags (--ozone-platform-hint=auto), which helps with fractional scaling on HiDPI setups.

Download for Linux

Free and MIT licensed. v1.4.x, single x64 AppImage, no dependencies.