mrkeyoor.com_
Tue 01 Sept 17:43 UTC
Self-Hostedevaluationupdated 01 Sept 2026

reclip review

ReClip is a small self-hosted web page for downloading video or MP3 files through yt-dlp. It gives people who dislike command-line flags a URL box, quality choices, bulk fetching, and a browser download button.

trackingstars / 7d
Verdict

Our ReClip sandbox installed 43 packages in 23 seconds and built in 8 seconds, but the measured commit had no test target, so it is best treated as a personal localhost tool. Use it for occasional downloads when you value a readable interface and can accept yt-dlp site breakage. Do not publish port 8899 beyond a trusted network without adding authentication, request hardening, and file cleanup.

We ran it

Lab card: what happened when we ran reclipScreenshot of reclip (github.com/averygan/reclip)
Install✓ · 23s43 packages · 52 MB
Build✓ · 8s
Testsn/ano test script
Known vulns0(pip-audit)
Repo14 files~280 lines of source · 0.9 MB · 0 CI workflows · Dockerfile

Answers from our run

Does reclip build from source?

Dependencies installed in 23 seconds (43 packages), and the build succeeded in 8 seconds. We cloned commit 1d161d1 into a clean Debian container with 3 CPUs and no project-specific setup.

Does reclip have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does reclip have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use reclip?

Anyone exposing the service to the public internet: the measured commit has no login or API key, and open pull request 58 describes command execution through an unchecked URL argument.

What are the alternatives to reclip?

yt-dlp, MeTube, TubeSync. Our ReClip sandbox installed 43 packages in 23 seconds and built in 8 seconds, but the measured commit had no test target, so it is best treated as a personal localhost tool.

Setup4/523-second install, Docker path, and three required local tools
Docs3/5Quick start is clear; security and file lifecycle are absent
Community3/57,426 stars and recent issue activity, with 47 issues and PRs
Maturity2/5No release, CI workflow, or test target in the measured commit

Who it’s for

People who want a private browser front end for occasional yt-dlp downloads.
Home-server users who will keep the service on a trusted network.
Python developers who prefer a roughly 280-line codebase they can inspect and alter.
Users who need simple MP4, MP3, quality, and multi-URL controls rather than an archival system.

Who it’s NOT for

Anyone exposing the service to the public internet: the measured commit has no login or API key, and open pull request 58 describes command execution through an unchecked URL argument.
Teams that require a tested release artifact: GitHub has no published release, while our checkout had no test target and no CI workflow.
YouTube users who need cookie or JavaScript-challenge handling in the shipped container: open issues 51 and 55 document access denial and a missing Deno path.
Multi-user operators who need durable queues or retention rules: job state lives in one Python dictionary, and downloaded files remain in the downloads directory.
Media archivists who need scheduled channel syncing, naming policies, metadata controls, or library integration: ReClip is an on-demand MP4 and MP3 interface.

Setup reality

Our sandbox installed ReClip in 23 seconds, adding 43 packages and using 52 MB. The build succeeded in 8 seconds. There was no test script or target, so we skipped tests; pip-audit found 0 known vulnerabilities in the installed Python packages.

The local script expects Python, yt-dlp, and ffmpeg, then creates a virtual environment and updates yt-dlp at startup unless disabled. Docker supplies Python and ffmpeg and installs the Python requirements. Basic use needs no account or secret.

The Python server defaults to 127.0.0.1:8899, while the Compose file publishes port 8899. Jobs exist only in process memory, downloads use a persistent volume, and the measured commit has no authentication or cleanup policy.

ReClip is a small browser shell around yt-dlp

ReClip puts a Flask page in front of yt-dlp and ffmpeg. Paste one or more links, fetch their titles and available resolutions, then choose MP4 or MP3. The README says the underlying downloader recognizes more than 1,000 sites, so ReClip inherits broad extractor coverage without implementing those sites itself. The useful part is the interface: deduplication, per-item status, a quality picker, and a Download All button remove much of the command-line friction.

The measured checkout was 0.9 MB with 14 files and about 280 lines of source. Its backend keeps jobs in a Python dictionary, starts one thread per download, and asks yt-dlp to write into a local downloads directory. The frontend is one HTML file with embedded CSS and JavaScript. That size makes the flow unusually easy to inspect. It also means there is no database, account model, worker queue, or administrator view hiding elsewhere in the repository.

