# How to Prevent ReClip from Updating yt-dlp on Startup

> Learn how to prevent ReClip from updating yt-dlp on startup. Easily disable automatic yt-dlp updates by editing ReClip's startup scripts for a smoother experience.

- Repository: [Avery Gan/reclip](https://github.com/averygan/reclip)
- Tags: how-to-guide
- Published: 2026-09-03

---

**ReClip automatically updates yt-dlp at launch by running `yt-dlp -U` in its startup scripts; you can disable this by editing [`reclip.sh`](https://github.com/averygan/reclip/blob/main/reclip.sh) or [`docker-entrypoint.sh`](https://github.com/averygan/reclip/blob/main/docker-entrypoint.sh) to comment out or remove that command.**

ReClip relies on **yt-dlp** for downloading video content, and by default it ensures you're running the latest version by executing an update check every time the application starts. If you need to prevent ReClip from updating yt-dlp on startup—whether for reproducibility, air-gapped environments, or version pinning—you'll need to modify the shell scripts that control the launch behavior. The source code in the [averygan/reclip](https://github.com/averygan/reclip) repository makes this straightforward.

## Where the Auto-Update Happens

ReClip performs the yt-dlp update in two locations depending on how you run the application:

- **[`reclip.sh`](https://github.com/averygan/reclip/blob/main/reclip.sh)** — The main launch script for native/hosted installations
- **[`docker-entrypoint.sh`](https://github.com/averygan/reclip/blob/main/docker-entrypoint.sh)** — The entry point script used in containerized deployments

Both scripts contain a direct call to `yt-dlp -U` that executes before the Flask web server starts.

### Native Installation: Editing reclip.sh

Open [`reclip.sh`](https://github.com/averygan/reclip/blob/main/reclip.sh) and locate the update command. Comment it out or delete the line entirely:

```bash
#!/usr/bin/env bash

# ReClip startup script

# ─────► Comment out the automatic yt‑dlp update

# yt-dlp -U

# Start the Flask server

python3 app.py

```

After this change, ReClip will use whatever yt-dlp binary exists in your `PATH` without attempting to download updates.

### Docker Deployment: Editing docker-entrypoint.sh

For containerized ReClip instances, modify [`docker-entrypoint.sh`](https://github.com/averygan/reclip/blob/main/docker-entrypoint.sh) similarly:

```bash
#!/usr/bin/env bash

# Docker entry‑point for ReClip

# ─────► Prevent yt‑dlp auto‑update

# yt-dlp -U

exec "$@"

```

Rebuild your container image after editing, or mount the modified script as a volume for testing.

## Environment Variable Alternative

If you prefer configurable behavior without editing files, wrap the update command in a conditional check:

```bash
if [ -z "$RECLIP_SKIP_UPDATE" ]; then
    yt-dlp -U
fi

```

Then control the update behavior at runtime:

```bash

# Skip the update

RECLIP_SKIP_UPDATE=1 ./reclip.sh

# Or in Docker

docker run -e RECLIP_SKIP_UPDATE=1 averygan/reclip

```

This approach preserves the default auto-update behavior while giving you an escape hatch when needed.

## Verifying Your Changes

After disabling the update, confirm that ReClip uses your preferred yt-dlp version:

```bash

# Check the version manually

yt-dlp --version

# Start ReClip and verify no network calls to yt-dlp's update endpoint

./reclip.sh

```

The application will log startup messages to the console; you should see no output from `yt-dlp -U` if your modification was successful.

## Summary

- **ReClip updates yt-dlp automatically** via `yt-dlp -U` commands in [`reclip.sh`](https://github.com/averygan/reclip/blob/main/reclip.sh) and [`docker-entrypoint.sh`](https://github.com/averygan/reclip/blob/main/docker-entrypoint.sh)
- **Comment out or delete** the `yt-dlp -U` line to disable automatic updates permanently
- **Use an environment variable wrapper** for flexible, non-destructive control
- **Modify the appropriate script** based on your deployment method (native vs. Docker)

## Frequently Asked Questions

### Why does ReClip update yt-dlp on every startup?

yt-dlp frequently breaks when video platforms change their site structures. The automatic update in [`reclip.sh`](https://github.com/averygan/reclip/blob/main/reclip.sh) ensures ReClip has the latest extraction logic without requiring manual intervention. However, this behavior conflicts with reproducible deployments or environments with restricted network access.

### Will disabling the update break ReClip functionality?

No. ReClip will continue using whatever yt-dlp version is installed. The risk is that outdated yt-dlp versions may fail to download from certain platforms. For stable, long-running deployments, consider pinning to a known-good yt-dlp version and updating on your own schedule.

### Can I update yt-dlp manually while keeping auto-update disabled?

Yes. Run `yt-dlp -U` independently whenever you choose, or install specific versions via pip: `pip install yt-dlp==2024.01.01`. ReClip uses the system yt-dlp binary and does not manage its own isolated copy.

### Where is the Flask application actually started in these scripts?

After the optional update command, both [`reclip.sh`](https://github.com/averygan/reclip/blob/main/reclip.sh) and [`docker-entrypoint.sh`](https://github.com/averygan/reclip/blob/main/docker-entrypoint.sh) launch the web server with `python3 app.py` or `exec "$@"` (which ultimately runs the application). The [`app.py`](https://github.com/averygan/reclip/blob/main/app.py) file in the repository root contains the Flask backend code and never performs yt-dlp updates itself.