Skip to content

Desktop app

Prerequisites

Rewyt relies on yt-dlp:

  • yt-dlp: For video information fetching. Nightly builds are recommended.

  • FFprobe: For inspecting media segments.

Additional dependencies

The following dependencies are optional, but strongly recommended in practice:

Install from binaries

Pre-built binaries for different platforms are available on the GitHub latest release page.

Download the binary for your platform and unzip it to your working directory.

Setup

While optional, the setup steps below are strongly recommended.

Update yt-dlp to nightly

YouTube changes frequently, and the stable yt-dlp release can be outdated. Switch to the nightly build, which is updated daily:

yt-dlp --update-to nightly

Check the result with yt-dlp --version.

Sign in with cookies

Some streams respond with a “Sign in to confirm you’re not a bot” error unless you provide cookies. Export your YouTube cookies from a logged-in browser (see yt-dlp’s instructions), then add a line to your yt-dlp configuration file:

--cookies cookies.txt

Install a JavaScript runtime

If yt-dlp cannot find a JavaScript runtime, you will see this warning:

WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is
enabled by default; to use another runtime add --js-runtimes RUNTIME[:PATH] to
your command/config. YouTube extraction without a JS runtime has been
deprecated, and some formats may be missing. See
https://github.com/yt-dlp/yt-dlp/wiki/EJS for details on installing one

Install Deno (version 2.0 or later). If it is not detected automatically, point yt-dlp at it:

--js-runtimes deno:/path/to/deno

See the EJS wiki for other supported runtimes.

Avoid HTTP 403 errors with a PO token provider

During playback you may get transient HTTP 403 errors, caused by YouTube’s bot verification. yt-dlp works around them with a Proof-of-Origin (PO) token provider plugin:

  1. Install the bgutil-ytdlp-pot-provider plugin.
  2. Run the provider’s HTTP server, which listens on http://127.0.0.1:4416 by default.

With the default address, no further configuration is needed. If you run the server elsewhere, point yt-dlp at it:

--extractor-args "youtubepot-bgutilhttp:base_url=http://127.0.0.1:8080"

See yt-dlp’s PO Token Guide for details.