What happened when we ran it

Our sandbox installed ReClip in 23 seconds, putting 43 packages and 52 MB on disk. The build succeeded in 8 seconds in an unprivileged Debian container with 3 CPUs and 8 GB of RAM. Pip-audit reported 0 known vulnerabilities in the installed Python packages. Those results cover commit 1d161d1, whose final change fixed parsing when yt-dlp returns several JSON objects and added an automatic yt-dlp update during startup.

There was no test script or target, so we skipped tests rather than inventing a passing result. Our repository scan also found 0 CI workflow files and no tests directory. A Dockerfile and Compose file are present, which explains the successful build, but neither replaces behavioral coverage for URL parsing, format selection, file discovery, or concurrent job handling. ReClip is easy to start; the 8-second build says nothing about whether a particular site will still download tomorrow.

Port 8899 has no authentication in the measured commit

The local launcher binds to 127.0.0.1 on port 8899 unless the host is changed, a sensible default for personal use. The Compose file maps port 8899 from a Gunicorn container, and the measured backend accepts download requests without a login or API key. Open pull request 58 on URL argument handling says an unchecked value can be interpreted by yt-dlp as an option, including its command hooks. The patch was still open when we checked.

That combination rules out casual public exposure. An internet-facing instance would let strangers spend its bandwidth, processor time, and storage even before considering the open security report. The in-memory jobs dictionary disappears on restart, while downloaded files stay under the downloads directory and the Compose volume persists them. There is no quota or expiry routine in roughly 150 backend lines. Put ReClip behind access control, restrict the network, and add cleanup if anyone beyond one trusted user can reach it.

Site breakage reaches the UI because yt-dlp does the extraction

ReClip does not promise that 1,000 extractors all work continuously. Issue 51 reports YouTube access denial, and issue 55 asks for Deno in the container for newer YouTube JavaScript challenges. Other open reports concern Instagram errors, YouTube cookie prompts, unavailable formats, and audio-only output from an MP4 choice. These are useful warnings for anyone expecting the web page to turn a changing third-party site into a stable download API.

The launcher tries to reduce extractor drift by upgrading yt-dlp every time it starts, unless RECLIP_NO_UPDATE=1 is set. That favors recovery from site changes, but it also makes two starts capable of running different downloader code without a ReClip commit changing. Pinning yt-dlp gives repeatable deployments and leaves updates to the operator. Leaving the updater enabled may restore a broken extractor sooner. Either choice requires accepting that ReClip's 23-second install result is only the local setup cost, not proof that every supported site works.

Forty-seven open issues and pull requests exceed the shipped surface

GitHub showed 7,426 stars and 47 combined issues and pull requests, with the last code push on July 9, 2026. Issue activity continued through August 25, 2026, so discussion did not stop with the last commit. GitHub's latest-release endpoint returned no release. Users therefore install the main branch or build a local image rather than choosing a tagged ReClip artifact with published notes and a fixed dependency set.

Several open contributions propose much more than the current MP4 and MP3 page: a command line, agent contract, authentication, rate limits, GIF output, cookie handling, and extra formats. They show demand, though open pull requests are not shipped features. For a personal utility, the current scope is pleasant because the code is small enough to audit in one sitting. For a shared downloader, MeTube is the safer comparison; for scheduled channel archiving, TubeSync matches the job more closely.

Alternatives

ProjectWhat it isPick it when
yt-dlp gh↗The command-line downloader that ReClip uses underneath its web page.pick this instead when scripts, extractor options, cookies, naming rules, and direct error output matter more than a browser UI.
MeTubeA more established self-hosted yt-dlp web interface with queue and container workflows.pick this instead when you want a longer-lived web downloader with more operational history.
TubeSyncA self-hosted service that syncs YouTube channels and playlists into a media library.pick this instead when recurring channel or playlist archiving is the job.

What people are saying

  1. [github-trending] averygan/reclip

Sources

  1. ReClip README
  2. ReClip repository activity
  3. Measured commit 1d161d1
  4. Open URL argument handling pull request
  5. YouTube access denial issue
  6. Deno container request

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · Mindustry · the whole board →